Riferimento per lo strumento a riga di comando bq

Questo documento descrive la sintassi, i comandi, i flag e gli argomenti per bq, lo strumento a riga di comando basato su Python per BigQuery.

Per un tutorial sull'utilizzo dello strumento a riga di comando bq, consulta Carica ed esegui query sui dati con lo strumento bq.

Modi per utilizzare lo strumento a riga di comando bq

Puoi inserire i comandi dello strumento a riga di comando bq in Cloud Shell dalla console Google Cloud o da un'installazione locale di Google Cloud CLI.

Formato del comando

Lo strumento a riga di comando bq utilizza il seguente formato:

bq COMMAND [FLAGS] [ARGUMENTS]

Alcuni flag possono essere utilizzati con più comandi dello strumento a riga di comando bq. Questi flag sono descritti nella sezione Flag globali.

Altri flag sono specifici per i comandi e possono essere utilizzati solo con un determinato comando dello strumento a riga di comando bq. I flag specifici dei comandi sono descritti nelle sezioni dei comandi.

Specifica dei valori per i flag

Quando specifichi un valore per un flag, il segno di uguale (=) è facoltativo. Ad esempio, i due comandi seguenti sono equivalenti:

bq ls --format prettyjson myDataset
bq ls --format=prettyjson myDataset

Questo documento utilizza il segno di uguale per maggiore chiarezza.

Alcuni flag dello strumento a riga di comando bq sono booleani; puoi impostare il valore del flag su true o false. Lo strumento a riga di comando bq accetta i seguenti formati per l'impostazione dei flag booleani.

Valore Formato Esempio
true --FLAGNAME=true --debug_mode=true
true --FLAGNAME --debug_mode
false --FLAGNAME=false --debug_mode=false
false --noFLAGNAME --nodebug_mode

Questo documento utilizza il formato --FLAGNAME=VALUE per i flag booleani.

Tutti i flag booleani sono facoltativi; se un flag booleano non è presente, BigQuery utilizza il valore predefinito del flag.

Specifica delle risorse BigQuery negli argomenti

Il formato per specificare una risorsa dipende dal contesto; in alcuni casi il separatore tra il progetto e il set di dati è un due punti (:) e in altri casi è un punto (.). La tabella seguente descrive come specificare una tabella BigQuery in contesti diversi.

Contesto Formato Esempio
Strumento a riga di comando bq PROJECT:DATASET.TABLE myProject:myDataset.myTable
Query GoogleSQL PROJECT.DATASET.TABLE myProject.myDataset.myTable
Query SQL precedente PROJECT:DATASET.TABLE myProject:myDataset.myTable

Se non specifichi un progetto, BigQuery utilizza il progetto corrente. Ad esempio, se il progetto corrente è myProject, BigQuery interpreta myDataset.myTable come myProject:myDataset.myTable (o myProject.myDataset.myTable).

