Introduzione a SQL in BigQuery
Questo documento fornisce una panoramica delle istruzioni e dei dialetti SQL supportati in BigQuery.
GoogleSQL è un linguaggio Structured Query Language (SQL) conforme ad ANSI che include i seguenti tipi di istruzioni supportate:
- Le istruzioni di query, note anche come istruzioni Data Query Language (DQL), sono il metodo principale per analizzare i dati in BigQuery. Scansionano una o più tabelle o expression e restituiscono le righe del risultato calcolato. Le istruzioni di query possono includere la sintassi pipe (Anteprima).
- Le istruzioni del linguaggio procedurale sono estensioni procedurali di GoogleSQL che consentono di eseguire più istruzioni SQL in un'unica richiesta. Le istruzioni procedurali possono utilizzare variabili e istruzioni di flusso di controllo e possono avere effetti collaterali.
- Le istruzioni DDL (Data Definition Language) consentono di creare e modificare oggetti di database come tabelle, viste, funzioni e criteri di accesso a livello di riga.
- Le istruzioni Data Manipulation Language (DML) ti consentono di aggiornare, inserire ed eliminare dati dalle tabelle BigQuery.
- Le istruzioni Data Control Language (DCL) ti consentono di controllare le risorse di sistema BigQuery, come l'accesso e la capacità.
- Le istruzioni TCL (Transaction Control Language) consentono di gestire le transazioni per le modifiche dei dati.
- Comandi load e comandi export per gestire i dati in entrata e in uscita da BigQuery.
Dialetti SQL BigQuery
BigQuery supporta il dialetto GoogleSQL, ma è disponibile anche un dialetto SQL precedente. Se non hai dimestichezza con BigQuery, dovresti utilizzare GoogleSQL, in quanto supporta la gamma più ampia di funzionalità. Ad esempio, funzionalità come le istruzioni DDL e DML sono supportate solo utilizzando GoogleSQL. SQL precedente viene mantenuto per la compatibilità con le versioni precedenti e consigliamo ai clienti di eseguire la migrazione se utilizzano SQL precedente.
Passaggio dal dialetto predefinito
L'interfaccia che utilizzi per eseguire query sui dati determina il dialetto di query predefinito. Per passare a un altro dialetto:
Console
Il dialetto predefinito per la console Google Cloud è GoogleSQL. Per cambiare il dialetto in SQL precedente:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor delle query, fai clic sul pulsante Altro > Impostazioni query.
Nella sezione Opzioni avanzate, fai clic su Legacy per Dialetto SQL e poi su Salva. Viene impostata l'opzione SQL precedente per questa query. Quando fai clic su add_box Query SQL per creare una nuova query, devi selezionare di nuovo l'opzione SQL precedente.
SQL
Il dialetto SQL predefinito è GoogleSQL.
Puoi impostare il dialetto SQL includendo il prefisso #standardSQL
o #legacySQL
nella query.
Questi prefissi di query non sono sensibili alle maiuscole, devono precedere la query e essere separati dalla query da un carattere di nuova riga. L'esempio seguente imposta il dialetto su SQL precedente ed esegue query sul set di dati sulla natalità:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
#legacySQL SELECT weight_pounds, state, year, gestation_weeks FROM [bigquery-public-data:samples.natality] ORDER BY weight_pounds DESC LIMIT 10;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
bq
Il dialetto di query predefinito nello strumento a riga di comando bq
è SQL precedente. Per passare al dialetto GoogleSQL, aggiungi il flag --use_legacy_sql=false
o
--nouse_legacy_sql
all'istruzione della riga di comando.
Passare al dialetto GoogleSQL
Per utilizzare la sintassi GoogleSQL in un job di query, imposta il parametro use_legacy_sql
su false
.
bq query \
--use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data.samples.shakespeare`'
Impostare GoogleSQL come dialetto predefinito
Puoi impostare GoogleSQL come dialetto predefinito per lo strumento a riga di comando e la shell interattiva modificando il file di configurazione dello strumento a riga di comando:.bigqueryrc
.
Per ulteriori informazioni su .bigqueryrc
, consulta
Impostare i valori predefiniti per i flag specifici dei comandi.
Per impostare --use_legacy_sql=false
in .bigqueryrc
:
- Apri
.bigqueryrc
in un editor di testo. Per impostazione predefinita,.bigqueryrc
deve trovarsi nella directory dell'utente, ad esempio$HOME/.bigqueryrc
. Aggiungi il seguente testo al file. Questo esempio imposta GoogleSQL come sintassi predefinita per le query e per il comando
mk
(utilizzato quando crei una visualizzazione). Se hai già configurato i valori predefiniti per i flag di comandoquery
omk
, non devi aggiungere di nuovo[query]
o[mk]
.[query] --use_legacy_sql=false [mk] --use_legacy_sql=false
Salva e chiudi il file.
Se utilizzi la shell interattiva, devi uscire e riavviare per applicare le modifiche.
Per informazioni sui flag a riga di comando disponibili, consulta Riferimento allo strumento a riga di comando bq.
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.
Per impostazione predefinita, la libreria C# utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro UseLegacySql
su true
.
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.
Per impostazione predefinita, la libreria client Go utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta la proprietà UseLegacySQL
nella configurazione della query su true
.
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 impostazione predefinita, la libreria client Java utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro useLegacySql
su true
.
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.
Per impostazione predefinita, la libreria client Node.js utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro useLegacySql
su true
.
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.
Per impostazione predefinita, la libreria client PHP utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro useLegacySql
su true
.
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.
Per impostazione predefinita, la libreria client Python utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro use_legacy_sql
su True
.
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.
Per impostazione predefinita, la libreria client Ruby utilizza GoogleSQL.Passare al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, passa l'opzione legacy_sql: true
con la query.
Passaggi successivi
- Per informazioni su come eseguire una query SQL in BigQuery, consulta Eseguire job di query interattive e in batch.
- Per ulteriori informazioni sull'ottimizzazione delle query in generale, consulta Introduzione all'ottimizzazione del rendimento delle query.
- Per informazioni sulla sintassi GoogleSQL utilizzata per eseguire query sui dati in BigQuery, consulta Sintassi delle query.
- Per scoprire di più su come utilizzare la sintassi della barra nelle query, consulta la sezione Sintassi della barra.