Introduzione a SQL in BigQuery
Questo documento fornisce una panoramica delle istruzioni e dei dialetti SQL supportati in BigQuery.
GoogleSQL è un linguaggio di query strutturato (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. Scansionano una o più tabelle o espressioni e restituiscono le righe di risultati calcolate. Le istruzioni di query possono includere la sintassi con operatore pipe.
- 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 come i seguenti:
- Set di dati
- Tabelle, inclusi schema e tipi di colonne
- Cloni e snapshot delle tabelle
- Visualizzazioni
- Funzioni
- Indici
- Impegni di capacità, prenotazioni e assegnazioni
- Policy 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 BigQuery, come l'accesso e la capacità.
Le istruzioni TCL (Transaction Control Language) consentono di gestire le transazioni per le modifiche dei dati.
Istruzioni di caricamento e istruzioni di esportazione per gestire i dati in entrata e in uscita da BigQuery.
Dialetti SQL di BigQuery
BigQuery supporta il dialetto GoogleSQL, che è il dialetto consigliato per tutti i nuovi progetti. È disponibile anche un dialetto SQL precedente con alcune limitazioni. Ti consigliamo di eseguire la migrazione da SQL precedente a GoogleSQL.
Modifica del dialetto predefinito
L'interfaccia utilizzata per eseguire query sui dati determina il dialetto di query predefinito. Per passare a un dialetto diverso:
Console
Il dialetto predefinito per la Google Cloud console è GoogleSQL. Per modificare il dialetto in SQL precedente:
Nella Google Cloud console, vai alla pagina BigQuery.
Nell'editor di query, fai clic sul pulsante Altro > Impostazioni query.
Nella sezione Opzioni avanzate, per Dialetto SQL, fai clic Precedente, quindi su Salva. In questo modo 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 come parte della query.
Questi prefissi di query non fanno distinzione tra maiuscole e minuscole, devono precedere la query e devono 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 natality:
Nella Google Cloud console, 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 saperne di più su come eseguire le 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.
Passa 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`'
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 saperne di più su .bigqueryrc, consulta
Impostare i valori predefiniti per i flag specifici dei comandi.
Per impostare --use_legacy_sql=false in .bigqueryrc:
- Apri
.bigqueryrcin un editor di testo. Per impostazione predefinita,.bigqueryrcdovrebbe trovarsi nella directory 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 perqueryomkflag dei comandi, non devi aggiungere di nuovo[query]o[mk].[query] --use_legacy_sql=false [mk] --use_legacy_sql=falseSalva e chiudi il file.
Se utilizzi la shell interattiva, devi uscire e riavviare per applicare le modifiche.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'C# API BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Go API BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 nella configurazione della query su true.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Java BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 di configurazione Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'Node.js API BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 di configurazione di PHP nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell' API PHP BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API PythonBigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 di configurazione di Ruby nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API Ruby BigQuery.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura 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 con la query.
Passaggi successivi
- Per informazioni su come eseguire una query SQL in BigQuery, consulta Eseguire job di query interattivi e in batch.
- Per saperne di più sull'ottimizzazione delle query in generale, consulta Introduzione all'ottimizzazione delle prestazioni delle query.
- Per scoprire di più sulla sintassi GoogleSQL utilizzata per eseguire query sui dati in BigQuery, consulta Sintassi delle query.
- Per saperne di più su come utilizzare la sintassi con operatore pipe nelle query, consulta Sintassi con operatore pipe.