Usando lo strumento a riga di comando bq
Lo strumento a riga di comando bq
è uno strumento a riga di comando basato su Python per BigQuery.
Questa pagina contiene informazioni generali sull'utilizzo dello strumento a riga di comando bq
.
Per un riferimento completo di tutti i comandi e i flag bq
, consulta il riferimento per lo strumento a riga di comando bq
.
Prima di iniziare
Prima di poter utilizzare lo strumento a riga di comando bq
, devi utilizzare la console Google Cloud per creare o selezionare un progetto.
- Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
-
Nella console di Google Cloud Console, nella pagina del selettore dei progetti, seleziona o crea un progetto Google Cloud.
- BigQuery è abilitato automaticamente nei nuovi progetti.
Per attivare BigQuery in un progetto preesistente, vai a
Attiva l'API BigQuery.
- Facoltativo: Abilita la fatturazione per il progetto. Se non vuoi abilitare la fatturazione o fornire una carta di credito, i passaggi descritti in questo documento funzionano comunque. BigQuery offre una sandbox per eseguire i passaggi. Per maggiori informazioni, vedi Attivare la sandbox di BigQuery.
Inserimento dei comandi bq
in Cloud Shell
Puoi inserire i comandi dello strumento a riga di comando bq
in Cloud Shell dalla console Google Cloud o da Google Cloud CLI.
Per utilizzare lo strumento a riga di comando
bq
dalla console Google Cloud, attiva Cloud Shell:Per utilizzare lo strumento a riga di comando
bq
dall'interfaccia a riga di comando gcloud, installa e configura l'interfaccia a riga di comando gcloud.
Flag e argomenti di posizionamento
Lo strumento a riga di comando bq
supporta due tipi di flag:
- I flag globali possono essere utilizzati in tutti i comandi.
- A un comando specifico si applicano flag specifici.
Per un elenco dei flag globali e specifici per i comandi, consulta la documentazione di riferimento sullo strumento a riga di comando bq
.
Inserisci eventuali flag globali prima del comando bq
, quindi includi flag specifici per i comandi. Puoi includere più flag globali
o specifici per i comandi. Ad esempio:
bq --location=us mk --reservation --project_id=project reservation_name
Puoi specificare argomenti di comando nei seguenti modi:
--FLAG ARGUMENT
(come mostrato negli esempi precedenti)--FLAG=ARGUMENT
--FLAG='ARGUMENT'
--FLAG="ARGUMENT"
--FLAG 'ARGUMENT'
--FLAG "ARGUMENT"
Sostituisci quanto segue:
FLAG
: un flag globale o specifico per il comandoARGUMENT
: l'argomento della bandiera
Alcuni comandi richiedono l'uso di virgolette singole o doppie tra gli argomenti. Questo spesso si verifica quando l'argomento contiene spazi, virgole o altri caratteri speciali. Ad esempio:
bq query --nouse_legacy_sql \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
I flag con valori booleani possono essere specificati senza argomenti. Se specifichi true
o false
, devi utilizzare il formato FLAG=ARGUMENT
.
Ad esempio, questo comando specifica false per il flag booleano --use_legacy_sql
posizionando no
davanti al flag:
bq query --nouse_legacy_sql \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
In alternativa, per specificare false
come argomento del flag, puoi inserire quanto segue:
bq query --use_legacy_sql=false \ 'SELECT COUNT(*) FROM `bigquery-public-data`.samples.shakespeare'
Esecuzione di query dallo strumento a riga di comando bq
Per eseguire una query che hai sviluppato nella console Google Cloud ed eseguirla dallo strumento a riga di comando bq
, procedi nel seguente modo:
- Includi la query in un comando
bq query
come segue:bq query --use_legacy_sql=false 'QUERY'
. SostituisciQUERY
con la query. - Sostituisci le virgolette singole (
'
) nella query con virgolette doppie ("
). - Rimuovi i commenti dalla query.
Ad esempio, trasforma la query seguente della console Google Cloud:
-- count Shakespeare's use of the string "raisin"
SELECT
word,
SUM(word_count) AS count
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word LIKE '%raisin%'
GROUP BY
word
in una query dello strumento a riga di comando bq
, come segue:
bq query --use_legacy_sql=false \
'SELECT
word,
SUM(word_count) AS count
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word LIKE "%raisin%"
GROUP BY
word'
Per ulteriori informazioni, consulta Esecuzione di job di query interattivi e batch.
Assistenza
Per ricevere assistenza per lo strumento a riga di comando bq
, puoi inserire i comandi seguenti:
- Per la versione installata dello strumento a riga di comando
bq
, inseriscibq version
. - Per un elenco completo dei comandi, inserisci
bq help
. - Per un elenco di bandiere globali, inserisci
bq --help
. - Per ricevere assistenza per un comando specifico, inserisci
bq help COMMAND
. - Per ricevere assistenza per un comando specifico e un elenco di flag globali, inserisci
bq COMMAND --help
.
Sostituisci COMMAND
con il comando per cui hai bisogno di assistenza.
Impostazione dei valori predefiniti per i flag della riga di comando
Puoi impostare valori predefiniti per i flag della riga di comando includendoli nel file di configurazione dello strumento a riga di comando bq
, .bigqueryrc
. Prima di configurare le opzioni predefinite, devi creare un file .bigqueryrc
. Puoi usare l'editor di testo che preferisci per creare il file. Dopo aver creato il file .bigqueryrc
, puoi specificare il percorso del file utilizzando il flag globale --bigqueryrc
.
Se il flag --bigqueryrc
non è specificato, viene utilizzata la variabile di ambiente BIGQUERYRC
. Se non è specificato, viene utilizzato il percorso ~/.bigqueryrc
. Il percorso predefinito è $HOME/.bigqueryrc
.
Aggiunta di flag a .bigqueryrc
Per aggiungere valori predefiniti per i flag della riga di comando a .bigqueryrc
:
- Posiziona i flag globali nella parte superiore del file senza intestazione.
- Per i flag specifici per i comandi, inserisci il nome del comando (tra parentesi) e aggiungi i flag specifici per il comando (uno per riga) dopo il nome del comando.
Ad esempio:
--apilog=stdout --format=prettyjson --location=US [query] --use_legacy_sql=false --max_rows=100 --maximum_bytes_billed=10000000 [load] --destination_kms_key=projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey
L'esempio precedente imposta i valori predefiniti per i seguenti flag:
- Il flag globale
--apilog
è impostato sustdout
per stampare l'output di debug nella console Google Cloud. - Il flag globale
--format
è impostato suprettyjson
per visualizzare l'output comando in un formato JSON leggibile. - Il flag globale
--location
è impostato sulla località multiregioneUS
. Il flag
--use_legacy_sql
specifico per il comandoquery
è impostato sufalse
per rendere GoogleSQL la sintassi predefinita delle query.Il flag
--max_rows
specifico per il comandoquery
è impostato su100
per controllare il numero di righe nell'output della query.Il flag
--maximum_bytes_billed
specifico per il comandoquery
è impostato su 10.000.000 byte (10 MB) per eseguire query non riuscite che leggono più di 10 MB di dati.Il flag specifico del comando
load
--destination_kms_key
è impostato suprojects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey
.
Esecuzione dello strumento a riga di comando bq
in una shell interattiva
Puoi eseguire lo strumento a riga di comando bq
in una shell interattiva in cui non è necessario
precedere i comandi con bq
. Per avviare la modalità interattiva, inserisci bq shell
.
Dopo aver avviato la shell, il prompt cambia all'ID del progetto predefinito.
Per uscire dalla modalità interattiva, inserisci exit
.
Esecuzione dello strumento a riga di comando bq
in uno script
Puoi eseguire lo strumento a riga di comando bq
in uno script, come faresti con un
comando Google Cloud CLI. Di seguito è riportato un esempio di comandi gcloud
e bq
in uno script bash:
#!/bin/bash
gcloud config set project myProject
bq query --use_legacy_sql=false --destination_table=myDataset.myTable \
'SELECT
word,
SUM(word_count) AS count
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word LIKE "%raisin%"
GROUP BY
word'
Esecuzione di bq
comandi da un account di servizio
Puoi utilizzare un account di servizio per effettuare chiamate API autorizzate o eseguire job di query per tuo conto. Per utilizzare un account di servizio nello strumento a riga di comando bq
, autorizza l'accesso a Google Cloud dall'account di servizio.
Per ulteriori informazioni, consulta gcloud auth activate-service-account.
Per iniziare a eseguire i comandi bq
utilizzando il
furto d'identità degli account di servizio,
esegui il seguente comando:
gcloud config set auth/impersonate_service_account SERVICE_ACCOUNT_NAME
Sostituisci SERVICE_ACCOUNT_NAME
con il nome del tuo account di servizio.
I comandi bq
che esegui ora utilizzano le credenziali dell'account di servizio.
Per interrompere l'esecuzione dei comandi bq
da un account di servizio, esegui questo comando:
gcloud config unset auth/impersonate_service_account
Esempi
Puoi trovare esempi della riga di comando nella sezione Guide illustrative della documentazione di BigQuery. Questa sezione elenca i link alle attività a riga di comando comuni, come la creazione, il recupero, l'elenco, l'eliminazione e la modifica delle risorse BigQuery.
Creazione delle risorse
Per informazioni sull'utilizzo dello strumento a riga di comando bq
, crea quanto segue:
- Creazione di un set di dati
- Creazione di una tabella vuota con una definizione di schema
- Creazione di una tabella da un risultato di query
- Creazione di una tabella partizionata al momento dell'importazione
- Creare una vista
Per esempi di creazione di una tabella utilizzando un file di dati, vedi Caricamento dei dati.
Ottenere informazioni sulle risorse
Per informazioni sull'utilizzo dello strumento a riga di comando bq
, consulta le risorse seguenti:
Elenco delle risorse
Per informazioni sull'utilizzo dello strumento a riga di comando bq
, consulta le seguenti risorse:
Job in elenco
Per informazioni sull'utilizzo dello strumento a riga di comando bq
per elencare i job, consulta quanto segue:
Aggiornamento delle risorse
Per informazioni sull'utilizzo dello strumento a riga di comando bq
, aggiorna quanto segue:
- Aggiornamento delle proprietà del set di dati
- Aggiornamento delle proprietà della tabella
- Aggiornare le proprietà delle viste
Caricamento dei dati
Per informazioni sull'utilizzo dello strumento a riga di comando bq
per caricare i dati, vedi:
- Caricamento dei dati Avro da Cloud Storage
- Caricamento dei dati JSON da Cloud Storage
- Caricamento dei dati CSV da Cloud Storage
- Caricare i dati da un file locale
Esecuzione di query sui dati
Per informazioni sull'utilizzo dello strumento a riga di comando bq
, esegui le query seguenti:
Utilizzo di origini dati esterne
Per informazioni sull'utilizzo dello strumento a riga di comando bq
per eseguire query sui dati in origini dati esterne, consulta quanto segue:
- Creazione di una definizione di tabella utilizzando un file di schema JSON
- Esecuzione di query sui dati di Cloud Bigtable utilizzando tabelle esterne permanenti
- Esecuzione di query sui dati di Cloud Storage utilizzando tabelle esterne permanenti
- Esecuzione di query sui dati di Google Drive utilizzando tabelle esterne permanenti
Esportazione di dati
Per informazioni sull'utilizzo dello strumento a riga di comando bq
per esportare i dati, vedi:
Utilizzo di BigQuery Data Transfer Service
Per informazioni sull'utilizzo dello strumento a riga di comando bq
con BigQuery Data Transfer Service, consulta:
- Configurare un trasferimento Amazon S3
- Configurare un trasferimento Campaign Manager
- Configurare un trasferimento di Cloud Storage
- Configurare un trasferimento in Google Ad Manager
- Configurare un trasferimento Google Ads
- Configurare un trasferimento di Google Merchant Center (beta)
- Configurare un trasferimento su Google Play
- Configurare un trasferimento a Search Ads 360 (beta)
- Configurare il trasferimento di un canale YouTube
- Configurare il trasferimento di un proprietario dei contenuti di YouTube
- Eseguire la migrazione dei dati da Amazon Redshift
- Eseguire la migrazione dei dati da Teradata
- Informazioni sulle configurazioni di trasferimento
- Elencare le configurazioni di trasferimento
- Visualizzare la cronologia esecuzioni
- Visualizzare i dettagli dell'esecuzione del trasferimento e i messaggi di log
- Aggiornamento delle configurazioni di trasferimento
Risoluzione dei problemi dello strumento a riga di comando bq
Questa sezione mostra come risolvere i problemi relativi allo strumento a riga di comando bq
.
Mantieni aggiornato l'interfaccia a riga di comando gcloud
Se utilizzi lo strumento a riga di comando bq
di Google Cloud CLI, assicurati di disporre delle funzionalità e delle correzioni più recenti per lo strumento a riga di comando bq
mantenendo aggiornata l'installazione dell'interfaccia a riga di comando gcloud.
Per verificare se stai eseguendo la versione più recente dell'interfaccia a riga di comando gcloud, inserisci il comando seguente in Cloud Shell:
gcloud components list
Le prime due righe dell'output mostrano il numero di versione dell'installazione dell'interfaccia a riga di comando gcloud attuale e il numero di versione dell'interfaccia a riga di comando gcloud più recente. Se scopri che la tua versione non è aggiornata, puoi aggiornare l'installazione dell'interfaccia a riga di comando gcloud alla versione più recente inserendo il comando seguente in Cloud Shell:
gcloud components update
Debug
Puoi inserire i seguenti comandi per eseguire il debug dello strumento a riga di comando bq
:
Visualizzare le richieste inviate e ricevute Aggiungi il flag
--apilog=PATH_TO_FILE
per salvare un log delle operazioni in un file locale. SostituisciPATH_TO_FILE
con il percorso in cui vuoi salvare il log. Lo strumento a riga di comandobq
esegue chiamate API standard basate su REST, che possono essere utili da vedere. Inoltre, è utile allegare questo log per la segnalazione di problemi. L'utilizzo di-
ostdout
anziché un percorso stampa il log sulla console Google Cloud. L'impostazione di--apilog
sustderr
restituisce il file di errore standard.Risolvi gli errori. Inserisci il flag
--format=prettyjson
quando ottieni lo stato di un job o quando visualizzi informazioni dettagliate su risorse come tabelle e set di dati. Se usi questo flag, la risposta viene restituita in formato JSON, inclusa la proprietàreason
. Puoi utilizzare la proprietàreason
per cercare i passaggi per la risoluzione dei problemi.