Esegui una query
Questo documento mostra come eseguire una query in BigQuery e capire quanti dati verranno elaborati dalla query prima dell'esecuzione eseguendo un'esecuzione di prova.
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 le query come job di query interattive, che devono iniziare l'esecuzione il più rapidamente possibile.
Job di query batch. Le query batch hanno una priorità inferiore rispetto alle query interattive. Quando un progetto o una prenotazione utilizza tutte le risorse di calcolo disponibili, è più probabile che le query batch vengano messe in coda e rimangano in coda. Dopo l'avvio di una query batch, questa viene eseguita come una query interattiva. Per saperne di più, consulta Code di query.
Job di query continui. Con questi job, la query viene eseguita continuamente, consentendoti di analizzare i dati in entrata in BigQuery in tempo reale e quindi scrivere i risultati in una tabella BigQuery o esportarli in Bigtable o Pub/Sub. Puoi utilizzare questa funzionalità per eseguire attività sensibili al tempo, come creare e agire immediatamente in base agli approfondimenti, applicare l'inferenza di machine learning (ML) in tempo reale e creare pipeline di dati basate su eventi.
Puoi eseguire job di query utilizzando i seguenti metodi:
- Componi ed esegui una query nella consoleGoogle Cloud .
- Esegui il comando
bq querynello strumento a riga di comando bq. - Chiama in modo programmatico il metodo
jobs.queryojobs.insertnell'API REST BigQuery. - Utilizza le librerie client di BigQuery.
BigQuery salva i risultati delle query in una tabella temporanea (impostazione predefinita) o in una tabella permanente. Quando specifichi una tabella permanente come tabella di destinazione per i risultati, puoi scegliere se aggiungere o sovrascrivere una tabella esistente o 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) sul 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 disporre di questo ruolo anche su tutte le tabelle e le viste sottostanti. Se utilizzi viste autorizzate o set di dati autorizzati, non hai bisogno dell'accesso ai dati di origine sottostanti.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per eseguire un job di query. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per eseguire un job di query sono necessarie le seguenti autorizzazioni:
-
bigquery.jobs.createsul progetto da cui viene eseguita la query, indipendentemente da dove sono archiviati i dati. -
bigquery.tables.getDatasu tutte le tabelle e le viste a cui fa riferimento la query. Per eseguire query sulle viste, devi disporre di questa autorizzazione anche su tutte le tabelle e le viste sottostanti. Se utilizzi viste autorizzate o set di dati autorizzati, non hai bisogno dell'accesso 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 principal 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 la query. Questa autorizzazione è richiesta
in aggiunta a qualsiasi autorizzazione necessaria per accedere ai dati sottoposti a query.
Per saperne di più 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 di query, inserisci una query GoogleSQL valida.
Ad esempio, esegui una query sul set di dati pubblico BigQuery
usa_namesper determinare i nomi più comuni negli Stati Uniti tra il 1910 e il 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;In alternativa, puoi utilizzare il pannello Riferimento per creare nuove query.
(Facoltativo) Per visualizzare automaticamente i suggerimenti di codice quando digiti una query, fai clic su Strumenti > Completamento automatico basato sul parser. Se non hai bisogno di suggerimenti di completamento automatico, deseleziona Completamento automatico basato sul parser. In questo modo vengono disattivati anche i suggerimenti di compilazione automatica del nome del progetto.
(Facoltativo) Per selezionare impostazioni query aggiuntive, fai clic su Modifica > Impostazioni query.
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 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 Visualizzazione. Puoi ingrandire o ridurre il grafico, scaricarlo come file PNG o attivare/disattivare la visibilità della legenda.
Nel riquadro Configurazione visualizzazione puoi modificare il tipo di visualizzazione e configurare le misure e le dimensioni della visualizzazione. I campi in questo riquadro sono precompilati con la configurazione iniziale dedotta dallo schema della tabella di destinazione della query. La configurazione viene mantenuta tra le esecuzioni di query successive nello stesso editor di query.
Per le visualizzazioni a linee, a barre o a dispersione, le dimensioni supportate sono i tipi di dati
INT64,FLOAT64,NUMERIC,BIGNUMERIC,TIMESTAMP,DATE,DATETIME,TIMEe