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 sui dati BigQuery utilizzando uno dei seguenti tipi di job di query:
- Job di query interattive. Per impostazione predefinita, BigQuery esegue i job di query interattive (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 poi di scrivere i risultati in una tabella BigQuery o 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.
Esegui job di query batch. Con questi job, BigQuery mette in coda ogni query batch per tuo conto e poi avvia la query quando sono disponibili risorse inattive, 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 contemporanee in base alla disponibilità delle risorse e favorisce l'esecuzione di più query interattive contemporanee rispetto alle query batch. Una volta raggiunto il limite di query simultanee, le query aggiuntive rimangono in attesa in una coda. Per ulteriori informazioni, consulta le code 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 i seguenti ruoli IAM:
-
Utente job BigQuery (
roles/bigquery.jobUser
) nel progetto. -
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) su 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 visualizzazioni autorizzate o set di dati autorizzati, non è necessario 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 contengono le autorizzazioni necessarie per eseguire un job di query. Per visualizzare le autorizzazioni esatte richieste, espandi la sezione Autorizzazioni richieste:
Autorizzazioni obbligatorie
Per eseguire un job di query sono necessarie le seguenti autorizzazioni:
-
bigquery.jobs.create
sul progetto da cui viene eseguita la query, indipendentemente da dove sono archiviati i dati. -
bigquery.tables.getData
in 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 visualizzazioni autorizzate o set di dati autorizzati, non devi 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.
Eseguire una query interattiva
Per eseguire una query interattiva, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Fai clic su
Query SQL.Nell'editor delle query, inserisci 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 gli 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 la posizione per i risultati della query:
- Nell'editor di query, fai clic su Altro e poi 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 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 per questa query, anche il set di dati che contiene la tabella di destinazione deve essere nella regione multipla 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 sono maggiori di zero, il numero di byte viene visualizzato nella parte superiore del menu.(Facoltativo) Per visualizzare la visualizzazione dei risultati della query, vai alla scheda Grafico. Puoi aumentare o diminuire lo zoom del grafico, scaricarlo come file PNG o attivare/disattivare la visibilità della legenda.
Nel riquadro Configurazione del 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
.(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 la sintassi di 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 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 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 la regione multipla per la tabella di destinazione, 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 e 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--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 compila 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
.
Esegui il sondaggio finché jobComplete
non è 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 autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
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 in BigQuery, configura le 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 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 in 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.
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 autenticarti in 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 in 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 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 autenticarti in BigQuery, configura le 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 in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare l'autenticazione per le librerie client.
Esegui una query continua
L'esecuzione di un job di query continua richiede una configurazione aggiuntiva. Per ulteriori informazioni, consulta Creare query continue.
Eseguire una query batch
Per eseguire una query batch, seleziona una delle seguenti opzioni:
Console
Vai alla pagina BigQuery.
Fai clic su
Query SQL.Nell'editor delle query, inserisci 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 gli 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, quindi 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 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 per questa query, anche il set di dati che contiene la tabella di destinazione deve essere nella regione multipla 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).
(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 sono maggiori di zero, il numero di byte viene visualizzato nella parte superiore del menu.(Facoltativo) Per visualizzare la visualizzazione dei risultati della query, vai alla scheda Grafico. Puoi aumentare o diminuire lo zoom del grafico, scaricarlo come file PNG o attivare/disattivare la visibilità della legenda.
Nel riquadro Configurazione del 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. 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 \ --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 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 per accodare (
--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 la regione multipla per la tabella di destinazione, 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 e 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--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 compila la proprietà di configurazione del job query
. Se vuoi, specifica la tua posizione nella proprietà location
nella sezione jobReference
della risorsa job.
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
.
Esegui il sondaggio finché jobComplete
non è uguale a true
. Controlla la presenza di errori e avvisi nell'elenco errors
.
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 in 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 priorità della query su QueryJobConfiguration.Priority.BATCH quando crei un 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 in 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 la documentazione di riferimento dell'API BigQuery Node.js.
Per autenticarti in 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 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 autenticarti in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare 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 quando vengono eseguite, a meno che
BigQuery non stabilisca che è necessaria la creazione di un job 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
.
Quando il valore di questo campo è impostato su JOB_CREATION_OPTIONAL
,
BigQuery determina se la query può utilizzare la nuova modalità ottimizzata per le query brevi. 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 INFORMATION_SCHEMA.JOBS
visualizzazione. 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 la query, viene restituito un jobReference
. Puoi esaminare il campo job_creation_reason
nella INFORMATION_SCHEMA.JOBS
visualizzazione per determinare il motivo per cui è stato creato un job per la query. In questo caso, devi utilizzare
jobs.getQueryResults
per recuperare i risultati al termine della query.
Quando utilizzi il valore JOB_CREATION_OPTIONAL
, non dovresti presumere che il campo jobReference
sia sempre presente nella risposta. Prima di accedere, devi verificare se il campo esiste.
La modalità ottimizzata per le query brevi include anche una cache dei risultati delle query che migliora le prestazioni delle query ripetute quando i dati sottostanti non cambiano. Quando specifichi useQueryCache: true
(il valore predefinito è useQueryCache: true
se non specificato) e jobCreationMode: JOB_CREATION_OPTIONAL
in QueryRequest
, BigQuery tenta di pubblicare i risultati dalla cache.true
Tieni presente che la memorizzazione nella cache viene eseguita secondo il criterio del "best effort".
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 delle query, inserisci 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 gli 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. 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 \ --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 breve utilizzando l'API, esegui una query in modo sincrono
e compila 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 il queryId
dalla risposta.
Se è presente jobRefernence
, puoi controllare in jobCreationReason
il motivo per cui un job è stato creato da BigQuery. Esegui il polling per i risultati chiamando
getQueryResults
.
Esegui il sondaggio finché jobComplete
non è uguale a true
. Controlla la presenza di errori e avvisi nell'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 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 in 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 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 autenticarti in BigQuery, configura le 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 in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, consulta Configurare 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 la documentazione di riferimento dell'API BigQuery Go.
Per autenticarti in BigQuery, configura le 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 collettive, consulta Job di query.
Monitorare le query
Puoi ottenere informazioni sulle query durante l'esecuzione utilizzando lo esploratore dei job o eseguendo una query nella visualizzazione INFORMATION_SCHEMA.JOBS_BY_PROJECT
.
Dry run
Una prova in BigQuery fornisce le seguenti informazioni:
- stima degli addebiti in modalità on demand
- convalida della query
- byte approssimativi elaborati dalla query in modalità di 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 delle query.
Se la query è valida, viene visualizzato automaticamente un segno di spunta insieme alla quantità di dati che verranno elaborati 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
impostato su true
nel tipo JobConfiguration.
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 in BigQuery, configura le 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 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 in 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 la documentazione di riferimento dell'API BigQuery Node.js.
Per autenticarti in 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 in 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 un
QueryJob
completato se viene fornita una configurazione di query di prova.
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 autenticarti in BigQuery, configura le 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.