esegui una query
Questo documento mostra come eseguire una query in BigQuery e comprendere quanti dati elaborerà la query prima dell'esecuzione eseguendo una prova.
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 continue (anteprima). Con questi job, la query viene eseguita continuamente, consentendoti di analizzare per i dati in entrata in BigQuery in tempo reale e quindi in una tabella BigQuery o esportarli in Bigtable o Pub/Sub. Puoi usare questa funzionalità per eseguire attività urgenti, come creare e intervenire immediatamente insight, l'applicazione dell'inferenza del machine learning (ML) in tempo reale e creando 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:
- Scrivi 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
jobs.query
ojobs.insert
in BigQuery API REST. - Utilizza le librerie client di BigQuery.
Per impostazione predefinita, BigQuery esegue le query come query interattiva 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 le code di query.
BigQuery salva i risultati della query in un tabella temporanea (impostazione predefinita) o permanente. Quando specifichi una tabella permanente come tabella di destinazione per i risultati, puoi scegliere se aggiungere o sovrascrivere una tabella esistente oppure crearne una nuova 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
) del progetto. -
Visualizzatore dati BigQuery (
roles/bigquery.dataViewer
) su tutte le tabelle e le viste a cui fa riferimento la query. Per eseguire query sulle viste, devi avere questo ruolo anche per tutte le tabelle e le viste 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
sul progetto da cui viene eseguita la query, a prescindere 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 viste, devi disporre di questa autorizzazione anche per tutte le tabelle e le viste sottostanti. Se utilizzi viste autorizzate o set di dati autorizzati, non hai bisogno di accedere ai dati di origine sottostanti.
Potresti anche riuscire a ottenere queste autorizzazioni con ruoli personalizzati e 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.
Soluzione: un amministratore deve concederti la bigquery.jobs.create
l'autorizzazione di accesso al progetto su cui stai eseguendo la query. Questa autorizzazione è obbligatoria in
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 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 la posizione 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
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, BigQuery crea la tabella quando esegui la query.
Nella sezione Impostazioni aggiuntive, fai clic sull'icona Località dei dati e poi seleziona un'opzione.
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 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).
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 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 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 dedotto dallo schema della tabella di destinazione della query. La viene mantenuta tra le seguenti esecuzioni di query editor di query. Le dimensioni supportano
INTEGER
,INT64
,FLOAT
,FLOAT64
,NUMERIC
,BIGNUMERIC
,TIMESTAMP
,DATE
,DATETIME
,TIME
eSTRING
tipi di dati, mentre le misure supportanoINTEGER
,INT64
,FLOAT
, Tipi di datiFLOAT64
,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 la 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. 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 \ --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 da aggiungere (
--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 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 località 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 crea la tabella quando esegui la query. Tuttavia, devi specificare un set di dati esistente.
Se la tabella non è nel progetto corrente, aggiungi il metodo all'ID progetto Google Cloud che utilizza 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 compila la proprietà di configurazione del job query
. Se vuoi, specifica la tua posizione nella proprietà location
nella sezione jobReference
della risorsa job.
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
.
C#
Prima di provare questo esempio, segui le istruzioni per la configurazione di C# nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta API C# 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.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di BigQuery. Per ulteriori informazioni, consulta API Go 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.
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 eseguire l'autenticazione su BigQuery, configura 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 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 eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per ulteriori informazioni, vedi Configura 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 API PHP 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 di configurazione Python riportate nella guida rapida all'utilizzo delle librerie client di BigQuery. Per ulteriori informazioni, consulta API Python 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.
Ruby
Prima di provare questo esempio, segui le istruzioni per la configurazione di Ruby nel Guida rapida di BigQuery con librerie client. Per ulteriori informazioni, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per eseguire l'autenticazione su BigQuery, configura 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
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
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, BigQuery crea la tabella quando esegui la query.
Nella sezione Impostazioni aggiuntive, fai clic sull'icona Località dei dati e poi seleziona un'opzione.
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 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 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 dedotto dallo schema della tabella di destinazione della query. La viene mantenuta tra le seguenti esecuzioni di query 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 la Comando
bq query
e specificare il flag--batch
. Nell'esempio seguente, Il flag--use_legacy_sql=false
consente di utilizzare la sintassi 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 località 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 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 località 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 crea la tabella quando esegui la query. Tuttavia, devi specificare un set di dati esistente.
Se la tabella non è nel progetto corrente, aggiungi il metodo all'ID progetto Google Cloud che utilizza 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
.
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
.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione Go riportate nella guida rapida all'utilizzo delle librerie client di BigQuery. Per ulteriori informazioni, consulta API Go 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.
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 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.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione Node.js riportate nella guida rapida all'utilizzo delle librerie client di BigQuery. 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 eseguire l'autenticazione su BigQuery, configura 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 a breve termine ha lo scopo di migliorare la latenza complessiva dei
query comuni in carichi di lavoro come dashboard o esplorazione dei dati. it
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'
QueryRequest
all'istanza in 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
questa query, BigQuery non restituisce un jobReference
nel
corpo della risposta. Restituisce invece un campo queryId
che puoi utilizzare per ottenere
insight sulla query utilizzando INFORMATION_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 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 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 Fai clic su Ottimizza per le query a breve termine 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 la Comando
bq query
e specificare il flag--job_creation_mode=JOB_CREATION_OPTIONAL
. Nell'esempio seguente, il flag--use_legacy_sql=false
consente di utilizzare la sintassi 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 jobRefernence
è presente, puoi controllare jobCreationReason
per scoprire perché un job è stato creato da BigQuery. 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
.
Java
Versione disponibile: 2.37.1 e successive
Richiede l'impostazione di QUERY_PREVIEW_ENABLED=true
variabile di ambiente.
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 ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Per eseguire una query con un proxy, consulta Configurazione di un proxy.
Python
Versione disponibile: 3.21.0 e successive
Richiede l'impostazione di QUERY_PREVIEW_ENABLED=true
variabile di ambiente.
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
Richiede l'impostazione di QUERY_PREVIEW_ENABLED=true
variabile di ambiente.
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 delle librerie client di BigQuery. 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.
Vai
Versione disponibile: 1.58.0 e successive
Richiede l'impostazione di QUERY_PREVIEW_ENABLED=true
variabile di ambiente
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 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 ulteriori informazioni, vedi Configura l'autenticazione per le librerie client.
Driver JDBC
Versione disponibile: JDBC v1.6.1
Richiede l'impostazione di JobCreationMode=2
nella stringa di connessione.
jdbc:bigquery://https://www.googleapis.com/bigquery/v2:443;JobCreationMode=2;Location=US;
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 in batch utilizzando il
INFORMATION_SCHEMA.JOBS_BY_PROJECT
visualizzazione.
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 visualizzazione INFORMATION_SCHEMA.JOBS_BY_PROJECT
utilizza il campo priority
per indicare 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 verranno elaborati dalla query. Se la query non è valida, viene visualizzato un punto esclamativo insieme a 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 delle librerie client di BigQuery. Per ulteriori informazioni, consulta API Go 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.
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.
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 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 di configurazione PHP riportate nella guida rapida all'utilizzo delle librerie client di BigQuery. Per ulteriori informazioni, consulta API PHP 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
Imposta il parametro
QueryJobConfig.dry_run
a True
.
Client.query()
restituisce sempre
QueryJob
quando viene fornita una configurazione
delle query dry run.
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.
Passaggi successivi
- Scopri come gestire i job di query.
- Scopri come visualizzare la cronologia delle query.
- Scopri come salvare e condividere query.
- Scopri di più sulle code di query.