Introduzione a SQL in BigQuery
Questo documento fornisce una panoramica delle istruzioni e dei dialetti SQL supportati in BigQuery.
Panoramica
GoogleSQL è un Structured Query Language (SQL) conforme ad ANSI che include i seguenti tipi di istruzioni supportate:
- Le istruzioni di query, note anche come istruzioni DQL (Data Query Language), sono il metodo principale per analizzare i dati in BigQuery. Analizzano una o più tabelle o espressioni e restituiscono le righe dei risultati calcolate.
- Le istruzioni in linguaggio procedurale sono estensioni procedurali a GoogleSQL che consentono di eseguire più istruzioni SQL in una singola richiesta. Le istruzioni procedurali possono usare variabili e istruzioni del flusso di controllo con 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 DML (Data Manipulation Language) consentono di aggiornare, inserire ed eliminare dati dalle tabelle BigQuery.
- Le istruzioni DCL (Data Control Language) consentono di controllare le risorse di sistema di BigQuery, come l'accesso e la capacità.
- Le istruzioni TCL (Transaction Control Language) consentono di gestire le transazioni per le modifiche dei dati.
- Altre istruzioni forniscono funzionalità aggiuntive, come l'esportazione dei dati.
Dialetti SQL BigQuery
BigQuery supporta il dialetto GoogleSQL, ma è disponibile anche un dialetto SQL precedente. Se è la prima volta che utilizzi BigQuery, dovresti usare GoogleSQL, che supporta un'ampia gamma di funzionalità. Ad esempio, funzionalità come le istruzioni DDL e DML sono supportate solo da GoogleSQL. Il codice SQL precedente viene mantenuto per garantire la compatibilità con le versioni precedenti e consigliamo ai clienti di migrate se utilizzano l'SQL precedente.
Passaggio dal dialetto predefinito
L'interfaccia che utilizzi per eseguire query sui dati determina quale dialetto di query è predefinito. Per passare a un dialetto diverso:
Console
Il dialetto predefinito per la console Google Cloud è GoogleSQL. Per modificare il dialetto in SQL precedente:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor query, fai clic sul pulsante Altro > Impostazioni query.
Nella sezione Opzioni avanzate, per Dialetto SQL, fai clic su Legacy e poi su Salva. Imposta l'opzione SQL precedente per questa query. Quando fai clic su Crea una nuova query per creare una nuova query, devi selezionare di nuovo l'opzione SQL precedente.
SQL
Il dialetto SQL predefinito è GoogleSQL.
Per impostare il dialetto SQL, includi il prefisso #standardSQL
o #legacySQL
nella query.
Questi prefissi di query non sono sensibili alle maiuscole, devono precedere la query e
devono essere separati dalla query da un carattere di nuova riga. Nell'esempio seguente il dialetto viene impostato su SQL precedente ed esegue query sul set di dati sulla natalità:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor 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 le query, vedi Eseguire una query interattiva.
bq
Il dialetto predefinito delle query 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.
Passa al dialetto GoogleSQL
Per utilizzare la sintassi di 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`'
Imposta 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 maggiori informazioni su .bigqueryrc
, consulta
Impostazione di valori predefiniti per 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 degli utenti, ad esempio$HOME/.bigqueryrc
. Aggiungi il testo seguente al file. In questo esempio, GoogleSQL come sintassi predefinita per le query e per il comando
mk
(utilizzato quando crei una vista). Se hai già configurato i valori predefiniti per i flag di comandoquery
omk
, non è necessario 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 della riga di comando disponibili, consulta la pagina di riferimento per lo strumento a riga di comando bq.
C#
Prima di provare questo esempio, segui le istruzioni per la configurazione di C# nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API C# di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria C# utilizza GoogleSQL.Passa al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta il parametro UseLegacySql
su true
.
Go
Prima di provare questo esempio, segui le istruzioni per la configurazione di Go nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Go di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client Go utilizza GoogleSQL.Passa al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, imposta la proprietà UseLegacySQL
all'interno della configurazione della query su true
.
Java
Prima di provare questo esempio, segui le istruzioni per la configurazione di Java nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Java di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client Java utilizza GoogleSQL.Passa 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 per la configurazione di Node.js nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Node.js di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client Node.js utilizza GoogleSQL.Passa 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 per la configurazione di PHP nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API PHP di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client PHP utilizza GoogleSQL.Passa 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 per la configurazione di Python nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Python di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client Python utilizza GoogleSQL.Passa 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 per la configurazione di Ruby nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per maggiori informazioni, consulta la documentazione di riferimento dell'API Ruby di BigQuery.
Per eseguire l'autenticazione su BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Per impostazione predefinita, la libreria client Ruby utilizza GoogleSQL.Passa al dialetto SQL precedente
Per utilizzare la sintassi SQL precedente in un job di query, passa l'opzione legacy_sql: true
alla query.
Passaggi successivi
- Per informazioni su come eseguire una query SQL in BigQuery, consulta Esecuzione di job di query interattivi e batch.
- Per ulteriori informazioni sull'ottimizzazione delle query in generale, consulta Introduzione all'ottimizzazione delle prestazioni delle query.
- Per saperne di più sulla sintassi di GoogleSQL utilizzata per eseguire query sui dati in BigQuery, consulta Sintassi delle query.