esegui una query
Questo documento mostra come eseguire una query in BigQuery e comprendere quanti dati verranno elaborati dalla query prima dell'esecuzione mediante un simulacro.
Tipi di query
Puoi eseguire query su dati BigQuery utilizzando uno dei seguenti tipi di job di query:
- Job di query interattive. Di predefinito, BigQuery esegue job di query interattivi (on demand) il prima possibile.
Job di query continua (anteprima). Con questi job, la query viene eseguita continuamente, consentendoti di analizzare i dati in entrata in BigQuery in tempo reale e di scrivere i risultati in una tabella BigQuery oppure di esportarli in Bigtable o Pub/Sub. Puoi utilizzare questa funzionalità per eseguire attività urgenti, come creare informazioni e intervenire immediatamente in base a queste, applicare l'inferenza di machine learning (ML) in tempo reale e creare pipeline di dati basate su eventi.
Job di query in batch. Con questi lavori, BigQuery mette in coda ogni query batch per tuo conto e poi avvia quando le risorse inattive sono disponibili, in genere entro pochi minuti.
Puoi eseguire job di query utilizzando i seguenti metodi:
- Componi ed esegui una query nella console Google Cloud.
- Esegui il comando
bq query
nello strumento a riga di comando bq. - Chiama in modo programmatico il metodo
jobs.query
ojobs.insert
nell'API REST di BigQuery. - Utilizza le librerie client di BigQuery.
Per impostazione predefinita, BigQuery esegue le query come job di query interattive, che vengono eseguiti il prima possibile. BigQuery calcola dinamicamente il limite di query simultanee sulla disponibilità delle risorse, favorisce l'esecuzione di più query interattive rispetto alle query in batch. Una volta raggiunto il limite di query simultanee, le query aggiuntive rimangono in attesa in una coda. Per ulteriori informazioni, consulta la sezione Coda di query.
BigQuery salva i risultati delle query in una tabella temporanea (predefinita) o permanente. Quando specifichi una tabella permanente come tabella di destinazione per i risultati, puoi scegliere se aggiungere o sovrascrivere una tabella esistente o creare una nuova tabella con un nome univoco.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per eseguire un job di query, chiedi all'amministratore di concederti seguenti ruoli IAM:
-
Utente job BigQuery (
roles/bigquery.jobUser
) nel progetto. -
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) in tutte le tabelle e le visualizzazioni a cui fa riferimento la query. Per eseguire query sulle visualizzazioni, devi disporre di questo ruolo anche su tutte le tabelle e le visualizzazioni sottostanti. Se utilizzi viste autorizzate o set di dati autorizzati, non hai bisogno di accedere ai dati di origine sottostanti.
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti le autorizzazioni necessarie per eseguire un job di query. Per vedere le autorizzazioni esatte obbligatorie, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire un job di query sono necessarie le seguenti autorizzazioni:
-
bigquery.jobs.create
nel progetto da cui viene eseguita la query, indipendentemente da dove sono archiviati i dati. -
bigquery.tables.getData
su tutte le tabelle e le viste a cui fa riferimento la query. Per eseguire query sulle visualizzazioni, devi disporre di questa autorizzazione anche su tutte le tabelle e le visualizzazioni sottostanti. Se utilizzi viste autorizzate o set di dati autorizzati, non hai bisogno di accedere ai dati di origine sottostanti.
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Risoluzione dei problemi
Access Denied: Project [project_id]: User does not have bigquery.jobs.create
permission in project [project_id].
Questo errore si verifica quando un principale non dispone dell'autorizzazione per creare job di query nel progetto.
Risoluzione: un amministratore deve concederti l'autorizzazione bigquery.jobs.create
per il progetto su cui stai eseguendo una query. Questa autorizzazione è obbligatoria oltre a qualsiasi autorizzazione richiesta per accedere ai dati sottoposti a query.
Per ulteriori informazioni sulle autorizzazioni BigQuery, consulta Controllo dell'accesso con IAM.
Esegui una query interattiva
Per eseguire una query interattiva, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Fai clic su
Crea una nuova query.Nell'editor delle query, inserisci una query GoogleSQL valida.
Ad esempio, esegui una query Set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra anni 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
(Facoltativo) Specifica la tabella di destinazione e località per i risultati della query:
- Nell'editor query, fai clic su Altro e poi fai clic su Impostazioni query.
- Nella sezione Destinazione, seleziona Imposta una tabella di destinazione per i risultati della query.
- In Set di dati, inserisci il nome di un set di dati esistente per la tabella di destinazione, ad esempio
myProject.myDataset
. - In ID tabella, inserisci un nome per la tabella di destinazione, ad
ad esempio
myTable
. Se la tabella di destinazione è una tabella esistente, per Preferenza di scrittura per tabella di destinazione, seleziona se aggiungere o sovrascrivere la tabella con i risultati della query.
Se la tabella di destinazione è una nuova tabella, BigQuery la crea quando esegui la query.
Nella sezione Impostazioni aggiuntive, fai clic sul menu Posizione dei dati e seleziona un'opzione.
In questo esempio, il set di dati
usa_names
è archiviato nella località con più regioni degli Stati Uniti. Se specifichi una tabella di destinazione query, anche il set di dati che contiene la tabella di destinazione deve essere nella località multiregionale degli Stati Uniti. Non puoi eseguire query su un set di dati in una posizione e scrivere i risultati in una tabella in un'altra posizione.Fai clic su Salva.
Fai clic su
Esegui.Se non specifichi una tabella di destinazione, il job query scrive l'output in una tabella temporanea (cache).
Ora puoi esplorare i risultati della query nella scheda Risultati del riquadro Risultati delle query.
(Facoltativo) Per ordinare i risultati della query per colonna, fai clic su
Apri menu di ordinamento accanto al nome della colonna e seleziona un ordinamento. Se i byte stimati elaborati per l'ordinamento è maggiore di zero, allora il numero di byte visualizzata nella parte superiore del menu.(Facoltativo) Per visualizzare i risultati della query, vai a Scheda Grafico. Puoi aumentare o diminuire lo zoom del grafico, scaricare un grafico come file PNG o attiva/disattiva la visibilità della legenda.
Nel riquadro Configurazione grafico, puoi modificare il tipo di grafico (linea, barra o dispersione) e configurare le misure e le dimensioni del grafico. I campi in questo riquadro sono precompilati con la configurazione iniziale ricavata dallo schema della tabella di destinazione della query. La configurazione viene conservata tra le esecuzioni successive della query nello stesso editor di query. Le dimensioni supportano i tipi di dati
INTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
eSTRING
, mentre le misure supportano i tipi di datiINTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
eBIGNUMERIC
.(Facoltativo) Nella scheda JSON, puoi esplorare i risultati della query nel formato JSON, dove la chiave è il nome della colonna e il valore è il risultato per quella colonna.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Utilizza il comando
bq query
. Nell'esempio seguente, il flag--use_legacy_sql=false
ti consente di utilizzare Sintassi GoogleSQL.bq query \ --use_legacy_sql=false \ 'QUERY'
Sostituisci QUERY con una query GoogleSQL valida. Ad esempio, esegui una query sul set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra il 1910 e il 2013:bq query \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Il job di query scrive l'output in una tabella temporanea (cache).
Se vuoi, puoi specificare la tabella di destinazione località per i risultati della query. Per scrivere i risultati in una tabella esistente, includi il flag appropriato per accodare (
--append_table=true
) o sovrascrivere (--replace=true
) la tabella.bq query \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Sostituisci quanto segue:
LOCATION: la regione o più regioni per la destinazione tabella, ad esempio
US
In questo esempio, il set di dati
usa_names
è archiviato nella località con più regioni degli Stati Uniti. Se specifichi una tabella di destinazione per questa query, anche il set di dati che contiene la tabella di destinazione deve trovarsi nella regione multipla degli Stati Uniti. Non puoi eseguire query su un set di dati in una posizione scrivere i risultati in una tabella in un'altra posizione.Puoi impostare un valore predefinito per la posizione utilizzando il file .bigqueryrc.
TABLE: un nome per la tabella di destinazione, ad esempio
myDataset.myTable
Se la tabella di destinazione è una nuova tabella, BigQuery la crea quando esegui la query. Tuttavia, devi specificare un set di dati esistente.
Se la tabella non è nel progetto corrente, aggiungi l'ID progetto Google Cloud utilizzando il formato
PROJECT_ID:DATASET.TABLE
, ad esempiomyProject:myDataset.myTable
. Se il campo--destination_table
non è specificato, viene generato un job di query che scrive l'output in una tabella temporanea.
API
Per eseguire una query utilizzando l'API, inserisci un nuovo job
e compilare la proprietà di configurazione del job query
. Se vuoi, specifica la tua posizione nella proprietà location
nella sezione jobReference
della risorsa job.
Esegui il polling per i risultati chiamando
getQueryResults
.
Sondaggio fino a quando jobComplete
non sarà uguale a true
. Controlla la presenza di errori e avvisi nell'elenco errors
.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione C# riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery C#.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Per eseguire una query con un proxy, consulta Configurazione di un proxy.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Prima di provare questo esempio, segui le istruzioni per la configurazione di PHP nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione Ruby riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Esegui una query continua
L'esecuzione di un job di query continuo richiede una configurazione aggiuntiva. Per maggiori informazioni le informazioni, vedi Crea query continue.
Eseguire una query batch
Per eseguire una query batch, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Fai clic su
Crea una nuova query.Nell'editor query, inserisci una query GoogleSQL valida.
Ad esempio, esegui una query Set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra anni 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Fai clic su
Altro e poi fai clic su Impostazioni query.Nella sezione Gestione delle risorse, seleziona Batch.
(Facoltativo) Specifica la tabella di destinazione e la posizione per i risultati della query:
- Nella sezione Destinazione, seleziona Imposta una tabella di destinazione per i risultati della query.
- In Set di dati, inserisci il nome di un set di dati esistente per la tabella di destinazione, ad esempio
myProject.myDataset
. - In ID tabella, inserisci un nome per la tabella di destinazione, ad
ad esempio
myTable
. Se la tabella di destinazione è una tabella esistente, per Preferenza di scrittura per tabella di destinazione, seleziona se aggiungere o sovrascrivere la tabella con i risultati della query.
Se la tabella di destinazione è una nuova tabella, BigQuery la crea quando esegui la query.
Nella sezione Impostazioni aggiuntive, fai clic sul menu Posizione dei dati e seleziona un'opzione.
In questo esempio, il set di dati
usa_names
è archiviato nella località con più regioni degli Stati Uniti. Se specifichi una tabella di destinazione query, anche il set di dati che contiene la tabella di destinazione deve essere nella località multiregionale degli Stati Uniti. Non puoi eseguire query su un set di dati in una posizione e scrivere i risultati in una tabella in un'altra posizione.
Fai clic su Salva.
Fai clic su
Esegui.Se non specifichi una tabella di destinazione, il job di query scrive in una tabella temporanea (cache).
(Facoltativo) Per ordinare i risultati della query per colonna, fai clic su
Apri il menu di ordinamento accanto al nome della colonna e seleziona un ordinamento. Se i byte stimati elaborati per l'ordinamento è maggiore di zero, allora il numero di byte visualizzata nella parte superiore del menu.(Facoltativo) Per visualizzare i risultati della query, vai a Scheda Grafico. Puoi aumentare o diminuire lo zoom del grafico, scaricare un grafico come file PNG o attiva/disattiva la visibilità della legenda.
Nel riquadro Configurazione grafico, puoi modificare il tipo di grafico (linee, barre o dispersioni) e configurare le misure e le dimensioni del grafico. I campi in questo riquadro sono precompilati con la configurazione iniziale ricavata dallo schema della tabella di destinazione della query. La configurazione viene conservata tra le esecuzioni successive della query nello stesso editor di query. Le dimensioni supportano i tipi di dati
INTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
eSTRING
, mentre le misure supportano i tipi di datiINTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
eBIGNUMERIC
.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Utilizza il comando
bq query
e specifica il flag--batch
. Nell'esempio seguente, il flag--use_legacy_sql=false
consente di utilizzare la sintassi di GoogleSQL.bq query \ --batch \ --use_legacy_sql=false \ 'QUERY'
Sostituisci QUERY con una query GoogleSQL valida. Per ad esempio, esegui una query Set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra gli anni 1910 e 2013:bq query \ --batch \ --use_legacy_sql=false \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Il job di query scrive l'output in una tabella temporanea (cache).
Se vuoi, puoi specificare la tabella di destinazione e la posizione per i risultati della query. Per scrivere i risultati in una tabella esistente, includi il flag appropriato da aggiungere (
--append_table=true
) o sovrascrivere (--replace=true
) la tabella.bq query \ --batch \ --location=LOCATION \ --destination_table=TABLE \ --use_legacy_sql=false \ 'QUERY'
Sostituisci quanto segue:
LOCATION: la regione o più regioni per la destinazione tabella, ad esempio
US
In questo esempio, il set di dati
usa_names
è archiviato negli Stati Uniti una località multiregionale. Se specifichi una tabella di destinazione query, anche il set di dati che contiene la tabella di destinazione deve essere in nella località multiregionale degli Stati Uniti. Non puoi eseguire query su un set di dati in una posizione scrivere i risultati in una tabella in un'altra posizione.Puoi impostare un valore predefinito per la posizione utilizzando il file .bigqueryrc.
TABLE: un nome per la tabella di destinazione, ad esempio
myDataset.myTable
Se la tabella di destinazione è una nuova tabella, BigQuery la crea quando esegui la query. Tuttavia, devi specificare un set di dati esistente.
Se la tabella non è nel progetto corrente, aggiungi l'ID progetto Google Cloud utilizzando il formato
PROJECT_ID:DATASET.TABLE
, ad esempiomyProject:myDataset.myTable
. Se il campo--destination_table
non è specificato, viene generato un job di query che scrive l'output in una tabella temporanea.
API
Per eseguire una query utilizzando l'API, inserisci un nuovo job
e compilare la proprietà di configurazione del job query
. Se vuoi, puoi specificare
località nella proprietà location
nella sezione jobReference
del
risorse di lavoro.
Quando compili le proprietà del job di query, includi la proprietà configuration.query.priority
e imposta il valore su BATCH
.
Esegui il polling per i risultati chiamando
getQueryResults
.
Sondaggio fino a quando jobComplete
non sarà uguale a true
. Verifica la presenza di errori e avvisi nel
Elenco errors
.
Vai
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Java
Per eseguire una query batch, imposta la query priorità a QueryJobConfiguration.Priority.BATCH quando crei QueryJobConfiguration.
Prima di provare questo esempio, segui le istruzioni di configurazione Java riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Modalità ottimizzata per le query a breve termine
La modalità ottimizzata per le query brevi è progettata per migliorare la latenza complessiva delle query brevi comuni in carichi di lavoro come dashboard o esplorazione dei dati. Esegue la query e restituisce i risultati in linea per le istruzioni SELECT
.
Le query che utilizzano la modalità ottimizzata per le query a breve termine non creano un job se eseguite, a meno che
BigQuery determina che la creazione di un job è necessaria per completare
la query.
Per attivare la modalità ottimizzata per le query a breve termine, imposta il campo jobCreationMode
dell'istanza
QueryRequest su JOB_CREATION_OPTIONAL
nel
corpo della richiesta
jobs.query
.
Se il valore di questo campo è impostato su JOB_CREATION_OPTIONAL
,
BigQuery determina se per la query è possibile utilizzare la nuova query breve
in modalità ottimizzata. In questo caso, BigQuery esegue la query e restituisce
tutti i risultati nel campo rows
della risposta. Poiché non viene creato un job per questa query, BigQuery non restituisce un jobReference
nel corpo della risposta. Restituisce invece un campo queryId
che puoi utilizzare per ottenere informazioni sulla query utilizzando la visualizzazioneINFORMATION_SCHEMA.JOBS
. Poiché non viene creato alcun job, non è possibile passare jobReference
alle API
jobs.get
e
jobs.getQueryResults
per cercare query brevi.
Se BigQuery determina che è necessario un job per completare
viene restituito un valore jobReference
. Puoi controllare job_creation_reason
campo in INFORMATION_SCHEMA.JOBS
per determinare
il motivo per cui è stato creato un job per la query. In questo caso, devi usare
jobs.getQueryResults
per recuperare i risultati al termine della query.
Quando utilizzi il valore JOB_CREATION_OPTIONAL
, non devi dare per scontato che
Il campo jobReference
è sempre presente nella risposta. Devi controllare se
esistente prima di accedervi.
La modalità ottimizzata per le query a breve termine include anche una cache dei risultati delle query che migliora
il rendimento delle query ripetute se i dati sottostanti non cambiano. Quando
specificare useQueryCache: true
(il valore predefinito è true
se non specificato) e
jobCreationMode: JOB_CREATION_OPTIONAL
pollice
QueryRequest
,
BigQuery tenta di fornire i risultati dalla cache. Tieni presente che
la memorizzazione nella cache fa del suo meglio.
Per eseguire una query utilizzando la modalità ottimizzata per le query a breve termine, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Fai clic su
QUERY SQL.Nell'editor query, inserisci una query GoogleSQL valida.
Ad esempio, esegui una query Set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra anni 1910 e 2013:SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;
Fai clic su
Altro e poi su Query ottimizzata per gli Short in Scegli la modalità di query. Fai clic su CONFERMA per confermare la scelta.Fai clic su
Esegui.
bq
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Utilizza il comando
bq query
e specifica il flag--job_creation_mode=JOB_CREATION_OPTIONAL
. Nell'esempio seguente, il flag--use_legacy_sql=false
ti consente di utilizzare la sintassi di GoogleSQL.bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=LOCATION \ 'QUERY'
Sostituisci QUERY con una query GoogleSQL valida e LOCATION con una regione valida in cui si trova il set di dati. Per ad esempio, esegui una query Set di dati pubblico BigQuery
usa_names
per determinare i nomi più comuni negli Stati Uniti tra gli anni 1910 e 2013:bq query \ --rpc=true \ --use_legacy_sql=false \ --job_creation_mode=JOB_CREATION_OPTIONAL \ --location=us \ 'SELECT name, gender, SUM(number) AS total FROM `bigquery-public-data.usa_names.usa_1910_2013` GROUP BY name, gender ORDER BY total DESC LIMIT 10;'
Il job di query restituisce l'output in linea nella risposta.
API
Per eseguire una query in modalità di query a breve termine utilizzando l'API, esegui una query in modo sincrono
e compilano la proprietà QueryRequest
. Includi la proprietà jobCreationMode
e impostane il valore su JOB_CREATION_OPTIONAL
.
Controlla la risposta. Se jobComplete
è uguale a true
e jobReference
è vuoto, leggi i risultati dal campo rows
. Puoi anche ottenere queryId
dalla risposta.
Se è presente jobRefernence
, puoi controllare in jobCreationReason
il motivo per cui un job è stato creato da BigQuery. Sondaggio per ottenere i risultati chiamando
getQueryResults
Sondaggio fino a quando jobComplete
non sarà uguale a true
. Verifica la presenza di errori e avvisi nel
Elenco errors
.
Java
Versione disponibile: 2.37.1 e successive
È necessario impostare la variabile di ambiente QUERY_PREVIEW_ENABLED=true
.
Esempio: Linux o macOS
export QUERY_PREVIEW_ENABLED=TRUE
Esempio: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Java BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Per eseguire una query con un proxy, consulta Configurare un proxy.
Python
Versione disponibile: 3.21.0 e successive
È necessario impostare la variabile di ambiente QUERY_PREVIEW_ENABLED=true
.
Esempio: Linux o macOS
export QUERY_PREVIEW_ENABLED=TRUE
Esempio: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Prima di provare questo esempio, segui le istruzioni per la configurazione di Python nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Python BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Nodo
Versione disponibile: 7.6.1 e successive
È necessario impostare la variabile di ambiente QUERY_PREVIEW_ENABLED=true
.
Esempio: Linux o macOS
export QUERY_PREVIEW_ENABLED=TRUE
Esempio: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Vai
Versione disponibile: 1.58.0 e successive
Richiede l'impostazione della variabile di ambiente QUERY_PREVIEW_ENABLED=true
Esempio: Linux o macOS
export QUERY_PREVIEW_ENABLED=TRUE
Esempio: Windows
$env:QUERY_PREVIEW_ENABLED=TRUE
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta API Go BigQuery documentazione di riferimento.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Driver JDBC
Versione disponibile: JDBC v1.6.1
Richiede l'impostazione JobCreationMode=2
nella stringa di connessione.
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;JobCreationMode=2;Location=US;
Driver ODBC
Versione disponibile: ODBC v3.0.7.1016
Richiede l'impostazione JobCreationMode=2
nel file .ini
.
[ODBC Data Sources] Sample DSN=Simba Google BigQuery ODBC Connector 64-bit [Sample DSN] JobCreationMode=2
Quote
Per informazioni sulle quote relative alle query interattive e batch, consulta Job di query.
Visualizza il numero di query interattive e batch
Puoi visualizzare il numero di query interattive e batch utilizzando la
visualizzazione INFORMATION_SCHEMA.JOBS_BY_PROJECT
.
L'esempio seguente utilizza la vista INFORMATION_SCHEMA.JOBS_BY_PROJECT
per ottenere
il numero di query interattive e batch eseguite nelle ultime 7 ore:
SELECT
priority,
COUNT(*) active_jobs,
FROM
`region-us`.INFORMATION_SCHEMA.JOBS_BY_PROJECT
WHERE
creation_time > TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 hour)
AND end_time IS NULL
AND job_type = 'QUERY'
GROUP BY priority
La vista INFORMATION_SCHEMA.JOBS_BY_PROJECT
utilizza il campo priority
per
indicano se una query è INTERACTIVE
o BATCH
. Per ulteriori informazioni, vedi
Schema.
Prova
Una prova in BigQuery fornisce le seguenti informazioni:
- stima degli addebiti in modalità on demand
- convalida della tua query
- byte approssimativi elaborati dalla query in modalità capacità
Le prove non utilizzano slot di query e non ti viene addebitato alcun costo per l'esecuzione di una prova. Puoi utilizzare la stima restituita da una prova secca per calcolare i costi delle query nel Calcolatore prezzi.
Esegui una prova
Per eseguire una simulazione:
Console
Vai alla pagina BigQuery.
Inserisci la query nell'editor di query.
Se la query è valida, viene visualizzato automaticamente un segno di spunta insieme alla quantità di dati che verrà elaborata dalla query. Se la query non è valida, viene visualizzato un punto esclamativo con un messaggio di errore.
bq
Inserisci una query come la seguente utilizzando il flag --dry_run
.
bq query \ --use_legacy_sql=false \ --dry_run \ 'SELECT COUNTRY, AIRPORT, IATA FROM `project_id`.dataset.airports LIMIT 1000'
Per una query valida, il comando produce la seguente risposta:
Query successfully validated. Assuming the tables are not modified, running this query will process 10918 bytes of data.
API
Per eseguire una prova utilizzando l'API, invia un job di query con
dryRun
impostata su true
in
JobConfiguration
di testo.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Go.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Java.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Node.js
Prima di provare questo esempio, segui le istruzioni per la configurazione di Node.js nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API Node.js BigQuery documentazione di riferimento.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione PHP riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per autenticarti a BigQuery, configura le credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Python
Imposta la proprietà
QueryJobConfig.dry_run su True
.
Client.query()
restituisce sempre
QueryJob
quando viene fornita una configurazione
delle query dry run.
Prima di provare questo esempio, segui le istruzioni di configurazione Python riportate nella guida rapida all'utilizzo di BigQuery con le librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Passaggi successivi
- Scopri come gestire i job di query.
- Scopri come visualizzare la cronologia delle query.
- Scopri come salvare e condividere le query.
- Scopri di più sulle code di query.