Crea e utilizza tabelle
Questo documento descrive come creare e utilizzare tabelle standard (integrate) in BigQuery. Per informazioni sulla creazione di altri tipi di tabelle, consulta quanto segue:
Dopo aver creato una tabella, puoi:
- Controlla l'accesso ai dati delle tabelle.
- Ottenere informazioni sulle tabelle.
- Elenca le tabelle in un set di dati.
- Recupera i metadati della tabella.
Per saperne di più sulla gestione delle tabelle, tra cui l'aggiornamento delle proprietà, la copia e l'eliminazione di una tabella, consulta Gestione delle tabelle.
Prima di iniziare
Concedi i ruoli IAM (Identity and Access Management) che forniscono agli utenti le autorizzazioni necessarie per eseguire ogni attività in questo documento.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare una tabella, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Utente job BigQuery (
roles/bigquery.jobUser) sul progetto se crei una tabella caricando dati o salvando i risultati delle query salvate in una tabella. - BigQuery Data Editor (
roles/bigquery.dataEditor) nel set di dati in cui stai creando la tabella.
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare una tabella. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare una tabella sono necessarie le seguenti autorizzazioni:
-
bigquery.tables.createsul set di dati in cui stai creando la tabella. -
bigquery.tables.getDatasu tutte le tabelle e le viste a cui fa riferimento la query se salvi i risultati della query come tabella. -
bigquery.jobs.createsul progetto se crei la tabella caricando i dati o salvando i risultati della query in una tabella. -
bigquery.tables.updateDatasulla tabella se stai aggiungendo o sovrascrivendo una tabella con i risultati della query.
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Denominazione delle tabelle
Quando crei una tabella in BigQuery, il nome della tabella deve essere univoco per set di dati. Il nome della tabella può:
- Contenere caratteri per un totale di massimo 1024 byte UTF-8.
- Contenere caratteri Unicode nella categoria L (lettera), M (segno), N (numero), Pc (connettore, incluso il trattino basso), Pd (trattino), Zs (spazio). Per saperne di più, consulta Categoria generale.
Di seguito sono riportati alcuni esempi di nomi di tabelle validi:
table 01, ग्राहक, 00_お客様, étudiant-01.
Precisazioni:
- I nomi delle tabelle sono sensibili alle maiuscole per impostazione predefinita.
mytableeMyTablepossono coesistere nello stesso set di dati, a meno che non facciano parte di un set di dati con la sensibilità alle maiuscole disattivata. - Alcuni nomi di tabelle e prefissi dei nomi di tabelle sono riservati. Se ricevi un messaggio di errore che indica che il nome o il prefisso della tabella è riservato, seleziona un nome diverso e riprova.
Se includi più operatori punto (
.) in una sequenza, gli operatori duplicati vengono rimossi implicitamente.Ad esempio:
project_name....dataset_name..table_nameDiventa:
project_name.dataset_name.table_name
Crea tabelle
Puoi creare una tabella in BigQuery nei seguenti modi:
- Manualmente utilizzando la console Cloud de Confiance o il comando
bq mkdello strumento a riga di comando bq. - In modo programmatico chiamando il metodo API
tables.insert. - Utilizzando le librerie client.
- Dai risultati della query.
- Definendo una tabella che fa riferimento a un'origine dati esterna.
- Quando carichi i dati.
- Utilizzando un'istruzione DDL (Data Definition Language)
CREATE TABLE.
Crea una tabella vuota con una definizione di schema
Puoi creare una tabella vuota con una definizione dello schema nei seguenti modi:
- Inserisci lo schema utilizzando la console Cloud de Confiance .
- Fornisci lo schema in linea utilizzando lo strumento a riga di comando bq.
- Invia un file di schema JSON utilizzando lo strumento a riga di comando bq.
- Fornisci lo schema in una risorsa di tabella quando chiami il metodo
tables.insertdelle API.
Per saperne di più sulla specifica di uno schema di tabella, consulta Specifica di uno schema.
Dopo aver creato la tabella, puoi caricare i dati o compilarla scrivendo i risultati delle query.
Per creare una tabella vuota con una definizione di schema:
Console
Nella console Cloud de Confiance , vai alla pagina BigQuery.
- Nel riquadro a sinistra, fai clic su Explorer.
- Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati e seleziona un set di dati.
- Nella sezione Informazioni set di dati, fai clic su Crea tabella.
- Nel riquadro Crea tabella, specifica i seguenti dettagli:
- Nella sezione Origine, seleziona Tabella vuota nell'elenco Crea tabella da.
- Nella sezione Destinazione, specifica i seguenti dettagli:
- In Set di dati, seleziona il set di dati in cui vuoi creare la tabella.
- Nel campo Table (Tabella), inserisci il nome della tabella che vuoi creare.
- Verifica che il campo Tipo di tabella sia impostato su Tabella nativa.
- Nella sezione Schema, inserisci la definizione dello schema.
Puoi inserire le informazioni dello schema manualmente utilizzando uno dei seguenti metodi:
- Opzione 1: fai clic su Modifica come testo e incolla lo schema sotto forma di array JSON. Quando utilizzi un array JSON, generi lo schema utilizzando lo stesso processo di creazione di un file di schema JSON.
Puoi visualizzare lo schema di una tabella esistente in formato JSON inserendo il seguente comando:
bq show --format=prettyjson dataset.table
- Opzione 2: fai clic su Aggiungi campo e inserisci lo schema della tabella. Specifica i valori Nome, Tipo e Modalità di ogni campo.
- Opzione 1: fai clic su Modifica come testo e incolla lo schema sotto forma di array JSON. Quando utilizzi un array JSON, generi lo schema utilizzando lo stesso processo di creazione di un file di schema JSON.
Puoi visualizzare lo schema di una tabella esistente in formato JSON inserendo il seguente comando:
- (Facoltativo) Specifica le Impostazioni di partizionamento e clustering. Per saperne di più, consulta Creazione di tabelle partizionate e Creazione e utilizzo di tabelle in cluster.
- (Facoltativo) Nella sezione Opzioni avanzate, se vuoi utilizzare una chiave di crittografia gestita dal cliente, seleziona l'opzione Utilizza una chiave di crittografia gestita dal cliente (CMEK). Per impostazione predefinita, BigQuery cripta i contenuti inattivi dei clienti utilizzando una Google Cloud-powered encryption key.
- Fai clic su Crea tabella.
SQL
L'esempio seguente crea una tabella denominata newtable che scade il
1° gennaio 2023:
Nella console Cloud de Confiance , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE TABLE mydataset.newtable ( x INT64 OPTIONS (description = 'An optional INTEGER field'), y STRUCT < a ARRAY <STRING> OPTIONS (description = 'A repeated STRING field'), b BOOL > ) OPTIONS ( expiration_timestamp = TIMESTAMP '2023-01-01 00:00:00 UTC', description = 'a table that expires in 2023', labels = [('org_unit', 'development')]);
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
bq
-
Nella console Cloud de Confiance , attiva Cloud Shell.
Nella parte inferiore della console Cloud de Confiance , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Utilizza il comando
bq mkcon il flag--tableo-t. Puoi fornire le informazioni sullo schema della tabella in linea o con un file di schema JSON. Per un elenco completo dei parametri, consulta il riferimentobq mk --table. Alcuni parametri facoltativi includono:--expiration--description--time_partitioning_field--time_partitioning_type--range_partitioning--clustering_fields--destination_kms_key--label
--time_partitioning_field,--time_partitioning_type,--range_partitioning,--clustering_fieldse--destination_kms_keynon sono mostrati qui. Per saperne di più su questi parametri facoltativi, consulta i seguenti link:- Per saperne di più su
--time_partitioning_field,--time_partitioning_typee--range_partitioning, consulta Tabelle partizionate. - Per saperne di più su
--clustering_fields, consulta Tabelle in cluster. - Per saperne di più su
--destination_kms_key, consulta Chiavi di crittografia gestite dal cliente.
Se stai creando una tabella in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato:
project_id:dataset.Per creare una tabella vuota in un set di dati esistente con una definizione dello schema, inserisci quanto segue:
bq mk \ --table \ --expiration=integer \ --description=description \ --label=key_1:value_1 \ --label=key_2:value_2 \ --add_tags=key_3:value_3[,...] \ project_id:dataset.table \ schema
Sostituisci quanto segue:
- integer è la durata predefinita (in secondi) della tabella. Il valore minimo è 3600 secondi (un'ora). La data/ora di scadenza viene valutata in base all'ora UTC corrente più il valore intero. Se imposti la scadenza quando crei una tabella, l'impostazione di scadenza predefinita della tabella del set di dati viene ignorata.
- description è una descrizione della tabella tra virgolette.
- key_1:value_1 e key_2:value_2 sono coppie chiave-valore che specificano le etichette.
- key_3:value_3 sono coppie chiave-valore che specificano i tag. Aggiungi più tag sotto lo stesso flag con virgole tra le coppie chiave:valore.
- project_id è l'ID progetto.
- dataset è un set di dati nel tuo progetto.
- table è il nome della tabella che stai creando.
- schema è una definizione di schema in linea nel formato field:data_type,field:data_type o il percorso del file di schema JSON sulla tua macchina locale.
Quando specifichi lo schema nella riga di comando, non puoi includere un tipo
RECORD(STRUCT), non puoi includere una descrizione della colonna e non puoi specificare la modalità della colonna. Tutte le modalità sono impostate suNULLABLEper impostazione predefinita. Per includere descrizioni, modalità e tipiRECORD, fornisci un file di schema JSON.Esempi:
Inserisci il seguente comando per creare una tabella utilizzando una definizione di schema incorporata. Questo comando crea una tabella denominata
mytableinmydatasetnel tuo progetto predefinito. La scadenza della tabella è impostata su 3600 secondi (1 ora), la descrizione è impostata suThis is my tablee l'etichetta è impostata suorganization:development. Il comando utilizza la scorciatoia-tanziché--table. Lo schema è specificato in linea come:qtr:STRING,sales:FLOAT,year:STRING.bq mk \ -t \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ mydataset.mytable \ qtr:STRING,sales:FLOAT,year:STRING
Inserisci il seguente comando per creare una tabella utilizzando un file di schema JSON. Questo comando crea una tabella denominata
mytableinmydatasetnel progetto predefinito. La scadenza della tabella è impostata su 3600 secondi (1 ora), la descrizione è impostata suThis is my tablee l'etichetta è impostata suorganization:development. Il percorso del file dello schema è/tmp/myschema.json.bq mk \ --table \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ mydataset.mytable \ /tmp/myschema.json
Inserisci il seguente comando per creare una tabella utilizzando un file di schema JSON. Questo comando crea una tabella denominata
mytableinmydatasetinmyotherproject. La scadenza della tabella è impostata su 3600 secondi (1 ora), la descrizione è impostata suThis is my tablee l'etichetta è impostata suorganization:development. Il percorso del file dello schema è/tmp/myschema.json.bq mk \ --table \ --expiration 3600 \ --description "This is my table" \ --label organization:development \ myotherproject:mydataset.mytable \ /tmp/myschema.json
Dopo aver creato la tabella, puoi aggiornare la scadenza, la descrizione e le etichette della tabella. Puoi anche modificare la definizione dello schema.
Terraform
Utilizza la risorsa google_bigquery_table.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Crea una tabella
L'esempio seguente crea una tabella denominata mytable:
Crea una tabella e concedi l'accesso
L'esempio seguente crea una tabella denominata mytable, quindi utilizza la risorsa google_bigquery_table_iam_policy per concedere l'accesso alla tabella. Esegui questo passaggio solo se vuoi concedere l'accesso alla tabella alle entità che non hanno accesso al set di dati in cui si trova la tabella.
Crea una tabella con una chiave di crittografia gestita dal cliente
L'esempio seguente crea una tabella denominata mytable e utilizza anche le risorse google_kms_crypto_key e google_kms_key_ring per specificare una chiave Cloud Key Management Service per la tabella. Devi abilitare l'API Cloud Key Management Service prima di eseguire questo esempio.
Per applicare la configurazione Terraform in un progetto Cloud de Confiance , completa i passaggi descritti nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Cloud de Confiance predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione Terraform deve avere la propria directory (chiamata anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf, ad esempiomain.tf. In questo tutorial, il file è denominatomain.tf.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tfappena creato.Facoltativamente, copia il codice da GitHub. Questa opzione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade:terraform init -upgrade
Applica le modifiche
-
Esamina la configurazione e verifica che le risorse che Terraform creerà o aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo il comando seguente e inserendo
yesal prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!".
- Apri il tuo progetto Cloud de Confiance per visualizzare i risultati. Nella console Cloud de Confiance , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
API
Chiama il metodo tables.insert con una risorsa tabella definita.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Crea una tabella vuota senza una definizione dello schema
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Crea una tabella dal risultato di una query
Per creare una tabella dal risultato di una query, scrivi i risultati in una tabella di destinazione.
Console
Apri la pagina BigQuery nella console Cloud de Confiance .
Nel riquadro a sinistra, fai clic su Spazio di esplorazione:

Se non vedi il riquadro a sinistra, fai clic su Espandi riquadro sinistro per aprirlo.
Nel riquadro Explorer, espandi il progetto, fai clic su Set di dati, quindi seleziona un set di dati.
Nell'editor di query, inserisci una query SQL valida.
Fai clic su Modifica > Impostazioni query.
Seleziona l'opzione Imposta una tabella di destinazione per i risultati della query.
Nella sezione Destinazione, seleziona il Set di dati in cui vuoi creare la tabella, quindi scegli un ID tabella.
Nella sezione Preferenza di scrittura per tabella di destinazione, scegli una delle seguenti opzioni:
- Scrivi se vuota: scrive i risultati della query nella tabella solo se la tabella è vuota.
- Aggiungi alla tabella: aggiunge i risultati della query a una tabella esistente.
- Sovrascrivi tabella: sovrascrive una tabella esistente con lo stesso nome utilizzando i risultati della query.
(Facoltativo) Per Località dei dati, scegli la tua località.
Per aggiornare le impostazioni della query, fai clic su Salva.
Fai clic su Esegui. In questo modo viene creato un job di query che scrive i risultati della query nella tabella specificata.
In alternativa, se dimentichi di specificare una tabella di destinazione prima di eseguire la query, puoi copiare la tabella dei risultati memorizzati nella cache in una tabella permanente facendo clic sul pulsante Salva risultati sopra l'editor.
SQL
L'esempio seguente utilizza l'istruzione CREATE TABLE per creare la tabella trips dai dati della tabella pubblica bikeshare_trips:
Nella console Cloud de Confiance , vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE TABLE mydataset.trips AS ( SELECT bike_id, start_time, duration_minutes FROM bigquery-public-data.austin_bikeshare.bikeshare_trips );
Fai clic su Esegui.
Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.
Per saperne di più, consulta Creazione di una nuova tabella da una tabella esistente.
bq
-
Nella console Cloud de Confiance , attiva Cloud Shell.
Nella parte inferiore della console Cloud de Confiance , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Inserisci il comando
bq querye specifica il flag--destination_tableper creare una tabella permanente in base ai risultati della query. Specifica il flaguse_legacy_sql=falseper utilizzare la sintassi GoogleSQL. Per scrivere i risultati della query in una tabella che non si trova nel progetto predefinito, aggiungi l'ID progetto al nome del set di dati nel seguente formato:project_id:dataset.(Facoltativo) Specifica il flag
--locatione imposta il valore sulla tua località.Per controllare la disposizione di scrittura per una tabella di destinazione esistente, specifica uno dei seguenti flag facoltativi:
--append_table: se la tabella di destinazione esiste, i risultati della query vengono aggiunti alla tabella.--replace: se la tabella di destinazione esiste, viene sovrascritta con i risultati della query.bq --location=location query \ --destination_table project_id:dataset.table \ --use_legacy_sql=false 'query'
Sostituisci quanto segue:
locationè il nome della località utilizzata per elaborare la query. Il flag--locationè facoltativo. Ad esempio, se utilizzi BigQuery nella regione di Tokyo, puoi impostare il valore del flag suasia-northeast1. Puoi impostare un valore predefinito per la località utilizzando il file.bigqueryrc.project_idè l'ID progetto.datasetè il nome del set di dati che contiene la tabella in cui stai scrivendo i risultati della query.tableè il nome della tabella in cui stai scrivendo i risultati della query.queryè una query nella sintassi GoogleSQL.Se non viene specificato alcun flag di disposizione di scrittura, il comportamento predefinito è scrivere i risultati nella tabella solo se è vuota. Se la tabella esiste e non è vuota, viene restituito il seguente errore:
BigQuery error in query operation: Error processing job project_id:bqjob_123abc456789_00000e1234f_1: Already Exists: Table project_id:dataset.table.Esempi:
Inserisci il comando seguente per scrivere i risultati della query in una tabella di destinazione denominata
mytableinmydataset. Il set di dati si trova nel tuo progetto predefinito. Poiché nel comando non è specificato alcun flag di disposizione di scrittura, la tabella deve essere nuova o vuota. In caso contrario, viene restituito un erroreAlready exists. La query recupera i dati dal set di dati pubblico USA Name Data.bq query \ --destination_table mydataset.mytable \ --use_legacy_sql=false \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
Inserisci il seguente comando per utilizzare i risultati della query per sovrascrivere una tabella di destinazione denominata
mytableinmydataset. Il set di dati si trova nel tuo progetto predefinito. Il comando utilizza il flag--replaceper sovrascrivere la tabella di destinazione.bq query \ --destination_table mydataset.mytable \ --replace \ --use_legacy_sql=false \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
Inserisci il seguente comando per aggiungere i risultati della query a una tabella di destinazione denominata
mytableinmydataset. Il set di dati si trova inmy-other-project, non nel tuo progetto predefinito. Il comando utilizza il flag--append_tableper aggiungere i risultati della query alla tabella di destinazione.bq query \ --append_table \ --use_legacy_sql=false \ --destination_table my-other-project:mydataset.mytable \ 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
L'output di ciascuno di questi esempi è simile al seguente. Per motivi di leggibilità, alcuni output sono troncati.
Waiting on bqjob_r123abc456_000001234567_1 ... (2s) Current status: DONE +---------+--------+ | name | number | +---------+--------+ | Robert | 10021 | | John | 9636 | | Robert | 9297 | | ... | +---------+--------+
API
Per salvare i risultati delle query in una tabella permanente, chiama il metodo jobs.insert, configura un job query e includi un valore per la proprietà destinationTable. Per controllare la disposizione di scrittura per una tabella di destinazione esistente, configura la proprietà writeDisposition.
Per controllare la località di elaborazione per il job di query, specifica la proprietà location nella sezione jobReference della risorsa job.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Per salvare i risultati della query in una tabella permanente, imposta la tabella di destinazione sul TableId desiderato in una QueryJobConfiguration.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Crea una tabella che fa riferimento a un'origine dati esterna
Un'origine dati esterna è un'origine dati in cui puoi eseguire query direttamente da BigQuery, anche se i dati non vengono archiviati in BigQuery. Ad esempio, potresti avere dati in un database Cloud de Confiance by S3NS diverso, in file in Cloud Storage o in un prodotto cloud diverso che vorresti analizzare in BigQuery, ma non avere ancora la possibilità di eseguire una migrazione.
Per saperne di più, consulta Introduzione alle origini dati esterne.
Crea una tabella quando carichi i dati
Quando carichi i dati in BigQuery, puoi caricarli in una nuova tabella o partizione, puoi aggiungerli a una tabella o partizione esistente oppure puoi sovrascrivere una tabella o partizione. Non è necessario creare una tabella vuota prima di caricarvi i dati. Puoi creare la nuova tabella e caricare i dati contemporaneamente.
Quando carichi i dati in BigQuery, puoi fornire lo schema della tabella o della partizione oppure, per i formati dei dati supportati, puoi utilizzare il rilevamento automatico dello schema.
Per saperne di più sul caricamento dei dati, consulta Introduzione al caricamento dei dati in BigQuery.
Crea una tabella multimodale
Puoi creare una tabella con una o più colonne ObjectRef per archiviare i metadati relativi ai dati non strutturati correlati agli altri dati strutturati nella tabella. Ad esempio, in una tabella dei prodotti, puoi creare una colonna ObjectRef per archiviare le informazioni sulle immagini dei prodotti insieme agli altri dati di prodotto. I dati non strutturati vengono archiviati in Cloud Storage e resi disponibili in BigQuery utilizzando una tabella di oggetti.
Per scoprire come creare una tabella multimodale, consulta Analizza i dati multimodali con SQL e BigQuery DataFrames.
Controlla l'accesso alle tabelle
Per configurare l'accesso a tabelle e viste, puoi concedere un ruolo IAM a un'entità ai seguenti livelli, elencati in ordine di intervallo di risorse consentite (dalla più grande alla più piccola):
- Un livello elevato nella gerarchia delle risorseCloud de Confiance by S3NS , ad esempio a livello di progetto, cartella o organizzazione
- Il livello del set di dati
- Livello di tabella o vista
Puoi anche limitare l'accesso ai dati all'interno delle tabelle utilizzando i seguenti metodi:
L'accesso a qualsiasi risorsa protetta da IAM è cumulativo. Ad esempio, se un'entità non ha accesso a un livello elevato, come un progetto, puoi concederle l'accesso a livello di set di dati, in modo che possa accedere alle tabelle e alle viste del set di dati. Analogamente, se l'entità non dispone dell'accesso a livello elevato o di set di dati, puoi concederle l'accesso a livello di tabella o vista.
La concessione di ruoli IAM a un livello superiore nella gerarchia delle risorseCloud de Confiance by S3NS, ad esempio a livello di progetto, cartella o organizzazione, consente all'entità di accedere a un ampio insieme di risorse. Ad esempio, la concessione di un ruolo a un'entità a livello di progetto assegna a quell'entità le autorizzazioni che si applicano a tutti i set di dati nel progetto.
La concessione di un ruolo a livello di set di dati specifica le operazioni che un'entità può eseguire su tabelle e viste in quel set di dati specifico, anche se l'entità non ha accesso a un livello superiore. Per informazioni sulla configurazione dei controlli di accesso a livello di set di dati, consulta Controllo dell'accesso ai set di dati.
La concessione di un ruolo a livello di tabella o vista specifica le operazioni che un'entità può eseguire su tabelle e viste specifiche, anche se l'entità non ha accesso a un livello superiore. Per informazioni sulla configurazione dei controlli degli accessi a livello di tabella, consulta Controllo dell'accesso a tabelle e viste.
Puoi anche creare ruoli personalizzati IAM. Se crei un ruolo personalizzato, le autorizzazioni che concedi dipendono dalle operazioni specifiche che vuoi che l'entità sia in grado di eseguire.
Non puoi impostare un'autorizzazione "Nega" su nessuna risorsa protetta da IAM.
Per saperne di più su ruoli e autorizzazioni, consulta Informazioni sui ruoli nella documentazione di IAM e Ruoli e autorizzazioni IAM di BigQuery.
Ottieni informazioni sulle tabelle
Puoi ottenere informazioni o metadati sulle tabelle nei seguenti modi:
- Utilizzando la console Cloud de Confiance .
- Utilizzo del comando
bq showdello strumento a riga di comando bq. - Chiamata del metodo API
tables.get. - Utilizzo delle librerie client.
- Esecuzione di query sulla vista
INFORMATION_SCHEMA.VIEWS.
Autorizzazioni obbligatorie
Come minimo, per ottenere informazioni sulle tabelle, devi disporre delle autorizzazioni bigquery.tables.get. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.tables.get:
bigquery.metadataViewerbigquery.dataViewerbigquery.dataOwnerbigquery.dataEditorbigquery.admin
Inoltre, se un utente dispone delle autorizzazioni bigquery.datasets.create, quando crea un set di dati, gli viene concesso l'accesso bigquery.dataOwner.
L'accesso bigquery.dataOwner consente all'utente di recuperare i metadati della tabella.
Per saperne di più su ruoli e autorizzazioni IAM in BigQuery, consulta Controllo dell'accesso.
Ottieni informazioni sulla tabella
Per ottenere informazioni sulle tabelle:
Console
Nel pannello di navigazione, nella sezione Risorse, espandi il progetto, quindi seleziona un set di dati.
Fai clic sul nome del set di dati per espanderlo. Vengono visualizzate le tabelle e le viste nel set di dati.
Fai clic sul nome della tabella.
Nel riquadro Dettagli, fai clic su Dettagli per visualizzare la descrizione e le informazioni della tabella.
Se vuoi, passa alla scheda Schema per visualizzare la definizione dello schema della tabella.
bq
-
Nella console Cloud de Confiance , attiva Cloud Shell.
Nella parte inferiore della console Cloud de Confiance , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Esegui il comando
bq showper visualizzare tutte le informazioni sulla tabella. Utilizza il flag--schemaper visualizzare solo le informazioni sullo schema della tabella. Il flag--formatpuò essere utilizzato per controllare l'output.Se stai recuperando informazioni su una tabella in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato:
project_id:dataset.bq show \ --schema \ --format=prettyjson \ project_id:dataset.table
Dove:
- project_id è l'ID progetto.
- dataset è il nome del set di dati.
- table è il nome della tabella.
Esempi:
Inserisci il seguente comando per visualizzare tutte le informazioni su
mytableinmydataset.mydatasetsi trova nel tuo progetto predefinito.bq show --format=prettyjson mydataset.mytable
Inserisci il seguente comando per visualizzare tutte le informazioni su
mytableinmydataset.mydatasetsi trova inmyotherproject, non nel progetto predefinito.bq show --format=prettyjson myotherproject:mydataset.mytable
Inserisci il seguente comando per visualizzare solo le informazioni sullo schema di
mytableinmydataset.mydatasetsi trova inmyotherproject, non nel tuo progetto predefinito.bq show --schema --format=prettyjson myotherproject:mydataset.mytable
API
Chiama il metodo tables.get e fornisci i parametri pertinenti.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Ottieni informazioni sulla tabella utilizzando INFORMATION_SCHEMA
INFORMATION_SCHEMA è una serie di visualizzazioni che forniscono l'accesso ai metadati relativi a set di dati, routine, tabelle, visualizzazioni, job, prenotazioni e dati in streaming.
Puoi eseguire query sulle seguenti viste per ottenere informazioni sulla tabella:
- Utilizza le viste
INFORMATION_SCHEMA.TABLESeINFORMATION_SCHEMA.TABLE_OPTIONSper recuperare i metadati relativi a tabelle e viste in un progetto. - Utilizza le viste
INFORMATION_SCHEMA.COLUMNSeINFORMATION_SCHEMA.COLUMN_FIELD_PATHSper recuperare i metadati relativi alle colonne (campi) di una tabella. - Utilizza le viste
INFORMATION_SCHEMA.TABLE_STORAGEper recuperare i metadati sull'utilizzo dello spazio di archiviazione attuale e storico da parte di una tabella.
Anche le viste TABLES e TABLE_OPTIONS contengono informazioni di alto livello sulle viste. Per informazioni dettagliate, esegui una query sulla vista INFORMATION_SCHEMA.VIEWS.
TABLES visualizzazione
Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLES, i risultati della query contengono una riga per ogni tabella o vista di un set di dati. Per informazioni dettagliate sulle visualizzazioni, esegui una query sulla visualizzazione INFORMATION_SCHEMA.VIEWS.
La vista INFORMATION_SCHEMA.TABLES ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
table_catalog |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
table_schema |
STRING |
Il nome del set di dati che contiene la tabella o la vista. Chiamato anche datasetId. |
table_name |
STRING |
Il nome della tabella o della vista. Chiamato anche tableId. |
table_type |
STRING |
Il tipo di tabella; uno dei seguenti:
|
managed_table_type |
STRING |
Questa colonna è in anteprima. Il tipo di tabella gestita; uno dei seguenti:
|
is_insertable_into |
STRING |
YES o NO a seconda che la tabella supporti o meno le istruzioni DML INSERT |
is_fine_grained_mutations_enabled |
STRING |
YES o NO a seconda che le mutazioni DML granulari siano abilitate o meno nella tabella
|
is_typed |
STRING |
Il valore è sempre NO |
is_change_history_enabled |
STRING |
YES o NO a seconda che la cronologia delle modifiche sia attivata o meno |
creation_time |
TIMESTAMP |
L'ora di creazione della tabella |
base_table_catalog |
STRING |
Per i cloni di tabella
e gli snapshot di tabella,
il progetto della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
|
base_table_schema |
STRING |
Per i cloni di tabella
e gli snapshot di tabella,
il set di dati della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT. |
base_table_name |
STRING |
Per i cloni di tabella
e gli snapshot di tabella,
il nome della tabella di base. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT. |
snapshot_time_ms |
TIMESTAMP |
Per i cloni di tabella
e gli snapshot di tabella,
l'ora in cui è stata eseguita l'operazione di clonazione
o snapshot
sulla tabella di base per creare questa tabella. Se è stato utilizzato il tempo di viaggio, questo campo contiene il timestamp del tempo di viaggio. In caso contrario, il campo snapshot_time_ms è uguale al campo creation_time. Applicabile solo alle tabelle con table_type impostato su CLONE o SNAPSHOT.
|
replica_source_catalog |
STRING |
Per le repliche delle viste materializzate, il progetto della vista materializzata di base. |
replica_source_schema |
STRING |
Per le repliche delle viste materializzate, il set di dati della vista materializzata di base. |
replica_source_name |
STRING |
Per le repliche delle viste materializzate, il nome della vista materializzata di base. |
replication_status |
STRING |
Per le repliche delle viste materializzate, lo stato della replica dalla vista materializzata di base alla replica della vista materializzata; uno dei seguenti:
|
replication_error |
STRING |
Se replication_status indica un problema di replica per una
replica della vista materializzata,
replication_error fornisce ulteriori dettagli sul problema. |
ddl |
STRING |
L'istruzione DDL che può essere utilizzata per ricreare la tabella, ad esempio CREATE TABLE o CREATE VIEW |
default_collation_name |
STRING |
Il nome della specifica di confronto predefinita, se esiste; altrimenti, NULL.
|
sync_status |
JSON |
Lo stato della sincronizzazione tra le repliche primarie e secondarie per i set di dati di replica tra regioni e disaster recovery. Restituisce NULL se la replica è una replica principale o se il set di dati non utilizza la replica. |
upsert_stream_apply_watermark |
TIMESTAMP |
Per le tabelle che utilizzano Change Data Capture (CDC), l'ora in cui sono state applicate le ultime modifiche alle righe. Per saperne di più, consulta Monitora l'avanzamento dell'operazione di upsert della tabella. |
Esempi
Esempio 1:
L'esempio seguente recupera i metadati della tabella per tutte le tabelle nel set di dati denominato mydataset. I metadati restituiti riguardano tutti i tipi di tabelle in mydataset nel progetto predefinito.
mydataset contiene le seguenti tabelle:
mytable1: una tabella BigQuery standardmyview1: una vista BigQuery
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.
SELECT table_catalog, table_schema, table_name, table_type, is_insertable_into, creation_time, ddl FROM mydataset.INFORMATION_SCHEMA.TABLES;
Il risultato è simile al seguente. Per motivi di leggibilità, alcune colonne sono escluse dal risultato.
+----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | table_catalog | table_schema | table_name | table_type | is_insertable_into | creation_time | ddl | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+ | myproject | mydataset | mytable1 | BASE TABLE | YES | 2018-10-29 20:34:44 | CREATE TABLE `myproject.mydataset.mytable1` | | | | | | | | ( | | | | | | | | id INT64 | | | | | | | | ); | | myproject | mydataset | myview1 | VIEW | NO | 2018-12-29 00:19:20 | CREATE VIEW `myproject.mydataset.myview1` | | | | | | | | AS SELECT 100 as id; | +----------------+---------------+----------------+------------+--------------------+---------------------+---------------------------------------------+
Esempio 2:
L'esempio seguente recupera i metadati della tabella per tutte le tabelle di tipo CLONE o SNAPSHOT dalla vista INFORMATION_SCHEMA.TABLES. I metadati restituiti riguardano le tabelle in mydataset nel progetto predefinito.
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLES.
SELECT table_name, table_type, base_table_catalog, base_table_schema, base_table_name, snapshot_time_ms FROM mydataset.INFORMATION_SCHEMA.TABLES WHERE table_type = 'CLONE' OR table_type = 'SNAPSHOT';
Il risultato è simile al seguente. Per motivi di leggibilità, alcune colonne sono escluse dal risultato.
+--------------+------------+--------------------+-------------------+-----------------+---------------------+ | table_name | table_type | base_table_catalog | base_table_schema | base_table_name | snapshot_time_ms | +--------------+------------+--------------------+-------------------+-----------------+---------------------+ | items_clone | CLONE | myproject | mydataset | items | 2018-10-31 22:40:05 | | orders_bk | SNAPSHOT | myproject | mydataset | orders | 2018-11-01 08:22:39 | +--------------+------------+--------------------+-------------------+-----------------+---------------------+
Esempio 3:
L'esempio seguente recupera le colonne table_name e ddl dalla vista INFORMATION_SCHEMA.TABLES per la tabella population_by_zip_2010 nel set di dati census_bureau_usa. Questo set di dati fa parte del programma per i set di dati pubblici di BigQuery.
Poiché la tabella su cui stai eseguendo la query si trova in un altro progetto, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view.
In questo esempio, il valore è
`bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.
SELECT table_name, ddl FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES WHERE table_name = 'population_by_zip_2010';
Il risultato è simile al seguente:
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| table_name | ddl |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| population_by_zip_2010 | CREATE TABLE `bigquery-public-data.census_bureau_usa.population_by_zip_2010` |
| | ( |
| | geo_id STRING OPTIONS(description="Geo code"), |
| | zipcode STRING NOT NULL OPTIONS(description="Five digit ZIP Code Tabulation Area Census Code"), |
| | population INT64 OPTIONS(description="The total count of the population for this segment."), |
| | minimum_age INT64 OPTIONS(description="The minimum age in the age range. If null, this indicates the row as a total for male, female, or overall population."), |
| | maximum_age INT64 OPTIONS(description="The maximum age in the age range. If null, this indicates the row as having no maximum (such as 85 and over) or the row is a total of the male, female, or overall population."), |
| | gender STRING OPTIONS(description="male or female. If empty, the row is a total population summary.") |
| | ) |
| | OPTIONS( |
| | labels=[("freebqcovid", "")] |
| | ); |
+------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
TABLE_OPTIONS visualizzazione
Quando esegui una query sulla vista INFORMATION_SCHEMA.TABLE_OPTIONS, i risultati della query contengono una riga per ogni opzione, per ogni tabella o vista di un set di dati. Per informazioni dettagliate sulle viste, esegui invece una query sulla vista INFORMATION_SCHEMA.VIEWS.
La vista INFORMATION_SCHEMA.TABLE_OPTIONS ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
table_catalog |
STRING |
L'ID progetto del progetto che contiene il set di dati |
table_schema |
STRING |
Il nome del set di dati che contiene la tabella o la vista, noto anche come datasetId |
table_name |
STRING |
Il nome della tabella o della vista, noto anche come tableId |
option_name |
STRING |
Uno dei valori del nome nella tabella delle opzioni |
option_type |
STRING |
Uno dei valori del tipo di dati nella tabella delle opzioni |
option_value |
STRING |
Una delle opzioni di valore nella tabella delle opzioni |
Tabella delle opzioni
|
|
|
|---|---|---|
|
|
Una descrizione della tabella |
|
|
Se l'aggiornamento automatico è abilitato per una vista materializzata |
|
|
La data e l'ora di scadenza di questa tabella |
|
|
Il nome descrittivo della tabella |
|
|
Il nome della chiave Cloud KMS utilizzata per criptare la tabella |
|
|
Un array di STRUCT che rappresentano le etichette nella tabella |
|
|
La staleness massima della tabella configurata per gli upsert di Change Data Capture (CDC) di BigQuery |
|
|
La durata predefinita, in giorni, di tutte le partizioni in una tabella partizionata |
|
|
La frequenza con cui viene aggiornata una vista materializzata |
|
|
Se le query sulla tabella richiedono un filtro di partizionamento |
|
|
Tag associati a una tabella in una sintassi <key, value> con spazio dei nomi. Per saperne di più, consulta Tag e accesso condizionale. |
Per le tabelle esterne sono possibili le seguenti opzioni:
| Opzioni | |
|---|---|
allow_jagged_rows |
Se Si applica ai dati CSV. |
allow_quoted_newlines |
Se Si applica ai dati CSV. |
bigtable_options |
Obbligatorio solo quando si crea una tabella esterna Bigtable. Specifica lo schema della tabella esterna Bigtable in formato JSON. Per un elenco delle opzioni di definizione delle tabelle Bigtable, consulta |
column_name_character_map |
Definisce l'ambito dei caratteri supportati per i nomi colonna e la modalità di gestione dei caratteri non supportati. L'impostazione predefinita è I valori supportati includono:
Si applica ai dati CSV e Parquet. |
compression |
Il tipo di compressione dell'origine dati. I valori supportati includono:
Si applica ai dati CSV e JSON. |
decimal_target_types |
Determina come convertire un tipo Esempio: |
description |
Una descrizione di questa tabella. |
enable_list_inference |
Se Si applica ai dati Parquet. |
enable_logical_types |
Se Si applica ai dati Avro. |
encoding |
La codifica dei caratteri dei dati. I valori supportati includono:
Si applica ai dati CSV. |
enum_as_string |
Se Si applica ai dati Parquet. |
expiration_timestamp |
L'ora di scadenza della tabella. Se non specificata, la tabella non scade. Esempio: |
field_delimiter |
Il separatore per i campi in un file CSV. Si applica ai dati CSV. |
format |
Il formato dei dati esterni.
I valori supportati per
I valori supportati per
Il valore |
hive_partition_uri_prefix |
Un prefisso comune per tutti gli URI di origine prima dell'inizio della codifica della chiave di partizione. Si applica solo alle tabelle esterne partizionate con Hive. Si applica ai dati Avro, CSV, JSON, Parquet e ORC. Esempio: |
file_set_spec_type |
Specifica come interpretare gli URI di origine per i job di caricamento e le tabelle esterne. I valori supportati includono:
Ad esempio, se hai un URI di origine |
ignore_unknown_values |
Se Si applica ai dati CSV e JSON. |
json_extension |
Per i dati JSON, indica un formato di interscambio JSON specifico. Se non specificato, BigQuery legge i dati come record JSON generici. Valori supportati: |
max_bad_records |
Il numero massimo di record non validi da ignorare durante la lettura dei dati. Si applica a: dati CSV, JSON e Fogli Google. |
max_staleness |
Applicabile alle tabelle BigLake e alle tabelle degli oggetti. Specifica se i metadati memorizzati nella cache vengono utilizzati dalle operazioni sulla tabella e quanto devono essere aggiornati i metadati memorizzati nella cache affinché l'operazione li utilizzi. Per disattivare la memorizzazione nella cache dei metadati, specifica 0. Questa è l'impostazione predefinita. Per abilitare la memorizzazione nella cache dei metadati, specifica un valore valore letterale dell'intervallo compreso tra 30 minuti e 7 giorni. Ad esempio, specifica
|
null_marker |
La stringa che rappresenta i valori Si applica ai dati CSV. |
null_markers |
L'elenco di stringhe che rappresentano i valori Questa opzione non può essere utilizzata con l'opzione Si applica ai dati CSV. |
object_metadata |
Obbligatorio solo quando crei una tabella di oggetti. Imposta il valore di questa opzione su |
preserve_ascii_control_characters |
Se Si applica ai dati CSV. |
projection_fields |
Un elenco di proprietà delle entità da caricare. Si applica ai dati di Datastore. |
quote |
La stringa utilizzata per citare le sezioni di dati in un file CSV. Se i dati contengono caratteri di nuova riga tra virgolette, imposta anche la proprietà Si applica ai dati CSV. |
reference_file_schema_uri |
File di riferimento fornito dall'utente con lo schema della tabella. Si applica ai dati Parquet/ORC/AVRO. Esempio: |
require_hive_partition_filter |
Se Si applica ai dati Avro, CSV, JSON, Parquet e ORC. |
sheet_range |
Intervallo di un foglio di lavoro di Fogli Google da cui eseguire la query. Si applica ai dati di Fogli Google. Esempio: |
skip_leading_rows |
Il numero di righe nella parte superiore di un file da saltare durante la lettura dei dati. Si applica ai dati CSV e Fogli Google. |
source_column_match |
Controlla la strategia utilizzata per abbinare le colonne caricate allo schema. Se questo valore non è specificato, il valore predefinito si basa sulla modalità di fornitura dello schema. Se il rilevamento automatico è abilitato, il comportamento predefinito è la corrispondenza delle colonne in base al nome. In caso contrario, per impostazione predefinita le colonne vengono abbinate in base alla posizione. In questo modo, il comportamento è compatibile con le versioni precedenti. I valori supportati includono:
|
tags |
<ARRAY<STRUCT<STRING, STRING>>>
Un array di tag IAM per la tabella, espressi come coppie chiave-valore. La chiave deve essere il nome della chiave con spazio dei nomi e il valore deve essere il nome breve. |
time_zone |
Fuso orario predefinito che verrà applicato durante l'analisi dei valori timestamp che non hanno un fuso orario specifico. Controlla i nomi dei fusi orari validi. Se questo valore non è presente, i valori timestamp senza fuso orario specifico vengono analizzati utilizzando il fuso orario predefinito UTC. Si applica ai dati CSV e JSON. |
date_format |
Elementi di formato che definiscono come vengono formattati i valori DATE nei file di input (ad esempio, Se questo valore è presente, questo formato è l'unico formato DATE compatibile. Anche il rilevamento automatico dello schema deciderà il tipo di colonna DATE in base a questo formato anziché a quello esistente. Se questo valore non è presente, il campo DATE viene analizzato con i formati predefiniti. Si applica ai dati CSV e JSON. |
datetime_format |
Elementi di formato che definiscono come vengono formattati i valori DATETIME nei file di input (ad esempio, Se questo valore è presente, questo formato è l'unico formato DATETIME compatibile. Il rilevamento automatico dello schema deciderà anche il tipo di colonna DATETIME in base a questo formato anziché a quello esistente. Se questo valore non è presente, il campo DATETIME viene analizzato con i formati predefiniti. Si applica ai dati CSV e JSON. |
time_format |
Elementi di formato che definiscono come vengono formattati i valori TIME nei file di input (ad esempio, Se questo valore è presente, questo formato è l'unico formato TIME compatibile. Anche il rilevamento automatico dello schema deciderà il tipo di colonna TIME in base a questo formato anziché a quello esistente. Se questo valore non è presente, il campo TIME viene analizzato con i formati predefiniti. Si applica ai dati CSV e JSON. |
timestamp_format |
Elementi di formato che definiscono come vengono formattati i valori TIMESTAMP nei file di input (ad esempio, Se questo valore è presente, questo formato è l'unico formato TIMESTAMP compatibile. Il rilevamento automatico dello schema deciderà anche il tipo di colonna TIMESTAMP in base a questo formato anziché a quello esistente. Se questo valore non è presente, il campo TIMESTAMP viene analizzato con i formati predefiniti. Si applica ai dati CSV e JSON. |
uris |
Per le tabelle esterne, incluse le tabelle di oggetti, che non sono tabelle Bigtable:
Un array di URI completi per le posizioni dei dati esterni.
Ogni URI può contenere un
carattere jolly asterisco ( I seguenti esempi mostrano valori
Per le tabelle Bigtable:
L'URI che identifica la tabella Bigtable da utilizzare come origine dati. Puoi specificare un solo URI Bigtable. Esempio:
Per saperne di più sulla creazione di un URI Bigtable, consulta Recupera l'URI Bigtable. |
Esempi
Esempio 1:
L'esempio seguente recupera le date di scadenza predefinite per tutte le tabelle in mydataset nel progetto predefinito (myproject) eseguendo una query sulla vista INFORMATION_SCHEMA.TABLE_OPTIONS.
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'expiration_timestamp';
Il risultato è simile al seguente:
+----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+ | myproject | mydataset | mytable1 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2020-01-16T21:12:28.000Z" | | myproject | mydataset | mytable2 | expiration_timestamp | TIMESTAMP | TIMESTAMP "2021-01-01T21:12:28.000Z" | +----------------+---------------+------------+----------------------+-------------+--------------------------------------+
Esempio 2:
L'esempio seguente recupera i metadati relativi a tutte le tabelle in mydataset che contengono dati di test. La query utilizza i valori nell'opzione description per trovare le tabelle che contengono "test" in qualsiasi punto della descrizione. mydataset si trova nel tuo progetto predefinito: myproject.
Per eseguire la query su un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `myproject`.mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS.
SELECT * FROM mydataset.INFORMATION_SCHEMA.TABLE_OPTIONS WHERE option_name = 'description' AND option_value LIKE '%test%';
Il risultato è simile al seguente:
+----------------+---------------+------------+-------------+-------------+--------------+ | table_catalog | table_schema | table_name | option_name | option_type | option_value | +----------------+---------------+------------+-------------+-------------+--------------+ | myproject | mydataset | mytable1 | description | STRING | "test data" | | myproject | mydataset | mytable2 | description | STRING | "test data" | +----------------+---------------+------------+-------------+-------------+--------------+
COLUMNS visualizzazione
Quando esegui una query sulla vista INFORMATION_SCHEMA.COLUMNS, i risultati della query contengono una riga per ogni colonna (campo) di una tabella.
La vista INFORMATION_SCHEMA.COLUMNS ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
table_catalog |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
table_schema |
STRING |
Il nome del set di dati che contiene la tabella, noto anche come datasetId. |
table_name |
STRING |
Il nome della tabella o della vista, noto anche come tableId. |
column_name |
STRING |
Il nome della colonna. |
ordinal_position |
INT64 |
L'offset indicizzato a partire da 1 della colonna all'interno della tabella; se si tratta di una pseudo colonna come _PARTITIONTIME o _PARTITIONDATE, il valore è NULL. |
is_nullable |
STRING |
YES o NO a seconda che la modalità della colonna consenta o meno i valori NULL. |
data_type |
STRING |
Il tipo di dati GoogleSQL della colonna. |
is_generated |
STRING |
Il valore è ALWAYS se la colonna è una
colonna di embedding
generata automaticamente;
altrimenti, il valore è NEVER. |
generation_expression |
STRING |
Il valore è l'espressione di generazione utilizzata per definire la colonna se si tratta di una colonna di embedding generata automaticamente; altrimenti il valore è NULL. |
is_stored |
STRING |
Il valore è YES se la colonna è una colonna di embedding generata automaticamente; in caso contrario, il valore è NULL. |
async_generation_status |
STRUCT |
Contiene errori di blocco per i job di generazione di embedding in background se la colonna è una colonna di embedding generata automaticamente; in caso contrario, il valore è NULL. Per informazioni sugli errori di blocco, consulta il campo async_generation_status.blocking_error.message.
Gli errori di blocco possono includere:
async_generation_status viene cancellata.
|
is_hidden |
STRING |
YES o NO a seconda che la colonna sia una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE. |
is_updatable |
STRING |
Il valore è sempre NULL. |
is_system_defined |
STRING |
YES o NO a seconda che la colonna sia una pseudo-colonna come _PARTITIONTIME o _PARTITIONDATE. |
is_partitioning_column |
STRING |
YES o NO a seconda che la colonna sia una colonna di partizionamento. |
clustering_ordinal_position |
INT64 |
L'offset indicizzato a 1 della colonna all'interno delle colonne di clustering della tabella; il valore è NULL se la tabella non è una tabella in cluster. |
collation_name |
STRING |
Il nome della specifica di confronto, se esiste; altrimenti, NULL.Se viene passato un valore STRING o ARRAY<STRING>, viene restituita la specifica di confronto, se esiste; in caso contrario, viene restituito NULL.
|
column_default |
STRING |
Il valore predefinito della colonna, se esistente; in caso contrario, il valore è NULL.
|
rounding_mode |
STRING |
La modalità di arrotondamento utilizzata per i valori scritti nel campo se il tipo è un NUMERIC o BIGNUMERIC parametrizzato; in caso contrario, il valore è NULL.
|
data_policies.name |
STRING |
L'elenco delle policy dei dati collegate alla colonna per controllare l'accesso e il mascheramento. Questo campo è in anteprima. |
policy_tags |
ARRAY<STRING> |
L'elenco dei tag di policy collegati alla colonna. |
is_identity |
STRING |
YES o NO a seconda che la colonna sia una colonna di identità.
|
identity_generation |
STRING |
ALWAYS o BY DEFAULT, a seconda della modalità di generazione della colonna di identità. Se la colonna non è una colonna di identità, il valore è NULL.
|
identity_start |
INT64 |
Il primo valore generato dalla colonna di identità o NULL se la colonna non è una colonna di identità.
|
identity_increment |
INT64 |
La differenza minima tra gli ID generati in successione per la colonna di identità o NULL se la colonna non è una colonna di identità.
|
identity_maximum |
INT64 |
Il valore massimo che può essere generato per la colonna di identità o NULL se la colonna non è una colonna di identità.
|
identity_minimum |
INT64 |
Il valore minimo che può essere generato per la colonna di identità o NULL se la colonna non è una colonna di identità.
|
identity_cycle |
STRING |
Se la colonna è una colonna di identità, questo valore è NEVER; in caso contrario, il valore è NULL.
|
Esempi
L'esempio seguente recupera i metadati dalla vista INFORMATION_SCHEMA.COLUMNS per la tabella population_by_zip_2010 nel set di dati census_bureau_usa. Questo set di dati fa parte del programma per i set di dati pubblici di BigQuery.
Poiché la tabella su cui stai eseguendo la query si trova in un altro progetto, il progetto bigquery-public-data, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.TABLES.
La seguente colonna è esclusa dai risultati della query:
IS_UPDATABLE
SELECT * EXCEPT(is_updatable) FROM `bigquery-public-data`.census_bureau_usa.INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'population_by_zip_2010';
Il risultato è simile al seguente. Per motivi di leggibilità, alcune colonne sono escluse dal risultato.
+------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | table_name | column_name | ordinal_position | is_nullable | data_type | is_hidden | is_system_defined | is_partitioning_column | clustering_ordinal_position | policy_tags | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+ | population_by_zip_2010 | zipcode | 1 | NO | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | geo_id | 2 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | minimum_age | 3 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | maximum_age | 4 | YES | INT64 | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | gender | 5 | YES | STRING | NO | NO | NO | NULL | 0 rows | | population_by_zip_2010 | population | 6 | YES | INT64 | NO | NO | NO | NULL | 0 rows | +------------------------+-------------+------------------+-------------+-----------+-----------+-------------------+------------------------+-----------------------------+-------------+
COLUMN_FIELD_PATHS visualizzazione
Quando esegui una query sulla vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS, i risultati della query contengono una riga per ogni colonna nidificata all'interno di una colonna RECORD (o STRUCT).
La vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS ha il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
table_catalog |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
table_schema |
STRING |
Il nome del set di dati che contiene la tabella, noto anche come datasetId. |
table_name |
STRING |
Il nome della tabella o della vista, noto anche come tableId. |
column_name |
STRING |
Il nome della colonna di primo livello. |
field_path |
STRING |
Il nome della colonna di primo livello o il percorso della colonna nidificata all'interno di una colonna RECORD o STRUCT. |
data_type |
STRING |
Il tipo di dati GoogleSQL della colonna. |
description |
STRING |
La descrizione della colonna. |
collation_name |
STRING |
Il nome della specifica di confronto, se esiste; altrimenti, NULL.Se viene passato un campo STRING, ARRAY<STRING> o
STRING in un STRUCT, viene restituita la specifica di confronto, se esiste; in caso contrario, viene restituito NULL.
|
rounding_mode |
STRING |
La modalità di arrotondamento utilizzata quando si applicano precisione e scala ai valori NUMERIC o BIGNUMERIC parametrizzati; in caso contrario, il valore è NULL.
|
data_policies.name |
STRING |
L'elenco delle policy dei dati collegate alla colonna per controllare l'accesso e il mascheramento. Questo campo è in anteprima. |
policy_tags |
ARRAY<STRING> |
L'elenco dei tag di policy collegati alla colonna. |
Esempi
L'esempio seguente recupera i metadati dalla vista INFORMATION_SCHEMA.COLUMN_FIELD_PATHS per la tabella commits nel set di dati github_repos.
Questo set di dati fa parte del programma per i set di dati pubblici di BigQuery.
Poiché la tabella su cui stai eseguendo la query si trova in un altro progetto, il progetto bigquery-public-data, aggiungi l'ID progetto al set di dati nel seguente formato: `project_id`.dataset.INFORMATION_SCHEMA.view; ad esempio, `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS.
La tabella commits contiene le seguenti colonne nidificate e ripetute:
author: colonnaRECORDnidificatacommitter: colonnaRECORDnidificatatrailer: colonnaRECORDnidificata e ripetutadifference: colonnaRECORDnidificata e ripetuta
Per visualizzare i metadati relativi alle colonne author e difference, esegui questa query.
SELECT * FROM `bigquery-public-data`.github_repos.INFORMATION_SCHEMA.COLUMN_FIELD_PATHS WHERE table_name = 'commits' AND (column_name = 'author' OR column_name = 'difference');
Il risultato è simile al seguente. Per motivi di leggibilità, alcune colonne sono escluse dal risultato.
+------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | table_name | column_name | field_path | data_type | description | policy_tags | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+ | commits | author | author | STRUCT<name STRING, email STRING, time_sec INT64, tz_offset INT64, date TIMESTAMP> | NULL | 0 rows | | commits | author | author.name | STRING | NULL | 0 rows | | commits | author | author.email | STRING | NULL | 0 rows | | commits | author | author.time_sec | INT64 | NULL | 0 rows | | commits | author | author.tz_offset | INT64 | NULL | 0 rows | | commits | author | author.date | TIMESTAMP | NULL | 0 rows | | commits | difference | difference | ARRAY<STRUCT<old_mode INT64, new_mode INT64, old_path STRING, new_path STRING, old_sha1 STRING, new_sha1 STRING, old_repo STRING, new_repo STRING>> | NULL | 0 rows | | commits | difference | difference.old_mode | INT64 | NULL | 0 rows | | commits | difference | difference.new_mode | INT64 | NULL | 0 rows | | commits | difference | difference.old_path | STRING | NULL | 0 rows | | commits | difference | difference.new_path | STRING | NULL | 0 rows | | commits | difference | difference.old_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.new_sha1 | STRING | NULL | 0 rows | | commits | difference | difference.old_repo | STRING | NULL | 0 rows | | commits | difference | difference.new_repo | STRING | NULL | 0 rows | +------------+-------------+---------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------+-------------+-------------+
TABLE_STORAGE visualizzazione
Le viste TABLE_STORAGE e TABLE_STORAGE_BY_ORGANIZATION hanno il seguente schema:
| Nome colonna | Tipo di dati | Valore |
|---|---|---|
project_id |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
project_number |
INT64 |
Il numero di progetto del progetto che contiene il set di dati. |
table_catalog |
STRING |
L'ID progetto del progetto che contiene il set di dati. |
table_schema |
STRING |
Il nome del set di dati che contiene la tabella o la vista materializzata,
noto anche come datasetId. |
table_name |
STRING |
Il nome della tabella o della vista materializzata, indicata anche come tableId. |
creation_time |
TIMESTAMP |
L'ora di creazione della tabella. |
total_rows |
INT64 |
Il numero totale di righe nella tabella o nella vista materializzata. |
total_partitions |
INT64 |
Il numero di partizioni presenti nella tabella o nella vista materializzata. Le tabelle non partizionate restituiscono 0. |
total_logical_bytes |
INT64 |
Numero totale di byte logici (non compressi) nella tabella o nella vista materializzata. |
active_logical_bytes |
INT64 |
Numero di byte logici (non compressi) risalenti a meno di 90 giorni fa. |
long_term_logical_bytes |
INT64 |
Numero di byte logici (non compressi) risalenti a più di 90 giorni fa. |
current_physical_bytes |
INT64 |
Numero totale di byte fisici per l'archiviazione corrente della tabella in tutte le partizioni. |
total_physical_bytes |
INT64 |
Numero totale di byte fisici (compressi) utilizzati per l'archiviazione, inclusi i byte attivi, a lungo termine e di cronologia (dati eliminati o modificati). I byte di sicurezza (dati eliminati o modificati conservati dopo la finestra di spostamento cronologico) non sono inclusi. |
active_physical_bytes |
INT64 |
Numero di byte fisici (compressi) più recenti di 90 giorni, inclusi i byte con spostamento cronologico (dati eliminati o modificati). |
long_term_physical_bytes |
INT64 |
Numero di byte fisici (compressi) risalenti a più di 90 giorni fa. |
time_travel_physical_bytes |
INT64 |
Numero di byte fisici (compressi) utilizzati dallo spazio di archiviazione di viaggio nel tempo (dati eliminati o modificati). |
storage_last_modified_time |
TIMESTAMP |
L'ora più recente in cui i dati sono stati scritti nella tabella. Restituisce NULL se non esistono dati. |
deleted |
BOOLEAN |
Indica se la tabella è stata eliminata o meno. |
table_type |
STRING |
Il tipo di tabella. Ad esempio, BASE TABLE.
|
managed_table_type |
STRING |
Questa colonna è in anteprima. Il tipo gestito della tabella. Ad esempio, NATIVE o BIGLAKE.
|
fail_safe_physical_bytes |
INT64 |
Numero di byte fisici (compressi) utilizzati dallo spazio di archiviazione con protezione dai guasti (dati eliminati o modificati). |
last_metadata_index_refresh_time |
TIMESTAMP |
L'ora dell'ultimo aggiornamento dell'indice dei metadati della tabella. |
table_deletion_reason |
STRING |
Motivo dell'eliminazione della tabella se il campo deleted è true. I valori possibili sono:
|
table_deletion_time |
TIMESTAMP |
L'ora di eliminazione della tabella. |
Esempi
Esempio 1:
L'esempio seguente mostra i byte logici totali fatturati per il progetto corrente.
SELECT SUM(total_logical_bytes) AS total_logical_bytes FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE;
Il risultato è simile al seguente:
+---------------------+ | total_logical_bytes | +---------------------+ | 971329178274633 | +---------------------+
Esempio 2:
L'esempio seguente mostra diversi byte di archiviazione in GiB a livello di set di dati per il progetto corrente.
SELECT table_schema AS dataset_name, -- Logical SUM(total_logical_bytes) / power(1024, 3) AS total_logical_gib, SUM(active_logical_bytes) / power(1024, 3) AS active_logical_gib, SUM(long_term_logical_bytes) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(total_physical_bytes) / power(1024, 3) AS total_physical_gib, SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE WHERE table_type ='BASE TABLE' GROUP BY table_schema ORDER BY dataset_name
Esempio 3:
L'esempio seguente mostra come prevedere la differenza di prezzo per set di dati tra i modelli di fatturazione logica e fisica per i prossimi 30 giorni. Questo esempio presuppone che l'utilizzo dello spazio di archiviazione futuro sia costante nei successivi 30 giorni dal momento in cui è stata eseguita la query. Tieni presente che la previsione è limitata alle tabelle di base ed esclude tutti gli altri tipi di tabelle all'interno di un set di dati.
I prezzi utilizzati nelle variabili di prezzo per questa query si riferiscono alla regione us-central1. Se vuoi eseguire questa query per una regione diversa, aggiorna le variabili dei prezzi in modo appropriato. Per informazioni sui prezzi, consulta Prezzi di Storage.
Apri la pagina BigQuery nella console Cloud de Confiance .
Inserisci la seguente query GoogleSQL nella casella Editor di query.
INFORMATION_SCHEMArichiede la sintassi GoogleSQL. GoogleSQL è la sintassi predefinita nella console Cloud de Confiance .DECLARE active_logical_gib_price FLOAT64 DEFAULT 0.02; DECLARE long_term_logical_gib_price FLOAT64 DEFAULT 0.01; DECLARE active_physical_gib_price FLOAT64 DEFAULT 0.04; DECLARE long_term_physical_gib_price FLOAT64 DEFAULT 0.02; WITH storage_sizes AS ( SELECT table_schema AS dataset_name, -- Logical SUM(IF(deleted=false, active_logical_bytes, 0)) / power(1024, 3) AS active_logical_gib, SUM(IF(deleted=false, long_term_logical_bytes, 0)) / power(1024, 3) AS long_term_logical_gib, -- Physical SUM(active_physical_bytes) / power(1024, 3) AS active_physical_gib, SUM(active_physical_bytes - time_travel_physical_bytes) / power(1024, 3) AS active_no_tt_physical_gib, SUM(long_term_physical_bytes) / power(1024, 3) AS long_term_physical_gib, -- Restorable previously deleted physical SUM(time_travel_physical_bytes) / power(1024, 3) AS time_travel_physical_gib, SUM(fail_safe_physical_bytes) / power(1024, 3) AS fail_safe_physical_gib, FROM `region-REGION`.INFORMATION_SCHEMA.TABLE_STORAGE_BY_PROJECT WHERE total_physical_bytes + fail_safe_physical_bytes > 0 -- Base the forecast on base tables only for highest precision results AND table_type = 'BASE TABLE' GROUP BY 1 ) SELECT dataset_name, -- Logical ROUND(active_logical_gib, 2) AS active_logical_gib, ROUND(long_term_logical_gib, 2) AS long_term_logical_gib, -- Physical ROUND(active_physical_gib, 2) AS active_physical_gib, ROUND(long_term_physical_gib, 2) AS long_term_physical_gib, ROUND(time_travel_physical_gib, 2) AS time_travel_physical_gib, ROUND(fail_safe_physical_gib, 2) AS fail_safe_physical_gib, -- Compression ratio ROUND(SAFE_DIVIDE(active_logical_gib, active_no_tt_physical_gib), 2) AS active_compression_ratio, ROUND(SAFE_DIVIDE(long_term_logical_gib, long_term_physical_gib), 2) AS long_term_compression_ratio, -- Forecast costs logical ROUND(active_logical_gib * active_logical_gib_price, 2) AS forecast_active_logical_cost, ROUND(long_term_logical_gib * long_term_logical_gib_price, 2) AS forecast_long_term_logical_cost, -- Forecast costs physical ROUND((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price, 2) AS forecast_active_physical_cost, ROUND(long_term_physical_gib * long_term_physical_gib_price, 2) AS forecast_long_term_physical_cost, -- Forecast costs total ROUND(((active_logical_gib * active_logical_gib_price) + (long_term_logical_gib * long_term_logical_gib_price)) - (((active_no_tt_physical_gib + time_travel_physical_gib + fail_safe_physical_gib) * active_physical_gib_price) + (long_term_physical_gib * long_term_physical_gib_price)), 2) AS forecast_total_cost_difference FROM storage_sizes ORDER BY (forecast_active_logical_cost + forecast_active_physical_cost) DESC;
Fai clic su Esegui.
Il risultato è simile al seguente:
+--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset_name | active_logical_gib | long_term_logical_gib | active_physical_gib | long_term_physical_gib | active_compression_ratio | long_term_compression_ratio | forecast_active_logical_cost | forecaset_long_term_logical_cost | forecast_active_physical_cost | forecast_long_term_physical_cost | forecast_total_cost_difference | +--------------+--------------------+-----------------------+---------------------+------------------------+--------------------------+-----------------------------+------------------------------+----------------------------------+-------------------------------+----------------------------------+--------------------------------+ | dataset1 | 10.0 | 10.0 | 1.0 | 1.0 | 10.0 | 10.0 | 0.2 | 0.1 | 0.04 | 0.02 | 0.24 |
Risoluzione dei problemi
Per attivare questa visualizzazione, puoi impostare il valore di enable_info_schema_storage su TRUE nel progetto o nell'organizzazione. Per saperne di più sulla gestione della configurazione, consulta Gestisci le impostazioni di configurazione.
Se non hai configurato questa impostazione, verrà visualizzato il seguente errore:
INFORMATION_SCHEMA.TABLE_STORAGE hasn't been enabled for project <myproject>. Consider using one of the following SQL statements to enable data collection: ALTER PROJECT `<myproject>` SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE) Or to enable for the entire organization: ALTER ORGANIZATION SET OPTIONS (`region-<region>.enable_info_schema_storage` = TRUE) After enabling, please allow around 1 day for the complete historical data to become available.
Esegui le istruzioni SQL descritte nel messaggio di errore per abilitare la visualizzazione.
Elenca le tabelle in un set di dati
Puoi elencare le tabelle nei set di dati nei seguenti modi:
- Utilizzando la console Cloud de Confiance .
- Utilizzo del comando
bq lsdello strumento a riga di comando bq. - Chiamata del metodo API
tables.list. - Utilizzo delle librerie client.
Autorizzazioni obbligatorie
Per elencare le tabelle in un set di dati, devi disporre almeno delle autorizzazioni bigquery.tables.list. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.tables.list:
bigquery.userbigquery.metadataViewerbigquery.dataViewerbigquery.dataEditorbigquery.dataOwnerbigquery.admin
Per saperne di più su ruoli e autorizzazioni IAM in BigQuery, consulta Controllo dell'accesso.
Elenca tabelle
Per elencare le tabelle in un set di dati:
Console
Nella console Cloud de Confiance , nel riquadro di navigazione, fai clic sul set di dati per espanderlo. Vengono visualizzate le tabelle e le viste nel set di dati.
Scorri l'elenco per visualizzare le tabelle nel set di dati. Le tabelle e le viste sono identificate da icone diverse.
bq
-
Nella console Cloud de Confiance , attiva Cloud Shell.
Nella parte inferiore della console Cloud de Confiance , viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Esegui il comando
bq ls. Il flag--formatpuò essere utilizzato per controllare l'output. Se elenchi le tabelle in un progetto diverso da quello predefinito, aggiungi l'ID progetto al set di dati nel seguente formato:project_id:dataset.Altri flag includono:
--max_resultso-n: un numero intero che indica il numero massimo di risultati. Il valore predefinito è50.
bq ls \ --format=pretty \ --max_results integer \ project_id:dataset
Dove:
- integer è un numero intero che rappresenta il numero di tabelle da elencare.
- project_id è l'ID progetto.
- dataset è il nome del set di dati.
Quando esegui il comando, il campo
TypemostraTABLEoVIEW. Ad esempio:+-------------------------+-------+----------------------+-------------------+ | tableId | Type | Labels | Time Partitioning | +-------------------------+-------+----------------------+-------------------+ | mytable | TABLE | department:shipping | | | myview | VIEW | | | +-------------------------+-------+----------------------+-------------------+
Esempi:
Inserisci il seguente comando per elencare le tabelle nel set di dati
mydatasetnel tuo progetto predefinito.bq ls --format=pretty mydataset
Inserisci il seguente comando per restituire più dell'output predefinito di 50 tabelle da
mydataset.mydatasetsi trova nel tuo progetto predefinito.bq ls --format=pretty --max_results 60 mydataset
Inserisci il seguente comando per elencare le tabelle nel set di dati
mydatasetinmyotherproject.bq ls --format=pretty myotherproject:mydataset
API
Per elencare le tabelle utilizzando l'API, chiama il metodo tables.list.
C#
Prima di provare questo esempio, segui le istruzioni di configurazione di C# nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery C#.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Vai
Prima di provare questo esempio, segui le istruzioni di configurazione di Go nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Node.js
Prima di provare questo esempio, segui le istruzioni di configurazione di Node.js nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Node.js.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
PHP
Prima di provare questo esempio, segui le istruzioni di configurazione di PHP nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery PHP.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Ruby
Prima di provare questo esempio, segui le istruzioni di configurazione di Ruby nella guida rapida di BigQuery per l'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Ruby.
Per eseguire l'autenticazione in BigQuery, configura le Credenziali predefinite dell'applicazione. Per saperne di più, vedi Configura l'autenticazione per le librerie client.
Prima di eseguire gli esempi di codice, imposta la variabile di ambiente
GOOGLE_CLOUD_UNIVERSE_DOMAIN su s3nsapis.fr.
Cronologia della tabella di controllo
Puoi controllare la cronologia delle tabelle BigQuery eseguendo query su Cloud Audit Logs in Esplora log. Questi log ti aiutano a monitorare quando le tabelle sono state create, aggiornate o eliminate e a identificare l'utente o il account di servizio che ha apportato le modifiche.
Autorizzazioni obbligatorie
Per sfogliare gli audit log, devi disporre del ruolo roles/logging.privateLogViewer. Per saperne di più sui ruoli e sulle autorizzazioni IAM in Cloud Logging, consulta Controllo dell'accesso con IAM.
Recupera i dati di controllo
Puoi accedere alle informazioni di controllo dalla console Cloud de Confiance , dalla riga di comando gcloud, dall'API REST e da tutti i linguaggi supportati utilizzando le librerie client. Il filtro di logging mostrato nell'esempio seguente può essere utilizzato indipendentemente dal metodo utilizzato.
Nella console Cloud de Confiance , vai alla pagina Logging.
Utilizza la seguente query per accedere ai dati di controllo:
logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity" AND resource.type = "bigquery_dataset" AND timestamp >= "STARTING_TIMESTAMP" AND protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog" AND ( protoPayload.metadata.tableCreation :* OR protoPayload.metadata.tableChange :* OR protoPayload.metadata.tableDeletion :* ) AND protoPayload.resourceName : "projects/PROJECT_ID/datasets/DATASET_ID/tables/"
Sostituisci quanto segue:
PROJECT_ID: il progetto che contiene i set di dati e le tabelle che ti interessano.STARTING_TIMESTAMP: i log meno recenti che vuoi visualizzare. Utilizza il formato ISO 8601, ad esempio2025-01-01o2025-02-03T04:05:06Z.DATASET_ID: il set di dati in base al quale vuoi filtrare.
Interpretazione dei risultati
Nel riquadro dei risultati di Esplora log, espandi la voce che ti interessa, quindi fai clic su Espandi i campi nidificati per visualizzare l'intero messaggio.
La voce di log contiene solo uno dei seguenti oggetti per indicare l'operazione eseguita:
protoPayload.metadata.tableCreation: è stata creata una tabella.protoPayload.metadata.tableChange: i metadati della tabella sono stati modificati, ad esempio aggiornamento dello schema, modifica della descrizione o sostituzione della tabella.protoPayload.metadata.tableDeletion: una tabella è stata eliminata.
I contenuti di questi oggetti descrivono l'azione richiesta.
Per una descrizione dettagliata, consulta BigQueryAuditMetadata.
Spiegazione della query
logName = "projects/PROJECT_ID/logs/cloudaudit.googleapis.com%2Factivity": questa riga filtra gli audit log delle attività di amministrazione all'interno del tuo progetto Cloud de Confiance by S3NS. Questi log registrano le chiamate API e le azioni che modificano la configurazione o i metadati delle risorse.resource.type = "bigquery_dataset": restringe la ricerca agli eventi relativi ai set di dati BigQuery, in cui vengono registrate le operazioni sulle tabelle.timestamp >= "STARTING_TIMESTAMP": filtra le voci di log per mostrare solo quelle create in corrispondenza o dopo il timestamp specificato.protoPayload.@type = "type.googleapis.com/google.cloud.audit.AuditLog": garantisce che il messaggio di log sia conforme alla struttura standard degli audit log di Cloud.( ... ): questo blocco raggruppa le condizioni per trovare diversi tipi di eventi della tabella, come descritto nella sezione precedente. L'operatore:*indica che la chiave deve essere presente. Se ti interessa un solo evento, ad esempio la creazione di una tabella, rimuovi le condizioni non necessarie da questo blocco.protoPayload.resourceName : "projects/PROJECT_ID/datasets/DATASET_ID/tables/": seleziona le voci di log corrispondenti alle tabelle contenute nel set di dati specificato. L'operatore due punti (:) esegue una ricerca di sottostringhe.- Per filtrare le voci per una singola tabella, sostituisci la condizione con la seguente:
protoPayload.resourceName = "projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_NAME". - Per includere tutte le tabelle in tutti i set di dati nel progetto specifico, rimuovi questa condizione.
- Per filtrare le voci per una singola tabella, sostituisci la condizione con la seguente:
Per saperne di più sul filtro dei log, consulta Linguaggio di query di logging.
Sicurezza delle tabelle
Per controllare l'accesso alle tabelle in BigQuery, consulta Controlla l'accesso alle risorse con IAM.
Passaggi successivi
- Per saperne di più sui set di dati, consulta Introduzione ai set di dati.
- Per saperne di più sulla gestione dei dati delle tabelle, consulta Gestione dei dati delle tabelle.
- Per saperne di più sulla specifica degli schemi delle tabelle, consulta Specifica di uno schema.
- Per ulteriori informazioni sulla modifica degli schemi delle tabelle, consulta Modifica degli schemi delle tabelle.
- Per saperne di più sulla gestione delle tabelle, consulta Gestione delle tabelle.
- Per una panoramica di
INFORMATION_SCHEMA, vai a Introduzione a BigQueryINFORMATION_SCHEMA.