Alcuni identificatori di risorse devono essere racchiusi tra apici inversi (`). Se l'identificatore di risorsa inizia con una lettera o un trattino basso e contiene solo caratteri che sono lettere, numeri e trattini bassi, non è necessario racchiuderlo tra apici. Tuttavia, se l'identificatore della risorsa contiene altri tipi di caratteri o parole chiave riservate, devi racchiudere l'identificatore (o la parte dell'identificatore con i caratteri speciali o le parole chiave riservate) tra apici inversi. Per saperne di più, consulta Identificatori.

Come eseguire i comandi

Posiziona eventuali flag globali prima del comando bq, quindi includi i flag specifici del comando. Puoi includere più flag globali o specifici del comando. Ad esempio:

bq --location=us mk --reservation --project_id=project reservation_name

Puoi specificare gli argomenti dei comandi 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 del comando
  • ARGUMENT: l'argomento del flag

Alcuni comandi richiedono l'uso di virgolette intorno agli argomenti. Se sono necessarie le virgolette, sono accettabili sia le virgolette singole che quelle doppie. Gli argomenti che richiedono le virgolette sono in genere valori che contengono spazi, virgole o altri caratteri speciali. Se l'argomento contiene una risorsa BigQuery, assicurati di seguire le regole per specificare i nomi delle risorse nei comandi.

Questo esempio mostra come eseguire una query GoogleSQL dalla riga di comando:

bq query --nouse_legacy_sql \
'SELECT
   COUNT(*)
 FROM
   `bigquery-public-data`.samples.shakespeare'

I flag con valori booleani possono essere specificati senza un argomento. Se specifichi true o false, devi utilizzare il formato FLAG=ARGUMENT.

Ad esempio, questo comando specifica false per il flag booleano --use_legacy_sql inserendo 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'

Esegui i comandi in uno script

Puoi eseguire lo strumento a riga di comando bq in uno script, come faresti con un comando di 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'

Utilizza un account di servizio

Puoi utilizzare un service account 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 dal account di servizio. Per saperne di più, consulta gcloud auth activate-service-account.

Per iniziare a eseguire i comandi bq utilizzando la simulazione dell'identità dei service account, esegui questo 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

Imposta i valori predefiniti per i flag della riga di comando

Puoi impostare i 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 utilizzare il tuo editor di testo preferito 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 viene specificato, viene utilizzato il percorso ~/.bigqueryrc. Il percorso predefinito è $HOME/.bigqueryrc.

Come aggiungere flag a .bigqueryrc

Per aggiungere valori predefiniti per i flag della riga di comando a .bigqueryrc:

  • Inserisci i flag globali nella parte superiore del file senza un'intestazione.
  • Per i flag specifici del comando, inserisci il nome del comando (tra parentesi) e aggiungi i flag specifici del 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 su stdout per stampare l'output di debug sulla consoleGoogle Cloud .
  • Il flag globale --format è impostato su prettyjson per visualizzare l'output comando in un formato JSON leggibile.
  • Il flag globale --location è impostato sulla località multi-regione US.
  • Il flag --use_legacy_sql specifico del comando query è impostato su false per rendere GoogleSQL la sintassi di query predefinita.

  • Il flag --max_rows specifico del comando query è impostato su 100 per controllare il numero di righe nell'output della query.

  • Il flag --maximum_bytes_billed specifico del comando query è impostato su 10.000.000 di byte (10 MB) per non riuscire le query che leggono più di 10 MB di dati.

  • Il flag --destination_kms_key specifico del comando load è impostato su projects/myproject/locations/mylocation/keyRings/myRing/cryptoKeys/myKey.

Guida per l'interfaccia a riga di comando

Puoi ricevere assistenza per lo strumento a riga di comando bq eseguendo i seguenti comandi:

Descrizione Formato del comando Help Esempio
Versione installata bq version bq version
Elenco di tutti i comandi con esempi bq help bq help
Descrizione dei flag globali bq --help bq --help
Descrizione di un comando specifico bq help COMMAND bq help mk

Risoluzione dei problemi relativi ai comandi dell'interfaccia a riga di comando

Per registrare le richieste inviate e ricevute:

Aggiungi il flag --apilog=PATH_TO_FILE per salvare un log delle operazioni in un file locale. Sostituisci PATH_TO_FILE con la posizione in cui vuoi salvare il log. Lo strumento a riga di comando bq funziona effettuando chiamate API standard basate su REST, che possono essere utili per la risoluzione dei problemi. È utile allegare questo log anche quando segnali problemi all'assistenza clienti Google Cloud.

Se utilizzi - o stdout anziché un percorso, il log viene stampato nella console Google Cloud . L'impostazione di --apilog su stderr genera l'output nel file di errore standard. Per registrare più richieste, utilizza il flag --httplib2_debuglevel=LOG_LEVEL. Un valore LOG_LEVEL più alto registra più informazioni sulle richieste HTTP.

Per risolvere gli errori:

Inserisci il flag --format=prettyjson quando recuperi lo stato di un job o quando visualizzi informazioni dettagliate su risorse come tabelle e set di dati. L'utilizzo di questo flag genera la risposta in formato JSON, inclusa la proprietà reason. Puoi utilizzare la proprietà reason per trovare i messaggi di errore.

Per saperne di più sugli errori che si verificano quando esegui un comando, utilizza il flag --debug_mode.

Flag globali

Puoi utilizzare i seguenti flag con qualsiasi comando bq, se applicabile:

--alpha=FEATURE_NAME
Specifica una funzionalità alpha da attivare.
--api=ENDPOINT
Specifica l'endpoint API da chiamare. Il valore predefinito è https://bigquery.googleapis.com.
--api_version=VERSION
Specifica la versione dell'API da utilizzare. Il valore predefinito è v2.
--apilog=FILE

Registra tutte le richieste e le risposte API nel file specificato da FILE. I valori possibili sono i seguenti:

  • il percorso di un file: i log vengono scritti nel file specificato
  • stdout: log nell'output standard
  • stderr: i log vengono inviati all'errore standard
  • false: le richieste e le risposte API non vengono registrate (impostazione predefinita)
--bigquery_discovery_api_key=API_KEY

Specifica una chiave API da utilizzare per le richieste di documenti di rilevamento.

--bigqueryrc=PATH

Specifica il percorso del file di configurazione dello strumento a riga di comando bq. Se non specifichi il flag --bigqueryrc, il comando utilizza la variabile di ambiente BIGQUERYRC. Se la variabile di ambiente non è impostata, viene utilizzato $HOME/.bigqueryrc. Se il file non esiste, viene utilizzato ~/.bigqueryrc. Per saperne di più, consulta Impostazione dei valori predefiniti per i flag della riga di comando.

--ca_certificates_file=PATH

Specifica la posizione del file dell'autorità di certificazione (CA) di Certificate Authority Service.

--dataset_id=DATASET_ID

Specifica il set di dati predefinito da utilizzare con il comando. Questo flag viene ignorato quando non è applicabile. Puoi specificare l'argomento DATASET_ID utilizzando il formato PROJECT:DATASET o DATASET. Se la parte PROJECT non è presente, viene utilizzato il progetto predefinito. Puoi eseguire l'override dell'impostazione predefinita delle impostazioni progetto specificando il flag --project_id.

--debug_mode={true|false}

Se impostato su true, mostra i traceback sulle eccezioni Python. Il valore predefinito è false.

--disable_ssl_validation={true|false}

Se impostato su true, disattiva la convalida del certificato HTTPS. Il valore predefinito è false.

--discovery_file=PATH

Specifica il file JSON da leggere per il discovery.

--enable_gdrive={true|false}

Se impostato su false, richiede un nuovo token OAuth senza l'ambito di Google Drive. Il valore predefinito è true; richiede un nuovo token OAuth con l'ambito Drive. Per impostare questo flag su false quando l'autenticazione viene eseguita utilizzando un account utente, il flag --use_google_auth deve essere impostato su false.

--enable_resumable_uploads={true|false}

Abilita i caricamenti ripristinabili su HTTP per i job che caricano dati da file locali. Il valore predefinito è true.

--fingerprint_job_id={true|false}

Per utilizzare un ID job derivato da una fingerprint della configurazione del job, imposta su true. In questo modo si evita che lo stesso job venga eseguito più volte per errore. Il valore predefinito è false.

--format=FORMAT

Specifica il formato dell'output del comando. Usa uno dei seguenti valori:

  • pretty: output della tabella formattata
  • sparse: output della tabella più semplice
  • prettyjson: formato JSON di facile lettura
  • json: JSON con la massima compattezza
  • csv: formato CSV con intestazione

pretty, sparse e prettyjson sono pensati per essere leggibili da una persona. json e csv devono essere utilizzati da un altro programma. Se viene specificato none, il comando non produce alcun output. Se il flag --format non è presente, viene scelto un formato di output appropriato in base al comando.

--headless={true|false}

Per eseguire la sessione bq senza interazione utente, imposta su true. Ad esempio, debug_mode non si interrompe nel debugger e la frequenza di stampa delle informazioni viene ridotta. Il valore predefinito è false.

--httplib2_debuglevel=DEBUG_LEVEL

Specifica se mostrare le informazioni di debug HTTP. Se DEBUG_LEVEL è maggiore di 0, il comando registra le richieste e le risposte del server HTTP in stderr, oltre ai messaggi di errore. Se DEBUG_LEVEL non è > 0 o se il flag --httplib2_debuglevel non viene utilizzato, vengono forniti solo i messaggi di errore.

Ad esempio:

--httplib2_debuglevel=1

--job_id=JOB_ID

Specifica un identificatore per un nuovo job. Questo flag si applica solo ai comandi che creano job: cp, extract, load e query. Se non utilizzi il flag --job_id, i comandi generano un identificatore del job univoco. Per saperne di più, consulta Esecuzione dei job in modo programmatico.

--job_property=KEY:VALUE

Una coppia chiave-valore da includere nel campo delle proprietà della configurazione del job. Ripeti questo flag per specificare proprietà aggiuntive.

--jobs_query_use_request_id={true|false}

Se impostato su true, invia un ID richiesta nelle richieste jobs.query. Il valore predefinito è false.

--jobs_query_use_results_from_response={true|false}

Se è impostato su true, utilizza i risultati della risposta jobs.query. Il valore predefinito è true.

--location=LOCATION

Una stringa corrispondente a una località singola o multiregionale. Il flag della località è obbligatorio per il comando bq cancel e per il comando bq show quando utilizzi il flag --jobs per mostrare informazioni sui job. Il flag location è facoltativo per i seguenti comandi:

  • query
  • cp
  • load
  • extract
  • partition
  • update
  • wait
  • mk quando utilizzi i flag --dataset, --reservation, --capacity_commitment o --reservation_assignment
  • ls quando utilizzi i flag --reservation, --capacity_commitment o --reservation_assignment

Tutti gli altri comandi ignorano il flag --location.

--max_rows_per_request=MAX_ROWS

Un numero intero che specifica il numero massimo di righe da restituire per lettura.

--mtls={true|false}

Se impostato su true, utilizza un certificato client mTLS per le connessioni a BigQuery. Il valore predefinito è false.

--project_id=PROJECT

Specifica il progetto da utilizzare per i comandi.

--proxy_address=PROXY

Specifica il nome o l'indirizzo IP dell'host proxy da utilizzare per la connessione a Google Cloud.

--proxy_password=PASSWORD

Specifica la password da utilizzare per l'autenticazione con l'host proxy.

--proxy_port=PORT

Specifica il numero di porta da utilizzare per la connessione all'host proxy.

--proxy_username=USERNAME

Specifica il nome utente da utilizzare per l'autenticazione con l'host proxy.

--quiet={true|false} o -q={true|false}

Per eliminare gli aggiornamenti di stato durante l'esecuzione dei job, imposta il valore su true. Il valore predefinito è false.

--quota_project_id=PROJECT_ID

Specifica l'ID di un progetto Google Cloud da utilizzare come progetto di quota da utilizzare per la fatturazione e i limiti di quota.

--request_reason=REASON

Specifica un motivo per effettuare una richiesta che viene registrata negli audit log.

--synchronous_mode={true|false} o -sync={true|false}

Per creare il job e restituire immediatamente un codice di errore che indica il completamento riuscito, imposta il valore su false. Se impostato su true, il comando attende il completamento del job prima di restituire il risultato e restituisce lo stato di completamento del job come codice di errore. Il valore predefinito è true.

--trace=token:TOKEN

Specifica un token di tracciamento da includere nelle richieste API.

--universe_domain=DOMAIN

Specifica il dominio universe da utilizzare nei domini Trusted Partner Cloud (TPC).

--use_gcloud_config={true|false}

Se impostato su true, utilizza la configurazione gcloud per eseguire l'override dei valori dei flag predefiniti. Il valore predefinito è true.

--use_gcloud_config_cache={true|false}

Se impostato su true, utilizza una cache permanente per la configurazione e le credenziali di gcloud. Il valore predefinito è false.

--use_google_auth={true|false}

Se impostato su true, abilita l'autenticazione utilizzando le librerie di autenticazione Google. Il valore predefinito è true.

--use_lep={true|false}

Se impostato su true, utilizza un endpoint LEP basato sulla località dell'operazione. Il valore predefinito è false.

--use_regional_endpoints={true|false}

In anteprima. Per connetterti a un endpoint regionale, imposta il flag --use_regional_endpoints su true e il flag --location sulla regione a cui vuoi connetterti. Il valore predefinito è false.

--use_rep={true|false}

Se impostato su true, utilizza un endpoint REP basato sulla località dell'operazione. Il valore predefinito è false.

Flag globali deprecati

Il seguente flag globale per specificare i flag dello strumento a riga di comando bq da un file è deprecato. Per specificare i flag da un file, utilizza il flag --bigqueryrc.

--flagfile=PATH

Se specificato, le definizioni dei flag del file fornito vengono inserite nello strumento a riga di comando bq. Il valore predefinito è ''. Per saperne di più, consulta Impostazione dei valori predefiniti per i flag della riga di comando.

Comandi

Le sezioni seguenti descrivono i comandi dello strumento a riga di comando bq, insieme ai relativi flag e argomenti specifici.

bq add-iam-policy-binding

Utilizza il comando bq add-iam-policy-binding per recuperare la policy IAM (Identity and Access Management) per una tabella o una vista e aggiungere un'associazione alla policy in un unico passaggio.

Questo comando è un'alternativa alla seguente procedura in tre passaggi:

  1. Utilizzando il comando bq get-iam-policy per recuperare il file della policy (in formato JSON).
  2. Modifica del file della policy.
  3. Utilizzando il comando bq set-iam-policy per aggiornare la policy con una nuova associazione.

Trama

bq add-iam-policy-binding [FLAGS] --member=MEMBER_TYPE:MEMBER --role=ROLE
  [--table] RESOURCE

Esempio

bq add-iam-policy-binding --member=user:myAccount@gmail.com \
  --role=roles/bigquery.dataViewer myDataset.myTable

Flag e argomenti

Il comando bq add-iam-policy-binding utilizza i seguenti flag e argomenti:

--member=MEMBER_TYPE:MEMBER

Obbligatorio. Utilizza il flag --member per specificare la parte del membro dell'associazione della policy IAM. Il flag --member è obbligatorio insieme al flag --role. Una combinazione di flag --member e --role equivale a un'associazione.

Il valore MEMBER_TYPE specifica il tipo di membro nell'associazione della policy IAM. Usa uno dei seguenti valori:

  • user
  • serviceAccount
  • group
  • domain

Il valore MEMBER specifica l'indirizzo email o il dominio del membro nell'associazione della policy IAM.

--role=ROLE

Obbligatorio. Specifica la parte del ruolo dell'associazione della policy IAM. Il flag --role è obbligatorio insieme al flag --member. Una combinazione di flag --member e --role equivale a un'associazione.

--table={true|false}

Per restituire un errore se l'argomento RESOURCE non è un identificatore di tabella o vista, imposta il flag --table su true. Il valore predefinito è false. Questo flag è supportato per coerenza con altri comandi.

RESOURCE

La tabella o la vista alla cui policy vuoi aggiungere elementi.

Per saperne di più, consulta il riferimento alle policy IAM.

bq cancel

Utilizza il comando bq cancel per annullare i job BigQuery.

Trama

bq [--synchronous_mode=false] cancel JOB_ID

Esempi

bq cancel bqjob_12345
bq --synchronous_mode=false cancel bqjob_12345

Flag e argomenti

Il comando bq cancel utilizza i seguenti flag e argomenti:

--synchronous_mode=false
Se non vuoi attendere il completamento del comando bq cancel ,imposta il flag globale --synchronous_mode su false. Il valore predefinito è true.
JOB_ID
Il job che vuoi annullare.

Per saperne di più sull'utilizzo del comando bq cancel, consulta Gestione dei job.

bq cp

Utilizza il comando bq cp per le seguenti attività:

Trama

bq cp [FLAGS] SOURCE_TABLE DESTINATION_TABLE

Esempio

bq cp myDataset.myTable myDataset.myTableCopy

Flag e argomenti

Il comando bq cp utilizza i seguenti flag e argomenti:

--append_table={true|false} o -a={true|false}

Per aggiungere una tabella a una tabella esistente, imposta su true. Il valore predefinito è false.

Non puoi utilizzare le impostazioni dei flag --append_table=true e --clone=true contemporaneamente.

--clone={true|false}

Per creare un clone della tabella, imposta su true. La tabella di base può essere una tabella standard, un clone di tabella o uno snapshot di tabella. La tabella di destinazione è un clone della tabella. Il valore predefinito è false; se non viene specificato né --clone=true né --snapshot=true, la tabella di destinazione è dello stesso tipo della tabella di base. Richiede il flag --no_clobber.

Non puoi utilizzare le impostazioni dei flag --append_table=true e --clone=true contemporaneamente.

--destination_kms_key=KEY

Specifica un ID risorsa chiave Cloud KMS per criptare i dati della tabella di destinazione.

Ad esempio:

--destination_kms_key=projects/myProject/locations/global/keyRings/myKeyRing/cryptoKeys/myKey

--expiration=SECONDS

Il numero di secondi prima della scadenza di uno snapshot della tabella. Se non è inclusa, la scadenza dello snapshot della tabella viene impostata sulla scadenza predefinita del set di dati contenente il nuovo snapshot della tabella. Da utilizzare con il flag --snapshot.

--force={true|false} o -f={true|false}

Per sovrascrivere la tabella di destinazione, se esiste, senza chiedere conferma, imposta il valore su true. Il valore predefinito è false; se la tabella di destinazione esiste, il comando richiede la conferma prima di sovrascrivere.

--no_clobber={true|false} o -n={true|false}

Per non consentire la sovrascrittura della tabella di destinazione, se esiste, imposta il valore su true. Il valore predefinito è false; se la tabella di destinazione esiste, viene sovrascritta.

--restore={true|false}

Questo flag è in fase di ritiro. Per creare una tabella scrivibile da uno snapshot della tabella, utilizza il comando bq cp o il comando bq cp --clone.

--snapshot={true|false}

Per creare uno snapshot della tabella specificata nell'argomento SOURCE_TABLE, imposta su true. La tabella di base può essere una tabella standard, un clone di tabella o un altro snapshot della tabella. Il valore predefinito è false; se non viene specificato né --clone=true né --snapshot=true, la tabella di destinazione è dello stesso tipo della tabella di base. Richiede il flag --no_clobber.

SOURCE_TABLE

La tabella che vuoi copiare.

DESTINATION_TABLE

La tabella in cui vuoi copiare.

Per saperne di più sull'utilizzo del comando cp, consulta quanto segue:

bq extract

Utilizza il comando bq extract per esportare i dati delle tabelle in Cloud Storage.

Trama

bq extract [FLAGS] RESOURCE DESTINATION

Esempi

bq extract --compression=GZIP --destination_format=CSV --field_delimiter=tab \
    --print_header=false myDataset.myTable gs://my-bucket/myFile.csv.gzip
bq extract --destination_format=CSV --field_delimiter='|' myDataset.myTable \
  gs://myBucket/myFile.csv

Flag e argomenti

Il comando bq extract utilizza i seguenti flag e argomenti:

--compression=COMPRESSION_TYPE

Specifica il tipo di compressione da utilizzare per i file esportati. I valori possibili sono i seguenti:

  • GZIP
  • DEFLATE
  • SNAPPY
  • NONE

Il valore predefinito è NONE.

Per informazioni sui formati supportati per ogni tipo di compressione, consulta Formati di esportazione e tipi di compressione.

--destination_format=FORMAT

Specifica il formato dei dati esportati. I valori possibili sono i seguenti:

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • PARQUET

Il valore predefinito è CSV.

--field_delimiter=DELIMITER

Per le esportazioni CSV, specifica il carattere che contrassegna il confine tra le colonne nel file di output. Il delimitatore può essere qualsiasi carattere a singolo byte ISO-8859-1. Puoi utilizzare \t o tab per specificare i delimitatori di tabulazione.

--print_header={true|false}

Per sopprimere la stampa delle righe di intestazione per i formati che hanno intestazioni, imposta su false. Il valore predefinito è true; le righe di intestazione sono incluse.

RESOURCE

La tabella da cui stai esportando i dati.

DESTINATION

La località di archiviazione che riceve i dati esportati.

Per saperne di più sull'utilizzo del comando bq extract, consulta Esportazione dei dati delle tabelle.

bq get-iam-policy

Utilizza il comando bq get-iam-policy per recuperare la policy IAM per una risorsa e stampala in stdout. La risorsa può essere una tabella, una vista o una prenotazione di slot. La policy è in formato JSON.

Trama

bq get-iam-policy [FLAGS] RESOURCE

Esempi

bq get-iam-policy myDataset.myTable
bq get-iam-policy --reservation myReservation

Flag e argomenti

Il comando bq get-iam-policy utilizza i seguenti flag e argomenti:

--table={true|false} o --t={true|false}
Per restituire un errore se RESOURCE non è un identificatore di tabella o vista, imposta il flag --table su true. Il valore predefinito è false. Questo flag è supportato per coerenza con altri comandi.
--reservation={true|false}
Per ottenere la policy IAM di una prenotazione, imposta su true (anteprima). Il valore predefinito è false. Quando viene utilizzato questo flag, RESOURCE viene trattato come un identificatore della prenotazione. La prenotazione può avere prefissi facoltativi per progetto e località: myProject:myLocation.myReservation.
RESOURCE
La tabella o la vista di cui vuoi recuperare la policy.

Per saperne di più sul comando bq get-iam-policy, consulta Controlla l'accesso alle risorse con IAM.

bq head

Utilizza il comando bq head per visualizzare le righe e le colonne specificate di una tabella. Per impostazione predefinita, vengono visualizzate tutte le colonne delle prime 100 righe.

Trama

bq head [FLAGS] [TABLE]

Esempio

bq head --max_rows=10 --start_row=50 --selected_fields=field1,field3 \
  myDataset.myTable

Flag e argomenti

Il comando bq head utilizza i seguenti flag e argomenti:

--job=JOB or -j=JOB
Per leggere i risultati di un job di query, specifica questo flag con un ID job valido.
--max_rows=MAX or -n=MAX
Un numero intero che indica il numero massimo di righe da stampare quando vengono mostrati i dati della tabella. Il valore predefinito è 100.
--selected_fields=COLUMN_NAMES or -c=COLUMN_NAMES
Un elenco separato da virgole che specifica un sottoinsieme di campi (inclusi i campi nidificati e ripetuti) da restituire quando vengono visualizzati i dati della tabella. Se questo flag non viene specificato, vengono restituite tutte le colonne.
--start_row=START_ROW or -s=START_ROW
Un numero intero che specifica il numero di righe da saltare prima di mostrare i dati della tabella. Il valore predefinito è 0; i dati della tabella iniziano dalla prima riga.
--table={true|false} o -t={true|false}
Per restituire un errore se l'argomento del comando non è una tabella o una vista, imposta su true. Il valore predefinito è false. Questo flag è supportato per coerenza con altri comandi.
TABLE
La tabella da cui vuoi recuperare i dati.

Per saperne di più sull'utilizzo del comando bq head, consulta Gestione dei dati delle tabelle.

bq help

Utilizza il comando bq help per visualizzare la documentazione dello strumento a riga di comando bq all'interno dello strumento.

Trama

bq help [COMMAND]

Flag e argomenti

Il comando bq help utilizza i seguenti flag e argomenti:

COMMAND
Specifica un comando specifico dello strumento a riga di comando bq per cui vuoi ricevere assistenza online.

bq insert

Utilizza il comando bq insert per inserire righe di dati formattati in JSON e delimitati da nuove righe in una tabella da un file utilizzando l'inserimento di flussi di dati. I tipi di dati vengono convertiti in modo che corrispondano ai tipi di colonna della tabella di destinazione. Questo comando è destinato solo a scopi di test. Per inserire flussi di dati in BigQuery, utilizza l'API BigQuery Storage Write (gRPC).

Trama

bq insert [FLAGS] TABLE FILE

Esempi

bq insert --ignore_unknown_values --template_suffix=_insert myDataset.myTable /tmp/myData.json
echo '{"a":1, "b":2}' | bq insert myDataset.myTable

Flag e argomenti

Il comando bq insert utilizza i seguenti flag e argomenti:

--ignore_unknown_values={true|false} o -i={true|false}
Se impostato su true, BigQuery ignora le coppie chiave-valore che non corrispondono allo schema della tabella e inserisce la riga con i dati che corrispondono allo schema. Se impostato su false, le righe con dati che non corrispondono allo schema della tabella non vengono inserite. Il valore predefinito è false.
--skip_invalid_rows={true|false} o -s={true|false}
Se impostato su true, BigQuery tenta di inserire tutte le righe valide, anche se sono presenti righe non valide. Se impostato su false, il comando non va a buon fine se sono presenti righe non valide. Il valore predefinito è false.
--template_suffix=SUFFIX or -x=SUFFIX
Se specificato, tratta la tabella di destinazione TABLE come un modello di base e inserisci le righe in una tabella di istanza denominata {destination}{templateSuffix}. BigQuery crea la tabella dell'istanza utilizzando lo schema del modello di base.
TABLE
La tabella in cui vuoi inserire i dati.
FILE
Il file contenente i dati che vuoi inserire.

Per saperne di più sull'utilizzo del comando bq insert, consulta Inserimento di flussi di dati in BigQuery.

bq load

Utilizza il comando bq load per caricare i dati in una tabella.

Trama

bq load [FLAGS] DESTINATION_TABLE SOURCE_DATA [SCHEMA]

Esempio

bq load myDataset.newTable gs://mybucket/info.csv ./info_schema.json

Flag e argomenti

Il comando bq load utilizza i seguenti flag e argomenti:

--allow_jagged_rows={true|false}
Per consentire la mancanza di colonne facoltative finali nei dati CSV, imposta su true.
--preserve_ascii_control_characters={true|false}
Per consentire i caratteri di controllo ASCII incorporati nei dati CSV, imposta su true.
--allow_quoted_newlines={true|false}
Per consentire i caratteri di fine riga con virgolette nei dati CSV, imposta su true.
--autodetect={true|false}
Per abilitare il rilevamento automatico dello schema per i dati CSV e JSON, imposta su true. Il valore predefinito è false. Se --autodetect è false, non viene specificato alcuno schema utilizzando il flag --schema e la tabella di destinazione esiste, viene utilizzato lo schema della tabella di destinazione.
--clustering_fields=COLUMNS
Un elenco separato da virgole di massimo quattro nomi di colonne che specifica i campi da utilizzare per il clustering delle tabelle.
--column_name_character_map=SCOPE
Definisce l'ambito e la gestione dei caratteri nei nomi delle colonne, con l'opzione di attivare i nomi delle colonne flessibili. Richiede l'opzione --autodetect per i file CSV. Per un elenco dei valori possibili, consulta load_option_list.
--destination_kms_key=KEY
Specifica un ID risorsa della chiave Cloud KMS per criptare i dati della tabella di destinazione.
--encoding=ENCODING_TYPE or -E=ENCODING_TYPE
La codifica dei caratteri utilizzata nei dati. Utilizza uno dei seguenti valori:
  • ISO-8859-1 (noto anche come Latin-1)
  • UTF-8
--field_delimiter=DELIMITER or -F=DELIMITER
Specifica il carattere che segna il confine tra le colonne dei dati. Il delimitatore può essere qualsiasi carattere a singolo byte ISO-8859-1. Puoi utilizzare \t o tab per specificare i delimitatori di tabulazione.
--ignore_unknown_values={true|false}
Se impostato su true per i file CSV e JSON, vengono caricate le righe con valori di colonna aggiuntivi che non corrispondono allo schema della tabella, ma le colonne aggiuntive vengono ignorate. Se impostato su true per i file Avro, Parquet e ORC, i campi nello schema del file che non esistono nello schema della tabella vengono ignorati e non vengono caricati.
--json_extension=JSON_TYPE

Specifica il tipo di file JSON da caricare. Si applica solo ai file JSON. I valori possibili sono:

  • GEOJSON: file GeoJSON delimitato da nuova riga

Per utilizzare questo flag, il flag --source_format deve essere impostato su NEWLINE_DELIMITED_JSON.

Per saperne di più, consulta Caricamento di file GeoJSON delimitati da nuova riga.

--max_bad_records=MAX

Un numero intero che specifica il numero massimo di record non validi consentiti prima che l'intero job non vada a buon fine. Il valore predefinito è 0. Vengono restituiti al massimo cinque errori di qualsiasi tipo, indipendentemente dal valore --max_bad_records. Questo flag si applica solo al caricamento di dati CSV, JSON e Fogli Google.

--null_marker=STRING

Una stringa personalizzata facoltativa che rappresenta un valore NULL nei dati CSV.

--projection_fields=PROPERTY_NAMES

Se imposti --source_format su DATASTORE_BACKUP, questo flag indica quali proprietà delle entità caricare da un'esportazione di Datastore. Specifica i nomi delle proprietà in un elenco separato da virgole. I nomi delle proprietà sono sensibili alle maiuscole e devono fare riferimento alle proprietà di primo livello. Puoi utilizzare questo flag anche con le esportazioni di Firestore.

--quote=CHARACTER

Specifica un carattere virgolette per racchiudere i campi nei dati CSV. L'argomento CHARACTER può essere qualsiasi carattere a un byte. Il valore predefinito sono le virgolette doppie ("). Per specificare che non esiste un carattere tra virgolette, utilizza una stringa vuota "".

--replace={true|false}

Per cancellare i dati e lo schema esistenti quando vengono caricati nuovi dati, imposta su true. Viene rimossa anche qualsiasi chiave Cloud KMS, a meno che non specifichi il flag --destination_kms_key. Il valore predefinito è false.

Equivalente al valore WRITE_TRUNCATE per JobConfigurationLoad.writeDisposition.

--schema={SCHEMA_FILE|SCHEMA}

Specifica il percorso di un file di schema JSON locale o un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Se utilizzi un file di schema, non aggiungere un'estensione al nome file.

Ad esempio:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

Se non viene specificato alcuno schema, --autodetect è false e la tabella di destinazione esiste, viene utilizzato lo schema della tabella di destinazione.

--schema_update_option=OPTION

Quando aggiungi dati a una tabella (in un job di caricamento o di query) o quando sovrascrivi una partizione della tabella, specifica come aggiornare lo schema della tabella di destinazione. Usa uno dei seguenti valori:

  • ALLOW_FIELD_ADDITION: consente l'aggiunta di nuovi campi
  • ALLOW_FIELD_RELAXATION: consenti l'allentamento dei campi REQUIRED in NULLABLE

Ripeti questo flag per specificare più opzioni di aggiornamento dello schema.

--skip_leading_rows=NUMBER_OF_ROWS

Un numero intero che specifica il numero di righe da saltare all'inizio del file di origine. Il valore predefinito è 0.

--file_set_spec_type=FILE_SET_SPEC_TYPE

Specifica come interpretare gli URI di origine.

  • FILE_SYSTEM_MATCH: espande gli URI di origine elencando i file dall'archivio di oggetti. Questo è il comportamento predefinito se FileSetSpecType non è impostato.
  • NEW_LINE_DELIMITED_MANIFEST: indica che gli URI forniti sono file manifest delimitati da un ritorno a capo, con un URI per riga. Gli URI con caratteri jolly non sono supportati nei file manifest e tutti i file di dati a cui viene fatto riferimento devono trovarsi nello stesso bucket del manifest.

Ad esempio, se hai un URI di origine "gs://bucket/path/file" e file_set_spec_type è FILE_SYSTEM_MATCH, il file viene utilizzato direttamente come file di dati. Se file_set_spec_type è NEW_LINE_DELIMITED_MANIFEST, ogni riga del file viene interpretata come un URI che punta a un file di dati.

--source_format=FORMAT

Il formato dei dati di origine. Usa uno dei seguenti valori:

  • CSV
  • NEWLINE_DELIMITED_JSON
  • AVRO
  • DATASTORE_BACKUP (utilizza questo valore per Filestore)
  • PARQUET
  • ORC
--time_partitioning_expiration=SECONDS

Un numero intero che specifica (in secondi) quando una partizione basata sul tempo deve essere eliminata. La data/ora di scadenza corrisponde alla data UTC della partizione più il valore intero. Un numero negativo indica che non è prevista alcuna scadenza.

--time_partitioning_field=COLUMN_NAME

Specifica il campo che determina come creare una partizione basata sul tempo. Se il partizionamento basato sul tempo è abilitato senza questo valore, la tabella viene partizionata in base al tempo di caricamento.

--time_partitioning_type=INTERVAL

Abilita il partizionamento basato sul tempo in una tabella e imposta il tipo di partizione. Usa uno dei seguenti valori:

  • DAY
  • HOUR
  • MONTH
  • YEAR

Il tipo di partizione predefinito per il partizionamento basato sul tempo è DAY.

--use_avro_logical_types={true|false}

Se il flag --source_format è impostato su AVRO, imposta questo flag su true per convertire i tipi logici nei tipi corrispondenti (ad esempio TIMESTAMP) anziché utilizzare solo i tipi non elaborati (ad esempio INTEGER).

--decimal_target_types=DECIMAL_TYPE

Determina come convertire un tipo logico Decimal. Equivalente a JobConfigurationLoad.decimalTargetTypes. Ripeti questo flag per specificare più tipi di destinazione.

--parquet_enum_as_string={true|false}

Se il flag --source_format è impostato su PARQUET e vuoi che BigQuery deduca i tipi logici Parquet ENUM come valori STRING, imposta questo flag su true. Il valore predefinito è false.

--parquet_enable_list_inference={true|false}

Se il flag --source_format è impostato su PARQUET, questo flag indica se utilizzare l'inferenza dello schema per i tipi logici LIST di Parquet.

--reference_file_schema_uri=URI

Specifica il percorso di un file di riferimento con lo schema della tabella previsto per la creazione di tabelle esterne. Equivalente a ExternalDataConfiguration.referenceFileSchemaUri. Questo flag è abilitato per i formati Avro, ORC e PARQUET.

DESTINATION_TABLE

La tabella in cui vuoi caricare i dati.

SOURCE_DATA

L'URI Cloud Storage del file che contiene i dati che vuoi caricare.

SCHEMA

Lo schema per la tabella di destinazione.

Per saperne di più sul caricamento dei dati da Cloud Storage utilizzando il comando bq load, consulta quanto segue:

Per saperne di più sul caricamento dei dati da un'origine locale utilizzando il comando bq load, consulta quanto segue:

bq ls

Utilizza il comando bq ls per elencare gli oggetti di una raccolta.

Trama

bq ls [FLAGS] [RESOURCE]

Esempio

bq ls myDataset

Flag e argomenti

Il comando bq ls utilizza i seguenti flag e argomenti:

--all={true|false} o -a={true|false}
Per mostrare tutti i risultati, imposta su true. Mostra i job di tutti gli utenti o di tutti i set di dati, inclusi quelli nascosti. Questo flag non è necessario quando si elencano le configurazioni o le esecuzioni dei trasferimenti. Il valore predefinito è false.
--capacity_commitment={true|false}

Per elencare gli impegni di capacità, imposta true e utilizza il flag --location per specificare la località. Per ulteriori informazioni, consulta Visualizza gli impegni acquistati.

Ad esempio: bq ls --capacity_commitment=true --location='us'

--datasets={true|false} o -d={true|false}

Per elencare i set di dati, imposta su true. Il valore predefinito è false.

--filter="FILTER"

Filtra le risorse elencate in modo che corrispondano all'argomento FILTER.

Per i set di dati, FILTER è costituito da una o più triple separate da spazi nel formato labels.KEY:VALUE. Se viene fornita più di una tripla, il comando restituisce solo i set di dati corrispondenti a tutte le triple (ovvero, il comando utilizza l'operatore logico AND, non OR). Se vuoi specificare più di una tripla, racchiudi il valore FILTER tra virgolette.

Per filtrare in base alle etichette dei set di dati, utilizza le chiavi e i valori che hai applicato ai set di dati.

Ad esempio:

 --filter "labels.department:marketing labels.team:sales"
 

Per le configurazioni di trasferimento, utilizza dataSourceIds come chiave e una delle seguenti origini dati come valore:

Ad esempio:

   --filter labels.dataSourceIds:dcm_dt
   

Per le esecuzioni dei trasferimenti, utilizza states come chiave e uno o più dei seguenti stati di trasferimento come valore:

  • SUCCEEDED
  • FAILED
  • PENDING
  • RUNNING
  • CANCELLED

Ad esempio:

--filter="states:FAILED"

Per i job, utilizza states come chiave e uno o più dei seguenti stati del job come valore:

  • RUNNING
  • PENDING
  • DONE

Ad esempio:

bq ls --jobs --filter="states:RUNNING"

bq ls --jobs --filter="states:RUNNING,PENDING"
--jobs={true|false} o -j={true|false}
Per elencare i job, imposta su true. Il valore predefinito è false. Per impostazione predefinita, il limite è di 100.000 risultati.
--max_creation_time=MAX_CREATION_TIME_MS
Un numero intero che rappresenta un timestamp dell'epoca di Unix in millisecondi. Se specificato con il flag --jobs, questo flag elenca solo i job creati prima del timestamp.
--max_results=MAX_RESULTS or -n=MAX_RESULTS
Un numero intero che indica il numero massimo di risultati. Il valore predefinito è 50 e il valore massimo è 1000. Se hai più di 1000 job, puoi utilizzare il flag page_token per elencare tutti i job utilizzando l'impaginazione.
--min_creation_time=MIN_CREATION_TIME_MS
Un numero intero che rappresenta un timestamp dell'epoca di Unix in millisecondi. Se specificato con il flag --jobs, questo flag elenca solo i job creati dopo il timestamp.
--message_type=messageTypes:MESSAGE_TYPE

Per elencare solo i messaggi di log di esecuzione del trasferimento di un tipo specifico, specifica messageTypes:MESSAGE_TYPE. I valori possibili sono i seguenti:

  • INFO
  • WARNING
  • ERROR
--models={true|false} o -m={true|false}

Per elencare i modelli BigQuery ML, imposta su true. Il valore predefinito è false.

--page_token=TOKEN o -k=TOKEN

Elenca gli elementi a partire dal token di pagina specificato.

--projects={true|false} o -p={true|false}

Per visualizzare tutti i progetti, imposta su true. Il valore predefinito è false.

--reservation={true|false}

Per elencare tutte le prenotazioni per un determinato progetto e una determinata località, imposta su true. Il valore predefinito è false. Utilizza con i flag --project_id e --location.

Ad esempio:

bq ls --reservation=true --project_id=myProject --location=us

--reservation_assignment={true|false}

Per elencare tutte le assegnazioni di prenotazioni per un determinato progetto e una determinata località, imposta su true. Il valore predefinito è false. Utilizza con i flag --project_id e --location.

--routines={true|false}

Per elencare tutte le routine nel set di dati specificato, imposta su true. Il valore predefinito è false. Le routine includono funzioni definite dall'utente permanenti, funzioni di tabella (anteprima) e stored procedure.

--row_access_policies

Se specificato, elenca tutte le policy di accesso a livello di riga di una tabella. Le policy di accesso a livello di riga vengono utilizzate per la sicurezza a livello di riga. Devi fornire il nome della tabella nel formato dataset.table.

--run_attempt=RUN_ATTEMPT

Da utilizzare con il flag --transfer_run. Per elencare tutti i tentativi di esecuzione per l'esecuzione del trasferimento specificata, imposta il valore su RUN_ATTEMPT_UNSPECIFIED. Per elencare solo l'ultimo tentativo di esecuzione, imposta il valore su LATEST. Il valore predefinito è LATEST.

--transfer_config={true|false}

Per elencare le configurazioni di trasferimento nel progetto e nella località specificati, imposta su true. Utilizza con i flag --transfer_location e --project_id. Il valore predefinito è false.

--transfer_location=LOCATION

Elenca le configurazioni di trasferimento nella località specificata. La località di trasferimento viene impostata al momento della creazione del trasferimento.

--transfer_log={true|false}

Da utilizzare con il flag --transfer_run. Per elencare i messaggi di log del trasferimento per l'esecuzione del trasferimento specificata, imposta su true. Il valore predefinito è false.

--transfer_run={true|false}

Elenca le esecuzioni di trasferimento per la configurazione del trasferimento specificata.

Ad esempio:

bq ls --transfer_run=true projects/myProject/locations/us/transferConfigs/12345

RESOURCE

La raccolta di cui vuoi elencare gli oggetti. La risorsa può essere un set di dati, un progetto, una prenotazione o una configurazione di trasferimento.

Per saperne di più sull'utilizzo del comando bq ls, consulta quanto segue:

bq mk

Utilizza il comando bq mk per creare una risorsa BigQuery.

Trama

bq mk TYPE_FLAG [OTHER FLAGS] [ARGS]

Flag e argomenti

Il comando bq mk accetta un flag type che specifica il tipo di risorsa da creare e flag aggiuntivi che dipendono dal tipo di risorsa.

TYPE_FLAG: imposta uno dei seguenti flag su true. La tua selezione specifica il tipo di risorsa da creare.

Il comando bq mk supporta il seguente flag per tutti i tipi di risorse:

--force={true|false} o -f={true|false}
Per ignorare gli errori se esiste già una risorsa con lo stesso nome, imposta su true. Se la risorsa esiste già, il codice di uscita è 0, ma l'impostazione di questo flag su true non fa sì che il comando bq mk sovrascriva la risorsa. Il valore predefinito è false.

Il comando bq mk supporta flag aggiuntivi, a seconda del tipo di risorsa che stai creando, come descritto nelle sezioni seguenti.

bq mk --capacity_commitment

Per acquistare un impegno di capacità, imposta --capacity_commitment su true e utilizza i seguenti flag:

--location=LOCATION
Specifica la località dell'impegno.
--plan=PLAN_TYPE

Specifica il tipo di piano di impegno. Deve essere uno dei seguenti valori:

  • ANNUAL
  • THREE_YEAR

I clienti che utilizzano i prezzi a costo fisso legacy possono anche utilizzare uno dei seguenti valori:

  • FLEX
  • MONTHLY
  • ANNUAL
--renewal_plan=RENEWAL_TYPE

Specifica il tipo di piano di rinnovo. Obbligatorio per i piani di impegno ANNUAL o THREE_YEAR. Deve essere uno dei seguenti:

  • ANNUAL
  • THREE_YEAR
  • NONE

I clienti che utilizzano i prezzi a costo fisso legacy possono anche utilizzare uno dei seguenti valori:

  • FLEX
  • MONTHLY
  • ANNUAL
--project_id=PROJECT_ID

Specifica il progetto che amministra gli slot.

--slots=NUMBER_OF_BASELINE_SLOTS

Specifica il numero di slot di base da acquistare.

--edition=EDITION

La versione associata all'impegno di capacità. Deve essere uno dei seguenti:

  • ENTERPRISE
  • ENTERPRISE_PLUS

Per ulteriori informazioni, consulta Acquista impegni.

bq mk --connection

Crea una connessione. Sono supportati i seguenti flag:

--connection_type=CONNECTION_TYPE
Il tipo di connessione, ad esempio CLOUD_SQL per le connessioni Cloud SQL.
--properties=PROPERTIES

Parametri specifici della connessione in formato JSON. È necessario specificare instanceId, database e type.

Se crei una connessione Spanner e vuoi utilizzare Data Boost, includi le coppie "useParallelism":true e "useDataBoost":true.

--connection_credential=CONNECTION_CREDENTIAL

Le credenziali della connessione in formato JSON. Devi specificare username e password.

--project_id=PROJECT_ID

Specifica l'ID del progetto a cui appartiene la connessione.

--location=LOCATION

Specifica la località in cui verrà archiviata la connessione.

--display_name=DISPLAY_NAME

Specifica un nome descrittivo facoltativo per la connessione.

--description=DESCRIPTION

Specifica una descrizione facoltativa della connessione.

--iam_role_id=ROLE_ID

Per BigQuery Omni su AWS, specifica un ruolo IAM che consente l'accesso alla risorsa.

Utilizza il seguente formato: "arn:aws:iam::AWS_ACCOUNT_ID:role/POLICY_NAME", dove:

  • AWS_ACCOUNT_ID è il numero ID dell'utente AWS IAM della connessione.
  • POLICY_NAME è il nome della policy.

Esempio: "arn:aws:iam::0123456789AB:policy/s3-read-role"

--tenant_id=TENANT_ID

Per BigQuery Omni su Microsoft Azure, specifica l'ID tenant della directory Microsoft Azure che contiene l'account Microsoft Azure Storage.

CONNECTION_ID

Specifica un ID connessione facoltativo per la connessione. Se non viene fornito un ID connessione, viene generato automaticamente un ID univoco. L'ID connessione può contenere lettere, numeri e trattini bassi.

Per saperne di più, consulta Introduzione alle connessioni.

bq mk --dataset

Crea un set di dati. Sono supportati i seguenti flag:

--add_tags=TAGS
Specifica i tag che stai collegando al nuovo set di dati, separati da virgole. Ad esempio 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave con spazio dei nomi e il nome breve del valore.
--default_kms_key=KEY
Specifica l'ID risorsa della chiave Cloud KMS predefinito per criptare i dati della tabella in un set di dati se non viene fornita una chiave esplicita durante la creazione o la query della tabella.
--default_partition_expiration=SECONDS
Un numero intero che specifica la data di scadenza predefinita, in secondi, per tutte le partizioni nelle tabelle partizionate appena create nel set di dati. La data di scadenza di una partizione è impostata sulla data UTC della partizione più il valore intero. Se questa proprietà è impostata, il suo valore sostituisce la scadenza della tabella predefinita a livello di set di dati, se esistente. Se specifichi il flag --time_partitioning_expiration quando crei o aggiorni una tabella partizionata, la scadenza della partizione a livello di tabella ha la precedenza sulla scadenza della partizione predefinita a livello di set di dati.
--default_table_expiration=SECONDS
Un numero intero che specifica la durata predefinita, in secondi, delle tabelle appena create in un set di dati. La data/ora di scadenza è impostata sull'ora UTC corrente più questo valore.
--description=DESCRIPTION
Specifica la descrizione del set di dati.
--external_source=EXTERNAL_SOURCE
Specifica l'origine dati esterna quando crei un set di dati federato.
--label=KEY:VALUE
Specifica un'etichetta per il set di dati. Ripeti questo flag per specificare più etichette.
--location=LOCATION o --data_location=LOCATION
Specifica la località del set di dati. Preferisci il flag --location; il flag --data_location è un flag legacy.
--max_time_travel_hours=HOURS
Specifica la durata in ore della finestra di viaggio nel tempo per il set di dati. Il valore --max_time_travel_hours deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compreso tra 48 (2 giorni) e 168 (7 giorni). 168 ore è il valore predefinito se questo flag non viene specificato.
--storage_billing_model=BILLING_MODEL

Specifica il modello di fatturazione dello spazio di archiviazione per un set di dati. Imposta il valore --storage_billing_model su PHYSICAL per utilizzare i byte fisici durante il calcolo dei costi di archiviazione o su LOGICAL per utilizzare i byte logici. LOGICAL è il valore predefinito.

Quando modifichi il modello di fatturazione di un set di dati, l'applicazione della modifica richiede 24 ore.

Dopo aver modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poterlo modificare di nuovo.

Per saperne di più, consulta Creazione dei set di dati.

bq mk --materialized_view

Crea una vista materializzata. Sono supportati i seguenti flag:

--enable_refresh={true|false}
Per disattivare l'aggiornamento automatico di una vista materializzata, imposta su false. Il valore predefinito quando si crea una vista materializzata è true.
--refresh_interval_ms=MILLISECONDS
Specifica il numero di millisecondi per l'intervallo di aggiornamento di una vista materializzata. Se questo flag non viene specificato, l'intervallo di aggiornamento predefinito per una vista materializzata con l'aggiornamento abilitato è di 1.800.000 millisecondi, ovvero 30 minuti.

Per saperne di più, consulta Creazione e utilizzo di viste materializzate.

bq mk --reservation

Crea una prenotazione con slot dedicati. Sono supportati i seguenti flag:

--target_job_concurrency=CONCURRENCY
Specifica il numero target di query eseguite contemporaneamente. Il valore predefinito è 0, il che significa che la contemporaneità viene calcolata automaticamente in base alle dimensioni della prenotazione. Per saperne di più, consulta Utilizza le code di query.
--ignore_idle_slots={true|false}
Per limitare i job in esecuzione in questa prenotazione in modo che utilizzino solo gli slot allocati alla prenotazione, imposta il valore su true. Il valore predefinito è false; i job in questa prenotazione possono utilizzare slot inattivi di altre prenotazioni o slot non allocati a nessuna prenotazione. Per saperne di più, consulta Slot inattivi.
--location=LOCATION
Specifica la località della prenotazione.
--project_id=PROJECT_ID
Specifica il progetto proprietario della prenotazione.
--slots=NUMBER_OF_BASELINE_SLOTS
Specifica il numero di slot di base da allocare a questa prenotazione.
--edition=EDITION
La versione associata all'impegno di capacità. Deve essere uno dei seguenti:
  • STANDARD
  • ENTERPRISE
  • ENTERPRISE_PLUS
--autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS
Il numero di slot con scalabilità automatica assegnati alla prenotazione. Questo valore è uguale al valore della dimensione massima della prenotazione meno il numero di slot di riferimento.
--max_slots=MAXIMUM_NUMBER_OF_SLOTS
Il numero massimo di slot che verranno utilizzati dalla prenotazione. Deve essere configurato con il flag --scaling_mode (anteprima).
--scaling_mode=SCALING_MODE

La modalità di scalabilità della prenotazione. Deve essere uno dei seguenti:

  • IDLE_SLOTS_ONLY
  • ALL_SLOTS
  • AUTOSCALE_ONLY
  • SCALING_MODE_UNSPECIFIED

Deve essere configurato con il flag --max_slots (anteprima).

Per saperne di più, vedi Crea una prenotazione con slot dedicati.

bq mk --reservation_assignment

Assegna un progetto, una cartella o un'organizzazione a una prenotazione. Sono supportati i seguenti flag:

--assignee_id=ASSIGNEE_ID
Specifica l'ID della cartella, dell'organizzazione o del progetto.
--assignee_type=ASSIGNEE_TYPE
Specifica il tipo di entità da assegnare alla prenotazione. Uno dei seguenti:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--job_type=JOB_TYPE
Specifica il tipo di job da assegnare alla prenotazione. Uno dei seguenti:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
  • BACKGROUND
--location=LOCATION
Specifica la località della prenotazione.
--project_id=PROJECT_ID
Specifica il progetto proprietario della prenotazione.
--reservation_id=RESERVATION_ID
Specifica l'ID della prenotazione.

Per saperne di più, consulta Utilizza le assegnazioni delle prenotazioni.

bq mk --reservation-group

Crea un gruppo di prenotazioni. Sono supportati i seguenti flag:

--location=LOCATION
Specifica la località della prenotazione.
--project_id=PROJECT_ID
Specifica il progetto proprietario della prenotazione.

Per saperne di più, consulta Utilizza i gruppi di prenotazioni.

bq mk --table

Crea una tabella. Sono supportati i seguenti flag:

--add_tags=TAGS
Specifica i tag che stai collegando alla nuova tabella, separati da virgole. Ad esempio 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave con spazio dei nomi e il nome breve del valore.
--clustering_fields=COLUMNS
Un elenco separato da virgole di massimo quattro nomi di colonne che specifica i campi da utilizzare per il clustering delle tabelle. Se specificato con il partizionamento, la tabella viene prima partizionata, quindi ogni partizione viene raggruppata in cluster utilizzando le colonne fornite.
--description=DESCRIPTION
Specifica la descrizione della tabella.
--destination_kms_key=KEY
Specifica un ID risorsa della chiave Cloud KMS per criptare i dati della tabella di destinazione.
--expiration=SECONDS
Specifica la durata della tabella. Se non specifichi il flag --expiration, BigQuery crea la tabella con la durata predefinita della tabella del set di dati oppure la tabella non scade.
--external_table_definition=STRING

Specifica una definizione di tabella per la creazione di una tabella esterna.

Per le tabelle esterne di Cloud Storage e Google Drive:

--external_table_definition={PATH_TO_FILE|DEFINITION}
Il valore può essere un percorso a un file contenente una definizione di tabella (PATH_TO_FILE) o una definizione di tabella incorporata (DEFINITION).
  • Il formato del campo DEFINITION è SCHEMA@FORMAT=URI.
  • Il formato del valore SCHEMA è un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Puoi omettere il valore SCHEMA se il formato dei dati è autodescrittivo (ad esempio Avro) o se utilizzi il rilevamento automatico dello schema.

  • Il valore FORMAT specifica il formato dei dati, che può essere uno dei seguenti:

    • AVRO
    • CSV
    • DATASTORE_BACKUP (utilizza questo valore per Filestore)
    • ICEBERG
    • NEWLINE_DELIMITED_JSON
    • ORC
    • PARQUET

Se specifichi un file di definizione della tabella, non aggiungere un'estensione al nome file.

Ad esempio:

--external_table_definition=/tmp/tabledef
--external_table_definition=Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

Per le tabelle esterne di Bigtable e le tabelle BigLake basate su AWS e Azure:

--external_table_definition=PATH_TO_FILE
Il valore deve essere un percorso a un file contenente una definizione di tabella.

Per le tabelle BigLake basate su Cloud Storage:

--external_table_definition=FORMAT=BUCKET_PATH@REGION.CONNECTION_NAME :

  • Il valore FORMAT specifica il formato dei dati, che può essere uno dei seguenti:

    • AVRO
    • CSV
    • NEWLINE_DELIMITED_JSON
    • ICEBERG
    • ORC
    • PARQUET
  • BUCKET_PATH è il percorso di uno o più file in Cloud Storage che contengono i dati della tabella BigLake. Puoi specificare BUCKET_PATH nei seguenti formati:

    • Per un singolo file: gs://bucket_name/[folder_name/]file_name.
    • Per più file in un singolo bucket: gs://bucket_name/[folder_name/]*.
    • Per più file in più bucket: gs://mybucket1/*,gs://mybucket2/folder5/*.

      Puoi utilizzare i caratteri jolly per limitare i file inclusi nella tabella BigLake. Ad esempio, se il bucket contiene diversi tipi di dati, puoi fare in modo che la tabella utilizzi solo file PARQUET specificando gs://bucket_name/*.parquet. Per saperne di più sull'utilizzo dei caratteri jolly, consulta Caratteri jolly URI.

  • Il valore REGION specifica la regione o multiregione che contengono la connessione.

  • Il valore CONNECTION_NAME specifica il nome della connessione alle risorse cloud da utilizzare con questa tabella esterna. La connessione determina quale account di servizio viene utilizzato per leggere i dati da Cloud Storage.

Per le tabelle di oggetti:

--external_table_definition=BUCKET_PATH@REGION.CONNECTION_NAME :

  • BUCKET_PATH è il percorso del bucket Cloud Storage che contiene gli oggetti rappresentati dalla tabella degli oggetti, nel formato gs://bucket_name/[folder_name/]*.Puoi specificare più bucket fornendo più percorsi, ad esempio gs://mybucket1/*,gs://mybucket2/folder5/*.

    Puoi utilizzare i caratteri jolly per limitare gli oggetti inclusi nella tabella degli oggetti. Ad esempio, se il bucket contiene diversi tipi di dati non strutturati, puoi creare la tabella degli oggetti solo su oggetti PDF specificando gs://bucket_name/*.pdf. Per ulteriori informazioni sull'utilizzo dei caratteri jolly, consulta Caratteri jolly URI.

  • Il valore REGION specifica la regione o multiregione che contengono la connessione.

  • Il valore CONNECTION_NAME specifica il nome della connessione alle risorse cloud da utilizzare con questa tabella esterna. La connessione determina quale account di servizio viene utilizzato per leggere i dati da Cloud Storage.

--file_set_spec_type=FILE_SET_SPEC_TYPE

Specifica come interpretare gli URI di origine.

  • FILE_SYSTEM_MATCH: espande gli URI di origine elencando i file dall'archivio di oggetti. Questo è il comportamento predefinito se FileSetSpecType non è impostato.
  • NEW_LINE_DELIMITED_MANIFEST: indica che gli URI forniti sono file manifest delimitati da un ritorno a capo, con un URI per riga. Gli URI con caratteri jolly non sono supportati nei file manifest e tutti i file di dati a cui viene fatto riferimento devono trovarsi nello stesso bucket del manifest.

Ad esempio, se hai un URI di origine "gs://bucket/path/file" e file_set_spec_type è FILE_SYSTEM_MATCH, il file viene utilizzato direttamente come file di dati. Se file_set_spec_type è NEW_LINE_DELIMITED_MANIFEST, ogni riga del file viene interpretata come un URI che punta a un file di dati.

--reference_file_schema_uri=URI

Specifica il percorso di un file di riferimento con lo schema della tabella previsto per la creazione di tabelle esterne. Equivalente a ExternalDataConfiguration.referenceFileSchemaUri. Questo flag è abilitato per i formati Avro, ORC e PARQUET.

--label=KEY:VALUE

Specifica un'etichetta per la tabella. Ripeti questo flag per specificare più etichette.

--max_staleness=INTERVAL

Specifica se i metadati memorizzati nella cache vengono utilizzati dalle operazioni sulla tabella e quanto devono essere aggiornati affinché l'operazione li utilizzi.

Applicabile alle tabelle BigLake e alle tabelle degli oggetti.

Per disattivare la memorizzazione nella cache dei metadati, specifica 0. Questa è l'impostazione predefinita.

Per attivare la memorizzazione nella cache dei metadati, specifica un valore di intervallo compreso tra 30 minuti e 7 giorni, utilizzando il formato Y-M D H:M:S descritto nella documentazione del tipo di dati INTERVAL. Ad esempio, specifica 0-0 0 4:0:0 per un intervallo di inattività di 4 ore. Con questo valore, le operazioni sulla tabella utilizzano i metadati memorizzati nella cache se sono stati aggiornati nelle ultime 4 ore. Se i metadati memorizzati nella cache sono più vecchi, l'operazione recupera i metadati da Cloud Storage.

--object_metadata=STRING

Imposta il valore di questo flag su SIMPLE durante la creazione di una tabella di oggetti.

Obbligatorio solo quando crei una tabella di oggetti.

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

Specifica le opzioni per una partizione con intervallo di numeri interi, come segue:

  • column_name è la colonna utilizzata per creare le partizioni per intervalli di numeri interi.
  • start è l'inizio del partizionamento per intervalli, incluso.
  • end è la fine del partizionamento per intervalli, esclusiva.
  • interval è la larghezza di ogni intervallo all'interno della partizione.

Ad esempio:

--range_partitioning=customer_id,0,10000,100

--require_partition_filter={true|false}

Per richiedere un filtro di partizionamento per le query sulla tabella fornita, imposta su true. Questo flag si applica solo alle tabelle partizionate. Il valore predefinito è false.

--schema={SCHEMA_FILE|SCHEMA}

Specifica il percorso di un file di schema JSON locale o un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Se utilizzi un file di schema, non aggiungere un'estensione al nome file.

Esempi:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--time_partitioning_expiration=SECONDS

Un numero intero che specifica (in secondi) quando una partizione basata sul tempo deve essere eliminata. La data/ora di scadenza corrisponde alla data UTC della partizione più il valore intero. Un numero negativo indica che non è prevista alcuna scadenza.

--time_partitioning_field=COLUMN_NAME

Specifica il campo utilizzato per determinare come creare una partizione basata sul tempo. Se il partizionamento basato sul tempo è abilitato senza questo valore, la tabella viene partizionata in base al tempo di caricamento.

--time_partitioning_type=INTERVAL

Abilita il partizionamento basato sul tempo in una tabella e imposta il tipo di partizione. Usa uno dei seguenti valori:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--use_avro_logical_types={true|false}

Se la parte FORMAT del flag --external_table_definition è impostata su AVRO, questo flag specifica se convertire i tipi logici nei tipi corrispondenti (ad esempio TIMESTAMP) anziché utilizzare solo i tipi non elaborati (ad esempio INTEGER).

--parquet_enable_list_inference={true|false}

Se la parte FORMAT del flag --external_table_definition è impostata su PARQUET, questo flag specifica se utilizzare l'inferenza dello schema per i tipi logici LIST di Parquet.

--parquet_enum_as_string={true|false}

Se la parte FORMAT del flag --external_table_definition è impostata su PARQUET, questo flag specifica se dedurre i tipi logici Parquet ENUM come valori STRING.

Per saperne di più, consulta Creazione e utilizzo di tabelle.

bq mk --transfer_config

Crea una configurazione del trasferimento. Sono supportati i seguenti flag:

--data_source=DATA_SOURCE
Specifica l'origine dati. Obbligatorio quando crei una configurazione di trasferimento. Utilizza uno dei seguenti valori:
--display_name=DISPLAY_NAME
Specifica il nome visualizzato della configurazione del trasferimento.
--no_auto_scheduling={true|false}
Disattiva la pianificazione automatica delle esecuzioni di trasferimento dei dati per questa configurazione. Il valore predefinito è false.
--params={"PARAMETER":"VALUE"} o -p={"PARAMETER":"VALUE"}
Specifica i parametri per la configurazione del trasferimento in formato JSON. I parametri variano a seconda dell'origine dati.
--refresh_window_days=DAYS
Un numero intero che specifica la finestra di aggiornamento per la configurazione del trasferimento in giorni. Il valore predefinito è 0.
--service_account_name=SERVICE_ACCOUNT
Specifica un account di servizio da utilizzare come credenziale per la configurazione del trasferimento.
--target_dataset=DATASET
Specifica il set di dati di destinazione per la configurazione del trasferimento.
--table_filter=TABLES
Utilizzato solo con l'origine dati google_ads. Il parametro TABLES è un elenco di tabelle separate da virgole da includere nel trasferimento. Per escludere una tabella, aggiungi un trattino (-) come prefisso. Il valore predefinito include tutte le tabelle nel trasferimento.
--destination_kms_key=KEY
Specifica un ID risorsa chiave Cloud KMS per criptare i dati della tabella di destinazione.

Per informazioni sull'utilizzo del comando bq mk con BigQuery Data Transfer Service, consulta quanto segue:

bq mk --transfer_run

Crea un'esecuzione del trasferimento di dati nell'ora o nell'intervallo di tempo specificato utilizzando la configurazione del trasferimento di dati specificata.

Trama
bq mk --transfer_run [--run_time=RUN_TIME | --start_time=START_TIME --end_time=END_TIME] CONFIG

Sono supportati i seguenti flag:

--run_time=RUN_TIME
Un timestamp che specifica l'ora in cui pianificare l'esecuzione del trasferimento di dati.
--start_time=START_TIME
Un timestamp che specifica l'ora di inizio per un intervallo di esecuzioni di trasferimento di dati.
--end_time=END_TIME
Un timestamp che specifica l'ora di fine per un intervallo di esecuzioni di trasferimento di dati.

Il formato dei timestamp è RFC3339 UTC "Zulu".

L'argomento CONFIG specifica una configurazione del trasferimento dei dati preesistente.

Esempi
bq mk --transfer_run \
      --run_time=2021-01-20T17:00:00.00Z \
      projects/p/locations/l/transferConfigs/c
bq mk --transfer_run \
      --start_time=2020-12-19T16:39:57-08:00 \
      --end_time=2020-12-19T20:39:57-08:00 \
      projects/p/locations/l/transferConfigs/c

bq mk --view

Crea una vista. Sono supportati i seguenti flag:

--add_tags=TAGS
Specifica i tag che stai collegando alla nuova visualizzazione, separati da virgole. Ad esempio 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave con spazio dei nomi e il nome breve del valore.
--description=DESCRIPTION
Specifica la descrizione della vista.
--expiration=SECONDS
Specifica la durata della visualizzazione. Se SECONDS è 0, la vista non scade. Se non specifichi il flag --expiration, BigQuery crea la vista con la durata della tabella predefinita del set di dati.
--label=KEY:VALUE
Specifica un'etichetta per la visualizzazione. Ripeti questo flag per specificare più etichette.
--use_legacy_sql={true|false}
Imposta su false per utilizzare una query GoogleSQL per creare una vista. Il valore predefinito è determinato dalle impostazioni di configurazione. Se l'impostazione di configurazione non è specificata, il valore predefinito è true; utilizza l'SQL precedente.
--view_udf_resource=FILE
Specifica l'URI Cloud Storage o il percorso di un file di codice locale che viene caricato e valutato immediatamente come risorsa della funzione definita dall'utente utilizzata dalla query SQL di una vista. Ripeti questo flag per specificare più file.

Per saperne di più, consulta Creazione di visualizzazioni.

bq mkdef

Utilizza il comando bq mkdef per creare una definizione di tabella in formato JSON per i dati archiviati in Cloud Storage o Google Drive.

Trama

bq mkdef [FLAGS] URI [ > FILE ]

Flag e argomenti

Il comando bq mkdef utilizza i seguenti flag e argomenti:

--autodetect={true|false}
Specifica se utilizzare il rilevamento automatico dello schema per i dati CSV e JSON. Il valore predefinito è false.
--connection_id=CONNECTION_ID
L'ID di una risorsa di connessione da utilizzare per l'autenticazione.
--hive_partitioning_mode

Specifica come determinare lo schema di partizionamento quando BigQuery legge i dati. Sono supportate le seguenti modalità:

  • AUTO: deduce automaticamente i nomi e i tipi delle chiavi di partizione.
  • STRINGS: Deduci automaticamente i nomi delle chiavi di partizione. Tutti i tipi vengono trattati come stringhe.
  • CUSTOM: specifica lo schema di partizionamento nel prefisso dell'URI di origine.

Il valore predefinito è AUTO.

--hive_partitioning_source_uri_prefix

Specifica il prefisso comune per gli URI di origine. Il valore del prefisso comune è la parte dell'URI che precede immediatamente la codifica della chiave di partizionamento. Se hai specificato CUSTOM per la modalità, devi anche identificare lo schema di partizionamento.

Ad esempio, considera i file con la seguente struttura:

  • gs://bucket/path_to_table/dt=2019-06-01/country=USA/id=7/file.avro
  • gs://bucket/path_to_table/dt=2019-05-31/country=CA/id=3/file.avro

Se utilizzi le modalità AUTO o STRINGS, i seguenti valori sono accettabili:

  • gs://bucket/path_to_table
  • gs://bucket/path_to_table/

Se utilizzi la modalità CUSTOM, sono accettabili i seguenti valori:

  • gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:INTEGER}
  • gs://bucket/path_to_table/{dt:STRING}/{country:STRING}/{id:INTEGER}
  • gs://bucket/path_to_table/{dt:DATE}/{country:STRING}/{id:STRING}

Per saperne di più sull'utilizzo del comando bq mkdef, consulta Creazione di un file di definizione della tabella per un'origine dati esterna.

--ignore_unknown_values={true|false} o -i={true|false}
Specifica se ignorare i valori di una riga che non sono presenti nello schema. Il valore predefinito è false.
--metadata_cache_mode=STRING

Specifica se la cache dei metadati per la tabella viene aggiornata automaticamente o manualmente.

Imposta su AUTOMATIC per aggiornare la cache dei metadati a un intervallo definito dal sistema, in genere compreso tra 30 e 60 minuti.

Imposta su MANUAL se vuoi aggiornare la cache dei metadati in base a una pianificazione che hai stabilito. In questo caso, puoi chiamare la procedura di sistema BQ.REFRESH_EXTERNAL_METADATA_CACHE per aggiornare la cache.

Devi impostare il flag --metadata_cache_mode se imposti il flag --max_staleness con il comando bq mk.

--parquet_enable_list_inference={true|false}

Se source_format è impostato su PARQUET, questo flag specifica se utilizzare l'inferenza dello schema per i tipi logici LIST di Parquet. Il valore predefinito è false.

--parquet_enum_as_string={true|false}

Se source_format è impostato su PARQUET, questo flag specifica se dedurre i tipi logici ENUM di Parquet come valori STRING. Il valore predefinito è false.

--file_set_spec_type=FILE_SET_SPEC_TYPE

Specifica come interpretare gli URI di origine.

  • FILE_SYSTEM_MATCH: espande gli URI di origine elencando i file dall'archivio di oggetti. Questo è il comportamento predefinito se FileSetSpecType non è impostato.
  • NEW_LINE_DELIMITED_MANIFEST: indica che gli URI forniti sono file manifest delimitati da un ritorno a capo, con un URI per riga. Gli URI con caratteri jolly non sono supportati nei file manifest e tutti i file di dati a cui viene fatto riferimento devono trovarsi nello stesso bucket del manifest.

Ad esempio, se hai un URI di origine "gs://bucket/path/file" e file_set_spec_type è FILE_SYSTEM_MATCH, il file viene utilizzato direttamente come file di dati. Se file_set_spec_type è NEW_LINE_DELIMITED_MANIFEST, ogni riga del file viene interpretata come un URI che punta a un file di dati.

--source_format=FORMAT

Specifica il formato dei dati di origine. Usa uno dei seguenti valori:

  • AVRO
  • CSV
  • DATASTORE_BACKUP (utilizza questo valore per Filestore)
  • GOOGLE_SHEETS
  • NEWLINE_DELIMITED_JSON
  • ORC
  • PARQUET

Il valore predefinito è CSV.

--use_avro_logical_types={true|false}

Se il flag --source_format è impostato su AVRO, questo flag specifica se convertire i tipi logici nei tipi corrispondenti (ad esempio TIMESTAMP) anziché utilizzare solo i tipi non elaborati (ad esempio INTEGER). Il valore predefinito è false.

bq partition

Utilizza il comando bq partition per convertire un gruppo di tabelle con suffissi di unità di tempo, ad esempio tabelle che terminano con YYYYMMDD per il partizionamento delle date, in tabelle partizionate.

Trama

bq partition [FLAGS] SOURCE_TABLE_BASE_NAME PARTITION_TABLE

Flag e argomenti

Il comando bq partition utilizza i seguenti flag e argomenti:

--no_clobber={true|false} o -n={true|false}
Per non consentire la sovrascrittura di una partizione esistente, imposta su true. Il valore predefinito è false; se la partizione esiste, viene sovrascritta.
--time_partitioning_expiration=SECONDS
Un numero intero che specifica (in secondi) quando una partizione basata sul tempo deve essere eliminata. La data/ora di scadenza corrisponde alla data UTC della partizione più il valore intero. Un numero negativo indica che non è prevista alcuna scadenza.
--time_partitioning_type=INTERVAL

Specifica il tipo di partizione. La tabella seguente fornisce i possibili valori per il flag INTERVAL e il formato time-unit-suffix previsto per ciascuno:

INTERVAL Suffisso
HOUR YYYYMMDDHH
DAY YYYYMMDD
MONTH YYYYMM
YEAR YYYY
SOURCE_TABLE_BASE_NAME

Il nome di base del gruppo di tabelle con suffissi di unità di tempo.

PARTITION_TABLE

Il nome della tabella partizionata di destinazione.

Per saperne di più sull'utilizzo del comando bq partition, consulta Conversione di tabelle con partizionamento per data in tabelle partizionate per data di acquisizione.

bq query

Utilizza il comando bq query per creare un job di query che esegue la query SQL specificata.

Trama

bq query [FLAGS] 'QUERY'

Flag e argomenti

Il comando bq query utilizza i seguenti flag e argomenti:

--allow_large_results={true|false}
Per abilitare dimensioni elevate per le tabelle di destinazione per le query SQL precedente, imposta su true. Il valore predefinito è false.
--append_table={true|false}
Per aggiungere dati a una tabella di destinazione, imposta su true. Il valore predefinito è false.
--batch={true|false}
Per eseguire la query in modalità batch, imposta su true. Il valore predefinito è false.
--clustering_fields=COLUMNS
Un elenco separato da virgole di massimo quattro nomi di colonna che specifica i campi da utilizzare per eseguire il clustering della tabella di destinazione in una query. Se specificato con il partizionamento, la tabella viene prima partizionata, quindi ogni partizione viene raggruppata in cluster utilizzando le colonne fornite.
--connection_property=KEY=VALUE

Una coppia chiave-valore che consente di specificare le proprietà a livello di connessione per personalizzare il comportamento delle query. Ripeti questo flag per specificare proprietà aggiuntive.

Le proprietà di connessione supportate sono le seguenti:

  • dataset_project_id: rappresenta il progetto predefinito per i set di dati utilizzati nella query, in modo simile alla variabile di sistema @@dataset_project_id.
  • query_label: associa la query a un'etichetta del job specificata. Se impostata, tutte le query successive in uno script o in una sessione hanno questa etichetta. Per informazioni dettagliate sui requisiti di formattazione delle etichette delle query, consulta il campo labels nella risorsa JobConfiguration.
  • service_account: specifica un account di servizio da utilizzare per eseguire la query. Ad esempio --connection_property=service_account=myserviceaccount@project.iam.gserviceaccount.com.
  • session_id: associa la query a una determinata sessione.
  • time_zone: rappresenta il fuso orario predefinito da utilizzare per eseguire la query.
--continuous={true|false}

Per eseguire una query continua, imposta su true. Il valore predefinito è false.

--destination_kms_key=KEY

Specifica un ID risorsa chiave Cloud KMS per criptare i dati della tabella di destinazione.

--destination_schema={PATH_TO_FILE|SCHEMA}

Il percorso di un file di schema JSON locale o un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE.

Le modifiche allo schema vengono eseguite in un'operazione separata dall'esecuzione delle query. Se scrivi i risultati della query in una tabella specificando il flag --destination_table e la query genera un'eccezione, è possibile che le modifiche allo schema vengano ignorate. In questo caso, controlla lo schema della tabella di destinazione e aggiornalo manualmente, se necessario.

--destination_table=TABLE

Se specificato, i risultati della query vengono salvati in TABLE. Specifica TABLE nel seguente formato: PROJECT:DATASET.TABLE. Se PROJECT non è specificato, viene utilizzato il progetto corrente. Se il flag --destination_table non viene specificato, i risultati della query vengono salvati in una tabella temporanea.

Esempi:

--destination_table myProject:myDataset.myTable
--destination_table myDataset.myTable

--dry_run={true|false}

Se specificata, la query viene convalidata, ma non eseguita.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

Specifica il nome e la definizione della tabella per una query su una tabella esterna. La definizione della tabella può essere un percorso a un file di schema JSON locale o una definizione di tabella in linea. Il formato per fornire la definizione della tabella incorporata è SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI. Il formato del valore SCHEMA è un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Se utilizzi un file di definizione della tabella, non aggiungere un'estensione al nome file.

Ad esempio:

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

Ripeti questo flag per eseguire query su più tabelle.

--flatten_results={true|false}

Per non consentire l'appiattimento dei campi nidificati e ripetuti nei risultati delle query SQL precedente, imposta su false. Il valore predefinito è true.

--label=KEY:VALUE

Specifica un'etichetta per il job di query. Ripeti questo flag per specificare più etichette.

--max_rows=MAX_ROWS o -n=MAX_ROWS

Un numero intero che specifica il numero di righe da restituire nei risultati della query. Il valore predefinito è 100.

--maximum_bytes_billed=MAX_BYTES

Un numero intero che limita i byte fatturati per la query. Se la query supera il limite, non va a buon fine (senza addebiti). Se questo flag non viene specificato, i byte fatturati vengono impostati sul valore predefinito del progetto.

--max_statement_results=VALUE

Un numero intero che specifica il numero massimo di istruzioni dello script visualizzate per i risultati della query. Il valore predefinito è 100.

--min_completion_ratio=RATIO

(Sperimentale) Un numero compreso tra 0 e 1,0 che specifica la frazione minima di dati che deve essere analizzata prima che una query restituisca un risultato. Se il flag non viene specificato, viene utilizzato il valore predefinito del server 1.0.

--parameter={PATH_TO_FILE|PARAMETER}

Un file JSON contenente un elenco di parametri di ricerca o un parametro di query nel formato NAME:TYPE:VALUE. Un nome vuoto crea un parametro posizionale. Se TYPE viene omesso, viene utilizzato il tipo STRING. NULL specifica un valore null. Ripeti questo flag per specificare più parametri.

Ad esempio:

--parameter=/tmp/queryParams
--parameter=Name::Oscar
--parameter=Count:INTEGER:42

--range_partitioning=COLUMN_NAME,START,END,INTERVAL

Da utilizzare con il flag --destination_table. Specifica le opzioni per il partizionamento per intervalli di numeri interi nella tabella di destinazione. Il valore è un elenco separato da virgole nel formato column_name,start,end,interval, dove

  • column_name è la colonna utilizzata per creare le partizioni per intervalli di numeri interi.
  • start è l'inizio del partizionamento per intervalli, incluso.
  • end è la fine del partizionamento per intervalli, esclusiva.
  • interval è la larghezza di ogni intervallo all'interno della partizione.

Ad esempio:

--range_partitioning=customer_id,0,10000,100

--replace={true|false}

Per sovrascrivere la tabella di destinazione con i risultati della query, imposta su true. Tutti i dati e lo schema esistenti vengono cancellati. Viene rimossa anche qualsiasi chiave Cloud KMS, a meno che non specifichi il flag --destination_kms_key. Il valore predefinito è false.

--require_cache={true|false}

Se specificato, esegui la query solo se i risultati possono essere recuperati dalla cache.

--require_partition_filter={true|false}

Se specificato, è necessario un filtro di partizionamento per le query sulla tabella fornita. Questo flag può essere utilizzato solo con una tabella partizionata.

--reservation_id=RESERVATION

Se specificata, la prenotazione in cui viene eseguita la query. Per forzare la query a utilizzare la fatturazione on demand, imposta questo valore su none. Ciò richiede che il progetto o l'organizzazione abbia l'impostazione di configurazione reservation_override_mode impostata su ALLOW_ANY_OVERRIDE.

--rpc={true|false}

Per utilizzare l'API di query in stile RPC anziché il metodo jobs.insert dell'API REST, imposta su true. Il valore predefinito è false.

--schedule="SCHEDULE"

Rende una query una query pianificata ricorrente. È richiesta una pianificazione per la frequenza di esecuzione della query.

Esempi:

--schedule="every 24 hours"
--schedule="every 3 hours"

Per una descrizione della sintassi della pianificazione, consulta Formattazione della pianificazione.

--schema_update_option=OPTION

Quando aggiungi dati a una tabella in un job di caricamento o di query o quando sovrascrivi una partizione della tabella, specifica come aggiornare lo schema della tabella di destinazione. Usa uno dei seguenti valori:

  • ALLOW_FIELD_ADDITION: consente l'aggiunta di nuovi campi.
  • ALLOW_FIELD_RELAXATION: consenti l'allentamento dei campi REQUIRED in NULLABLE.

Ripeti questo flag per specificare più opzioni di aggiornamento dello schema.

--start_row=ROW_NUMBER o -s=ROW_NUMBER

Un numero intero che specifica la prima riga da restituire nel risultato della query. Il valore predefinito è 0.

--target_dataset=DATASET

Se specificato con --schedule, aggiorna il set di dati di destinazione per una query pianificata. La query deve essere DDL o DML.

--time_partitioning_expiration=SECONDS

Da utilizzare con il flag --destination_table. Un numero intero che specifica (in secondi) quando deve essere eliminata una partizione basata sul tempo. La data/ora di scadenza corrisponde alla data UTC della partizione più il valore intero. Un numero negativo indica che non è prevista alcuna scadenza.

--time_partitioning_field=COLUMN_NAME

Da utilizzare con il flag --destination_table. Specifica la colonna di partizionamento per il partizionamento basato sul tempo. Se il partizionamento basato sul tempo è abilitato senza questo valore, la tabella viene partizionata in base al tempo di importazione.

--time_partitioning_type=INTERVAL

Da utilizzare con il flag --destination_table. Specifica il tipo di partizione per la tabella di destinazione. Usa uno dei seguenti valori:

  • DAY
  • HOUR
  • MONTH
  • YEAR
--udf_resource=FILE

Questo flag si applica solo alle query SQL precedente. Specifica l'URI Cloud Storage o il percorso di un file locale contenente una risorsa funzione definita dall'utente'utente da utilizzare con una query SQL precedente. Ripeti questo flag per specificare più file.

--use_cache={true|false}

Per non consentire la memorizzazione nella cache dei risultati delle query, imposta il valore su false. Il valore predefinito è true.

--use_legacy_sql={true|false}

Per eseguire una query GoogleSQL, imposta su false. Il valore predefinito è determinato dalle impostazioni di configurazione. Se l'impostazione di configurazione non è specificata, il valore predefinito è true; il comando utilizza SQL precedente.

--job_timeout_ms={string (Int64Value)}

Specifica il tempo massimo di esecuzione di una query in millisecondi. Se questo limite di tempo viene superato, BigQuery tenta di arrestare il job.

QUERY

La query che vuoi eseguire. Puoi specificare la query utilizzando uno dei seguenti metodi:

  • Specifica una stringa contenente la query.

    Se devi utilizzare valori letterali stringa aggiuntivi all'interno della query, devi seguire le regole di citazione per la shell che stai utilizzando, ad esempio Bash o PowerShell.

    L'esempio seguente mostra un approccio tipico in Bash, che consiste nell'utilizzare le virgolette doppie per indicare i valori letterali stringa nella query e poi racchiudere la query stessa tra virgolette singole:

    'SELECT * FROM mydataset.mytable WHERE column1 = "value";'
    

    Se copi la query da un'altra posizione, devi anche rimuovere eventuali commenti nella query.

  • Passa uno script SQL contenente la query. L'esempio seguente mostra come passare uno script SQL nella shell Bash:

    bq query --use_legacy_sql=false < query.sql
    

Per saperne di più sull'utilizzo del comando bq query, consulta Esegui una query.

bq remove-iam-policy-binding

Utilizza il comando bq remove-iam-policy-binding per recuperare la policy IAM per una risorsa e rimuovere un'associazione dalla policy in un unico passaggio. La risorsa può essere una tabella o una vista.

Questo comando è un'alternativa alla seguente procedura in tre passaggi:

  1. Utilizzando il comando bq get-iam-policy per recuperare il file della policy (in formato JSON).
  2. Modifica del file della policy.
  3. Utilizzando il comando bq set-iam-policy per aggiornare la policy senza l'associazione.

Trama

bq remove-iam-policy-binding FLAGS --member=MEMBER_TYPE:MEMBER --role=ROLE RESOURCE

Flag e argomenti

Il comando bq remove-iam-policy-binding utilizza i seguenti flag e argomenti:

--member=MEMBER_TYPE:MEMBER

Obbligatorio. Utilizza il flag --member per specificare la parte del membro dell'associazione della policy IAM. Il flag --member è obbligatorio insieme al flag --role. Una combinazione di flag --member e --role equivale a un'associazione.

Il valore MEMBER_TYPE specifica il tipo di membro nell'associazione della policy IAM. Usa uno dei seguenti valori:

  • user
  • serviceAccount
  • group
  • domain

Il valore MEMBER specifica l'indirizzo email o il dominio del membro nell'associazione della policy IAM.

--role=ROLE

Obbligatorio. Specifica la parte del ruolo dell'associazione della policy IAM. Il flag --role è obbligatorio insieme al flag --member. Una combinazione di flag --member e --role equivale a un'associazione.

--table={true|false} o -t={true|false}

Facoltativo. Per rimuovere un'associazione dalla policy IAM di una tabella o di una vista, imposta su true. Il valore predefinito è false.

RESOURCE è la tabella o la vista di cui vuoi rimuovere l'associazione della policy.

Per saperne di più, consulta il riferimento alle policy IAM.

bq rm

Utilizza il comando bq rm per eliminare una risorsa BigQuery.

Trama

bq rm [FLAGS] RESOURCE

Flag e argomenti

Il comando bq rm utilizza i seguenti flag e argomenti:

--capacity_commitment={false|true}
Per eliminare un impegno di capacità, impostalo su true, specifica la località dell'impegno che vuoi rimuovere utilizzando il flag --location e sostituisci RESOURCE con l'ID dell'impegno che vuoi rimuovere.
--dataset={true|false} o -d={true|false}
Per eliminare un set di dati, imposta il valore su true. Il valore predefinito è false.
--force={true|false} o -f={true|false}
Per eliminare una risorsa senza richiesta, imposta su true. Quando elimini un set di dati, una tabella, un job, un modello, una routine, una connessione o una configurazione del trasferimento, l'impostazione di questo flag su true ignora anche gli errori Not found se la risorsa non esiste. Il valore predefinito è false.
--job={true|false} o -j={true|false}
Per eliminare un job, imposta il valore su true. Il valore predefinito è false.
--model={true|false} o -m={true|false}
Per eliminare un modello BigQuery ML, imposta su true. Il valore predefinito è false.
--recursive={true|false} o -r{true|false}
Per eliminare un set di dati e tutte le tabelle, i dati delle tabelle o i modelli al suo interno, imposta su true. Il valore predefinito è false.
--reservation={true|false}
Per eliminare una prenotazione, imposta il valore su true. Il valore predefinito è false.
--reservation_assignment={true|false}
Per eliminare un'assegnazione di prenotazione, imposta il valore su true. Il valore predefinito è false.
--routine={true|false}
Per eliminare una routine, imposta il valore su true. Il valore predefinito è false. Una routine può essere una funzione definita dall'utente permanente, una funzione con valore di tabella (anteprima) o una stored procedure.
--table={true|false} o -t={true|false}
Per eliminare una tabella o una vista, imposta il valore su true. Il valore predefinito è false.
--transfer_config={true|false}
Per eliminare una configurazione di trasferimento, imposta il valore su true. Il valore predefinito è false.
RESOURCE
La risorsa che vuoi rimuovere.

Per saperne di più sull'utilizzo del comando bq rm, consulta quanto segue:

bq set-iam-policy

Utilizza il comando bq set-iam-policy per specificare o aggiornare la policy IAM per una risorsa. La risorsa può essere una tabella, una vista o una prenotazione di slot. Dopo aver impostato la policy, la nuova policy viene stampata in stdout. La policy è in formato JSON.

Il campo etag nella policy aggiornata deve corrispondere al valore etag della policy attuale, altrimenti l'aggiornamento non va a buon fine. Questa funzionalità impedisce gli aggiornamenti simultanei.

Puoi ottenere la policy attuale e il valore etag per una risorsa utilizzando il comando bq get-iam-policy.

Trama

bq set-iam-policy [FLAGS] RESOURCE FILE_NAME

Esempi

bq set-iam-policy myDataset.myTable policy.json
bq set-iam-policy --reservation myReservation policy.json

Flag e argomenti

Il comando bq set-iam-policy utilizza i seguenti flag e argomenti.

--table={true|false} o -t={true|false}
Facoltativo. Per impostare la policy IAM di una tabella o di una vista, imposta su true. Il valore predefinito è false.
--reservation={true|false}
Per impostare la policy IAM di una prenotazione, imposta su true (anteprima). Il valore predefinito è false. Quando viene utilizzato questo flag, RESOURCE viene trattato come un identificatore della prenotazione. La prenotazione può avere prefissi facoltativi per progetto e località: myProject:myLocation.myReservation.

RESOURCE è la tabella o la vista di cui vuoi aggiornare la policy.

FILE_NAME è il nome di un file contenente la policy in formato JSON.

Per saperne di più sul comando bq set-iam-policy, consulta Controlla l'accesso alle risorse con IAM.

bq show

Utilizza il comando bq show per visualizzare le informazioni su una risorsa.

Trama

bq show [FLAGS] [RESOURCE]

Flag e argomenti

Il comando bq show utilizza i seguenti flag e argomenti:

--assignee_id=ASSIGNEE
Se utilizzato con il flag --reservation_assignment, specifica l'ID di una cartella, un'organizzazione o un progetto. Utilizza il flag --assignee_type per specificare il tipo di assegnatario da mostrare.
--assignee_type=TYPE
Se utilizzato con il flag --reservation_assignment, specifica il tipo di entità da mostrare. Utilizza uno dei seguenti valori:
  • FOLDER
  • ORGANIZATION
  • PROJECT
--connection={true|false}
Per mostrare le informazioni su una connessione, imposta il criterio su true. Il valore predefinito è false. Per saperne di più, consulta Visualizzazione di una risorsa di connessione.
--dataset={true|false} o -d={true|false}
Per mostrare informazioni su un set di dati, imposta su true. Il valore predefinito è false.
--encryption_service_account={true|false}
Per mostrare il account di servizio di crittografia per un progetto, se esiste, o crearne uno se non esiste, imposta su true. Il valore predefinito è false. Utilizza con il flag --project_id.
--job={true|false} o -j={true|false}
Per mostrare informazioni su un job, imposta su true. Il valore predefinito è false.
--job_type=JOB_TYPE
Se utilizzato con il flag --reservation_assignment, specifica il tipo di prestazione delle assegnazioni di prenotazione che vuoi visualizzare. Utilizza uno dei seguenti valori:
  • QUERY
  • PIPELINE
  • ML_EXTERNAL
--model={true|false} o -m={true|false}
Per visualizzare le informazioni su un modello BigQuery ML, imposta su true. Il valore predefinito è false.
--reservation={true|false}
Per mostrare le informazioni su una prenotazione, imposta il valore su true. Il valore predefinito è false.
--reservation_assignment={true|false}
Se impostato su true, il comando visualizza le assegnazioni di prenotazione per una cartella, un'organizzazione o un progetto specificati. Il comando visualizza le assegnazioni esplicite della risorsa di destinazione, se presenti; in caso contrario, visualizza le assegnazioni ereditate dalle risorse padre. Ad esempio, un progetto potrebbe ereditare le assegnazioni dalla cartella principale. Quando utilizzi questo flag, vengono applicati i flag --job_type, --assignee_type e --assignee_id. Il valore predefinito è false.
--routine={true|false}
Per mostrare informazioni su una routine, imposta su true. Il valore predefinito è false. Una routine può essere una funzione definita dall'utente permanente, una funzione di tabella (anteprima) o una stored procedure.
--schema={true|false}
Per visualizzare solo lo schema della tabella, imposta su true. Il valore predefinito è false.
--transfer_config={true|false}
Per visualizzare le informazioni su una configurazione di trasferimento, imposta su true. Il valore predefinito è false.
--transfer_run={true|false}
Per visualizzare le informazioni su un'esecuzione del trasferimento, imposta su true. Il valore predefinito è false.
--view={true|false}
Per visualizzare le informazioni su una vista, imposta su true. Il valore predefinito è false.
RESOURCE
La risorsa di cui vuoi mostrare le informazioni.

Per saperne di più sull'utilizzo del comando bq show, consulta quanto segue:

bq update

Utilizza il comando bq update per modificare una risorsa.

Trama

bq update [FLAGS] [RESOURCE]

Flag e argomenti

Il comando bq update utilizza i seguenti flag e argomenti:

--add_tags=TAGS
Disponibile solo su set di dati e tabelle. Specifica i tag che stai collegando alla risorsa, separati da virgole. Ad esempio 556741164180/env:prod,myProject/department:sales. Ogni tag deve avere il nome della chiave con spazio dei nomi e il nome breve del valore.
--autoscale_max_slots=NUMBER_OF_AUTOSCALING_SLOTS
il numero di slot con scalabilità automatica assegnati alla prenotazione. Questo valore è uguale al valore della dimensione massima della prenotazione meno il numero di slot di riferimento. Disponibile solo con il flag --reservation e se la prenotazione è stata creata con una versione.
--capacity_commitment={true|false}
Per aggiornare un impegno di capacità, imposta su true. Utilizza questo flag con i flag --merge, --plan, --renewal_plan, --split e --slots.
--clear_all_tags={true|false}
Disponibile solo su set di dati e tabelle. Per cancellare tutti i tag da una risorsa, imposta il valore su true. Il valore predefinito è false.
--clear_label=KEY:VALUE
Rimuove un'etichetta dalla risorsa. Utilizza il formato KEY:VALUE per specificare l'etichetta da rimuovere. Ripeti questo flag per rimuovere più etichette.
--clustering_fields=COLUMNS
Aggiorna la specifica di clustering di una tabella. Il valore COLUMNS è un elenco di nomi di colonne separati da virgole da utilizzare per il clustering. Per rimuovere il clustering, imposta COLUMNS su "" (la stringa vuota). Per saperne di più, consulta Modifica la specifica di clustering.
--target_job_concurrency=CONCURRENCY
Se utilizzato con il flag --reservation, specifica il numero target di query eseguite contemporaneamente. Il valore predefinito è 0, il che significa che la concorrenza viene impostata automaticamente in base alle dimensioni della prenotazione. Per saperne di più, consulta Utilizza le code di query.
--dataset={true|false} o -d={true|false}
Per aggiornare un set di dati, imposta su true. Il valore predefinito è false.
--default_kms_key=KEY
Specifica l'ID risorsa della chiave Cloud KMS predefinita per criptare i dati della tabella in un set di dati. La chiave predefinita viene utilizzata se non viene fornita una chiave esplicita per la creazione di una tabella o una query.
--default_partition_expiration=SECONDS

Un numero intero che specifica la data di scadenza predefinita, in secondi, per tutte le partizioni nelle tabelle partizionate appena create nel set di dati. Questo flag non ha un valore minimo.

La data/ora di scadenza di una partizione è impostata sulla data UTC della partizione più il valore intero. Se questa proprietà è impostata, sostituisce la scadenza della tabella predefinita a livello di set di dati, se esistente. Se specifichi il flag --time_partitioning_expiration quando crei o aggiorni una tabella partizionata, la scadenza della partizione a livello di tabella ha la precedenza sulla scadenza della partizione predefinita a livello di set di dati. Specifica 0 per rimuovere una scadenza esistente.

--default_table_expiration=SECONDS

Un numero intero che aggiorna la durata predefinita, in secondi, delle tabelle appena create in un set di dati. La data/ora di scadenza è impostata sull'ora UTC corrente più questo valore. Specifica 0 per rimuovere la scadenza esistente.

--description=DESCRIPTION

Aggiorna la descrizione di un set di dati, una tabella, uno snapshot di tabella, un modello o una vista.

--destination_reservation_id=RESERVATION_ID

Se utilizzato con il flag --reservation_assignment, sposta un'assegnazione di prenotazione esistente alla prenotazione specificata. Il valore è l'ID della prenotazione di destinazione. Per saperne di più, consulta Sposta un'assegnazione in un'altra prenotazione.

--display_name=DISPLAY_NAME

Aggiorna il nome visualizzato di una configurazione di trasferimento.

--etag=ETAG

Funge da filtro; aggiorna la risorsa solo se ha un ETag che corrisponde alla stringa specificata nell'argomento ETAG.

--expiration SECONDS

Per aggiornare la scadenza della tabella, del modello, dello snapshot della tabella o della visualizzazione, includi questo flag. Sostituisci SECONDS con il numero di secondi dall'ora di aggiornamento alla data di scadenza. Per rimuovere la scadenza di una tabella, di un modello, di uno snapshot della tabella o di una vista, imposta l'argomento SECONDS su 0.

--external_table_definition={TABLE::PATH_TO_FILE|TABLE::DEFINITION}

Aggiorna una tabella esterna con la definizione della tabella specificata. La definizione della tabella può essere un percorso a un file di definizione della tabella JSON locale o una definizione della tabella in linea nel formato SCHEMA@SOURCE_FORMAT=CLOUD_STORAGE_URI. Il valore SCHEMA è un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Se utilizzi un file di definizione della tabella, non aggiungere un'estensione al nome file.

Ad esempio:

--external_table_definition=myTable::/tmp/tabledef
--external_table_definition=myTable::Region:STRING,Quarter:STRING,Total_sales:INTEGER@CSV=gs://mybucket/sales.csv

--ignore_idle_slots={true|false}

Da utilizzare con il flag --reservation. Per limitare i job in esecuzione nella prenotazione specificata in modo che utilizzino solo gli slot allocati a quella prenotazione, imposta il valore su true. Il valore predefinito è false; i job nella prenotazione specificata possono utilizzare slot inattivi di altre prenotazioni o slot non allocati a nessuna prenotazione. Per saperne di più, consulta Slot inattivi.

--max_staleness=INTERVAL

Specifica un valore INTERVAL che determina l'obsolescenza massima consentita quando si esegue una query su una vista materializzata o su una tabella esterna. Il valore predefinito è 0-0 0 0:0:0.

Ad esempio:

  • 1 giorno: 0-0 1 0:0:0
  • 1 ora: 0-0 0 1:0:0

Per utilizzare questo flag, devi specificare una definizione di tabella con il flag --external_table_definition.

--max_time_travel_hours=HOURS

Specifica la durata in ore della finestra di spostamento cronologico per il set di dati. Il valore --max_time_travel_hours deve essere un numero intero espresso in multipli di 24 (48, 72, 96, 120, 144, 168) compreso tra 48 (2 giorni) e 168 (7 giorni).

--merge={true|false}

Per unire due impegni di capacità, imposta --merge su true. Imposta il flag --capacity_commitment su true, specifica la località degli impegni che vuoi unire utilizzando il flag --location e sostituisci RESOURCE con gli ID dei due impegni che vuoi unire, separati da una virgola. Per ulteriori informazioni, consulta Unisci due impegni.

--metadata_cache_mode=METADATA_CACHE_MODE

Abilita la cache dei metadati per una tabella esterna con una connessione. Utilizza uno dei seguenti valori:

  • AUTOMATIC
  • MANUAL

Specifica AUTOMATIC per aggiornare automaticamente i metadati memorizzati nella cache. Specifica MANUAL per interrompere l'aggiornamento automatico. Per utilizzare questo flag, devi specificare una definizione di tabella con il flag --external_table_definition.

--model={true|false} o -m={true|false}

Per aggiornare i metadati di un modello BigQuery ML, imposta su true. Il valore predefinito è false.

--params={"PARAMETER":"VALUE"} or -p={"PARAMETER":"VALUE"}

Aggiorna i parametri per una configurazione del trasferimento. I parametri variano a seconda dell'origine dati. Per saperne di più, consulta Introduzione a BigQuery Data Transfer Service.

--plan=PLAN

Se utilizzato con il flag --capacity_commitment, converte un impegno di capacità nel piano di impegno di durata maggiore specificato. Sostituisci PLAN con una delle seguenti opzioni:

  • ANNUAL
  • THREE_YEAR
--refresh_window_days=DAYS

Un numero intero che specifica una finestra di aggiornamento aggiornata (in giorni) per una configurazione del trasferimento.

--remove_tags=TAG_KEYS

Disponibile solo su set di dati e tabelle. Specifica i tag che stai rimuovendo dalla risorsa, separati da virgole, ad esempio 556741164180/env,myProject/department. Ogni chiave tag deve avere il nome della chiave con spazio dei nomi.

--renewal_plan=PLAN

Se utilizzato con il flag --capacity_commitment, aggiorna il piano di rinnovo per un impegno di capacità annuale. Sostituisci PLAN con una delle seguenti opzioni:

  • ANNUAL
  • THREE_YEAR
  • NONE

I clienti che utilizzano i prezzi a costo fisso legacy possono anche utilizzare uno dei seguenti valori:

  • FLEX
  • MONTHLY
  • ANNUAL
--reservation={true|false}

Specifica se aggiornare una prenotazione. Il valore predefinito è false.

--reservation_assignment={true|false}

Specifica se aggiornare un'assegnazione di prenotazione. Il valore predefinito è false.

--schema={SCHEMA_FILE|SCHEMA}

Specifica il percorso di un file di schema JSON locale o un elenco separato da virgole di definizioni di colonne nel formato FIELD:DATA_TYPE, FIELD:DATA_TYPE. Se utilizzi un file di schema, non aggiungere un'estensione al nome file.

Ad esempio:

--schema=/tmp/tabledef
--schema=Region:STRING,Quarter:STRING,Total_sales:INTEGER

--service_account_name=SERVICE_ACCOUNT

Specifica un account di servizio da utilizzare come credenziale per una configurazione del trasferimento.

--set_label=KEY:VALUE

Specifica un'etichetta da aggiornare. Per aggiornare più etichette, ripeti questo flag.

--slots=NUMBER_OF_BASELINE_SLOTS

Se utilizzato con i flag --capacity_commitment e --split, specifica il numero di slot di base da suddividere da un impegno di capacità esistente in un nuovo impegno. Sostituisci RESOURCE con l'ID dell'impegno da cui vuoi eseguire la suddivisione.

Se utilizzato con il flag --reservation, aggiorna il numero di slot in una prenotazione.

--source=FILE

Il percorso di un file JSON locale contenente un payload utilizzato per aggiornare una risorsa. Ad esempio, puoi utilizzare questo flag per specificare un file JSON che contiene una risorsa set di dati con una proprietà access aggiornata. Il file viene utilizzato per sovrascrivere i controlli di accesso del set di dati. Il file JSON non deve includere un indicatore dell'ordine dei byte (BOM).

--split={true|false}

Se impostato su true e utilizzato con il flag --capacity_commitment, specifica che vuoi suddividere un impegno di capacità esistente. Utilizza il flag --location per specificare la località dell'impegno da cui vuoi eseguire la suddivisione e il flag --slots per specificare il numero di slot da suddividere. Sostituisci RESOURCE con l'ID dell'impegno da cui vuoi eseguire la suddivisione. Per ulteriori informazioni, consulta Suddividi un impegno.

--storage_billing_model=BILLING_MODEL

Specifica il modello di fatturazione dello spazio di archiviazione per un set di dati. Imposta il valore --storage_billing_model su PHYSICAL per utilizzare i byte fisici durante il calcolo dei costi di archiviazione o su LOGICAL per utilizzare i byte logici.

Quando modifichi il modello di fatturazione di un set di dati, l'applicazione della modifica richiede 24 ore.

Dopo aver modificato il modello di fatturazione dello spazio di archiviazione di un set di dati, devi attendere 14 giorni prima di poterlo modificare di nuovo.

--table={true|false} o -t={true|false}

Specifica se aggiornare una tabella. Il valore predefinito è false.

--target_dataset=DATASET

Se specificato, aggiorna il set di dati di destinazione per una configurazione del trasferimento.

--time_partitioning_expiration=SECONDS

Un numero intero che si aggiorna (in secondi) quando una partizione basata sul tempo deve essere eliminata. La data/ora di scadenza corrisponde alla data UTC della partizione più il valore intero. Un numero negativo indica che non è prevista alcuna scadenza.

--time_partitioning_field=COLUMN_NAME

Aggiorna il campo utilizzato per determinare come creare una partizione basata sul tempo. Se il partizionamento basato sul tempo è abilitato senza questo valore, la tabella viene partizionata in base al tempo di caricamento.

--time_partitioning_type=INTERVAL

Specifica il tipo di partizionamento. Usa uno dei seguenti valori:

  • DAY
  • HOUR
  • MONTH
  • YEAR

Non puoi modificare il tipo di partizionamento di una tabella esistente.

--transfer_config={true|false}

Specifica se aggiornare una configurazione di trasferimento. Il valore predefinito è false.

--update_credentials={true|false}

Specifica se aggiornare le credenziali della configurazione del trasferimento. Il valore predefinito è false.

--use_legacy_sql={true|false}

Impostalo su false per aggiornare la query SQL per una vista da SQL precedente a GoogleSQL. Il valore predefinito è determinato dalle impostazioni di configurazione. Se l'impostazione di configurazione non è specificata, il valore predefinito è true; la query utilizza SQL precedente.

--vertex_ai_model_id=VERTEX_AI_MODEL_ID

Se specificato, aggiorna l'ID modello per un modello BigQuery ML registrato in Vertex AI Model Registry.

--view=QUERY

Se specificato, aggiorna la query SQL per una vista.

--view_udf_resource=FILE

Aggiorna l'URI Cloud Storage o il percorso di un file di codice locale che viene caricato e valutato immediatamente come risorsa di funzione definita dall'utente nella query SQL di una vista. Ripeti questo flag per specificare più file.

RESOURCE

La risorsa che vuoi aggiornare.

Per saperne di più sull'utilizzo del comando bq update, consulta quanto segue:

bq version

Utilizza il comando bq version per visualizzare il numero di versione dello strumento a riga di comando bq.

Trama

bq version

bq wait

Utilizza il comando bq wait per attendere un numero di secondi specificato per il completamento di un job. Se non viene specificato un job, il comando attende il completamento del job corrente.

Trama

bq wait [FLAGS] [JOB] [SECONDS]

Esempi

bq wait
bq wait --wait_for_status=RUNNING 12345 100

Flag e argomenti

Il comando bq wait utilizza i seguenti flag e argomenti:

--fail_on_error={true|false}
Per restituire un esito positivo se il job è stato completato durante il tempo di attesa, anche se il job non è riuscito, imposta su false. Il valore predefinito è true; una volta trascorso il tempo di attesa, il comando esce con un errore se il job è ancora in esecuzione o se è stato completato, ma non è riuscito.
--wait_for_status=STATUS

Se specificato, attende uno stato del job specifico prima di uscire. Usa uno dei seguenti valori:

  • PENDING
  • RUNNING
  • DONE

Il valore predefinito è DONE.

JOB

Specifica il job da attendere. Puoi utilizzare il comando bq ls --jobs myProject per trovare un identificatore del job.

SECONDS

Specifica il numero massimo di secondi di attesa fino al completamento del job. Se inserisci 0, il comando esegue il polling per il completamento del job e restituisce immediatamente il risultato. Se non specifichi un valore intero, il comando attende il completamento del job.