Creazione e utilizzo delle tabelle in cluster
Questo documento descrive come creare e utilizzare tabelle in cluster in BigQuery. Per una panoramica del supporto delle tabelle in cluster in BigQuery, consulta Introduzione alle tabelle in cluster.
Creazione di tabelle in cluster
Puoi creare una tabella in cluster utilizzando i seguenti metodi:
Creare una tabella dal risultato di una query:
- Esegui un'istruzione DDL
CREATE TABLE AS SELECT
. - Esegui una query che crei una tabella di destinazione in cluster.
- Esegui un'istruzione DDL
Utilizza un'istruzione DDL
CREATE TABLE
con una clausolaCLUSTER BY
contenente un'istruzioneclustering_column_list
.Esegui il comando
bq mk
dello strumento a riga di comando bq.Effettuare chiamate al metodo API
tables.insert
.Carica i dati in BigQuery.
Utilizzare le librerie client.
Denominazione tabella
Quando crei una tabella in BigQuery, il nome della tabella deve essere univoco per ogni set di dati. Il nome della tabella può:
- Contenere caratteri con un totale di massimo 1024 byte UTF-8.
- Contenere caratteri Unicode nella categoria L (lettera), M (segno), N (numero), Pc (connettore, compreso il trattino basso), Pd (trattino), Zs (spazio). Per ulteriori informazioni, consulta la sezione Categoria generale.
Di seguito sono riportati tutti gli esempi di nomi di tabella validi:
table 01
, ग्राहक
, 00_お客様
, étudiant-01
.
Precisazioni:
- Per impostazione predefinita, i nomi delle tabelle sono sensibili alle maiuscole.
mytable
eMyTable
possono 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 tabella sono riservati. Se ricevi un errore che indica che il nome o il prefisso della tabella è prenotato, seleziona un nome diverso e riprova.
Se includi più operatori di punti (
.
) in una sequenza, gli operatori duplicati vengono implicitamente rimossi.Ad esempio:
project_name....dataset_name..table_name
Diventa questo:
project_name.dataset_name.table_name
Autorizzazioni obbligatorie
Per creare una tabella, devi disporre delle seguenti autorizzazioni IAM:
bigquery.tables.create
bigquery.tables.updateData
bigquery.jobs.create
Inoltre, potresti richiedere l'autorizzazione bigquery.tables.getData
per accedere ai dati scritti nella tabella.
Ciascuno dei seguenti ruoli IAM predefiniti include le autorizzazioni necessarie per creare una tabella:
roles/bigquery.dataEditor
roles/bigquery.dataOwner
roles/bigquery.admin
(include l'autorizzazionebigquery.jobs.create
)roles/bigquery.user
(include l'autorizzazionebigquery.jobs.create
)roles/bigquery.jobUser
(include l'autorizzazionebigquery.jobs.create
)
Inoltre, se disponi dell'autorizzazione bigquery.datasets.create
, puoi
creare e aggiornare le tabelle nei set di dati che crei.
Per ulteriori informazioni su ruoli e autorizzazioni IAM in BigQuery, consulta Autorizzazioni e ruoli predefiniti.
Crea una tabella in cluster vuota con una definizione di schema
Puoi specificare le colonne di clustering quando crei una tabella in BigQuery. Dopo aver creato la tabella, puoi modificare le colonne di clustering. Per maggiori dettagli, consulta Modifica della specifica di clustering.
Le colonne di clustering devono essere colonne di primo livello non ripetute e devono essere uno dei seguenti tipi di dati semplici:
DATE
BOOLEAN
GEOGRAPHY
INTEGER
NUMERIC
BIGNUMERIC
STRING
TIMESTAMP
RANGE
(anteprima)
Puoi specificare fino a quattro colonne di clustering. Quando specifichi più colonne, l'ordine delle colonne determina il modo in cui vengono ordinati i dati. Ad esempio, se la tabella è raggruppata in base alle colonne a, b e c, i dati vengono ordinati nello stesso ordine: prima per colonna a, poi per colonna b e infine per colonna c. Come best practice, posiziona per prima la colonna filtrata o aggregata più spesso.
L'ordine delle colonne di clustering influisce anche sulle prestazioni e sui prezzi delle query. Per ulteriori informazioni sulle best practice per le query per le tabelle in cluster, consulta Esecuzione di query sulle tabelle in cluster.
Per creare una tabella in cluster vuota con la definizione di uno schema:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
- Nel riquadro Explorer, espandi il progetto, quindi seleziona un set di dati.
- Nella sezione Informazioni sul 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 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 di schema.
Puoi inserire manualmente le informazioni dello schema 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, per generare lo schema segui la stessa procedura utilizzata per la 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 Tipo e Modalità per ciascun campo. Aggiungi campo e inserisci lo schema della tabella. Specifica Nome,
- Opzione 1: fai clic su Modifica come testo e incolla lo schema sotto forma di array JSON. Quando utilizzi un array JSON, per generare lo schema segui la stessa procedura utilizzata per la creazione di un file di schema JSON.
Puoi visualizzare lo schema di una tabella esistente in formato JSON inserendo il seguente
comando:
- In Ordine di clustering, inserisci da uno a quattro nomi di colonna separati da virgole.
- (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 dei clienti archiviati at-rest utilizzando una chiave gestita da Google.
- Fai clic su Crea tabella.
SQL
Utilizza l'istruzione DDL CREATE TABLE
con l'opzione CLUSTER BY
. L'esempio seguente crea una tabella in cluster denominata myclusteredtable
in mydataset
:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
CREATE TABLE mydataset.myclusteredtable ( customer_id STRING, transaction_amount NUMERIC ) CLUSTER BY customer_id OPTIONS ( description = 'a table clustered by customer_id');
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
bq
Utilizza il comando bq mk
con i seguenti flag:
--table
(o la scorciatoia-t
).--schema
. Puoi fornire la definizione dello schema della tabella in linea o utilizzare un file JSON di schema.--clustering_fields
. Puoi specificare fino a quattro colonne di clustering.
I parametri facoltativi sono --expiration
, --description
, --time_partitioning_type
, --time_partitioning_field
, --time_partitioning_expiration
, --destination_kms_key
e --label
.
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
.
--destination_kms_key
non è una dimostrazione qui. Per informazioni sull'utilizzo di --destination_kms_key
, consulta Chiavi di crittografia gestite dal cliente.
Inserisci il comando seguente per creare una tabella in cluster vuota con una definizione di schema:
bq mk \ --table \ --expiration INTEGER1 \ --schema SCHEMA \ --clustering_fields CLUSTER_COLUMNS \ --description "DESCRIPTION" \ --label KEY:VALUE,KEY:VALUE \ PROJECT_ID:DATASET.TABLE
Sostituisci quanto segue:
INTEGER1
: la durata predefinita, in secondi, della tabella. Il valore minimo è 3600 secondi (un'ora). La data di scadenza restituisce l'ora UTC attuale più il valore intero. Se imposti la data di scadenza della tabella al momento della sua creazione, l'impostazione predefinita di scadenza della tabella del set di dati viene ignorata. L'impostazione di questo valore elimina la tabella dopo l'orario specificato.SCHEMA
: una definizione di schema integrata nel formatoCOLUMN:DATA_TYPE,COLUMN:DATA_TYPE
o il percorso del file di schema JSON sulla tua macchina locale.CLUSTER_COLUMNS
: un elenco separato da virgole di massimo quattro colonne di clustering. L'elenco non può contenere spazi.DESCRIPTION
: una descrizione della tabella tra virgolette.KEY:VALUE
: la coppia chiave-valore che rappresenta un'etichetta. Puoi inserire più etichette utilizzando un elenco separato da virgole.PROJECT_ID
: il tuo ID progetto.DATASET
: un set di dati nel tuo progetto.TABLE
: il nome della tabella che stai creando.
Se specifichi lo schema nella riga di comando, non puoi includere un tipo RECORD
(STRUCT
), non puoi includere una descrizione della colonna né specificare la modalità della colonna. Per impostazione predefinita, tutte le modalità sono NULLABLE
. Per includere descrizioni, modalità e tipi di RECORD
, fornisci invece un file di schema JSON.
Esempi:
Inserisci il comando seguente per creare una tabella in cluster denominata myclusteredtable
in mydataset
nel progetto predefinito. La scadenza della tabella è impostata su 2.592.000 (1 mese di 30 giorni), la descrizione è impostata su This is my clustered table
e l'etichetta è impostata su organization:development
. Il comando utilizza la scorciatoia -t
anziché --table
.
Lo schema è specificato in linea come:
timestamp:timestamp,customer_id:string,transaction_amount:float
. Il campo di clustering specificato customer_id
viene utilizzato per il clustering della tabella.
bq mk \
-t \
--expiration 2592000 \
--schema 'timestamp:timestamp,customer_id:string,transaction_amount:float' \
--clustering_fields customer_id \
--description "This is my clustered table" \
--label org:dev \
mydataset.myclusteredtable
Inserisci il comando seguente per creare una tabella in cluster denominata myclusteredtable
in myotherproject
, non il progetto predefinito. La descrizione è impostata su This is my clustered table
e l'etichetta su organization:development
. Il comando utilizza la scorciatoia -t
anziché --table
. Questo comando non specifica la scadenza della tabella. Se il set di dati ha una scadenza predefinita per la tabella, viene applicata. Se il set di dati non ha una scadenza predefinita
della tabella, la tabella non ha una scadenza.
Lo schema viene specificato in un file JSON locale: /tmp/myschema.json
. Il campo customer_id
viene utilizzato per raggruppare la tabella.
bq mk \
-t \
--expiration 2592000 \
--schema /tmp/myschema.json \
--clustering_fields=customer_id \
--description "This is my clustered table" \
--label org:dev \
myotherproject:mydataset.myclusteredtable
Dopo aver creato la tabella, puoi aggiornare la descrizione e le etichette della tabella.
Terraform
Utilizza la risorsa google_bigquery_table
.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
L'esempio seguente crea una tabella denominata mytable
in cluster
nelle colonne ID
e Created
:
Per applicare la configurazione Terraform in un progetto Google Cloud, completa i passaggi nelle sezioni seguenti.
prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito a 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
Se imposti valori espliciti nel file di configurazione Terraform, le variabili di ambiente vengono sostituite.
Prepara la directory
Ogni file di configurazione Terraform deve avere una propria directory (detta anche modulo principale).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome del file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file è indicato comemain.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.tf
appena creato.Se vuoi, copia il codice da GitHub. Questa opzione è consigliata se 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 la versione più recente del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi 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
yes
al prompt:terraform apply
Attendi finché Terraform non visualizza il messaggio "Applicazione completata".
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, 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 che specifica la proprietà clustering.fields
e la proprietà schema
.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Crea una tabella in cluster da un risultato di query
Esistono due modi per creare una tabella in cluster a partire dal risultato di una query:
- Scrivi i risultati in una nuova tabella di destinazione e specifica le colonne di clustering.
- Utilizzando un'istruzione DDL
CREATE TABLE AS SELECT
. Per ulteriori informazioni su questo metodo, consulta Creazione di una tabella in cluster dal risultato di una query nella pagina Utilizzo di istruzioni linguistiche per la definizione dei dati.
Puoi creare una tabella in cluster eseguendo query su una tabella partizionata o non partizionata. Non puoi cambiare una tabella esistente in una tabella in cluster utilizzando i risultati della query.
Quando crei una tabella in cluster dal risultato di una query, devi utilizzare SQL standard. Attualmente, l'SQL precedente non è supportato per l'esecuzione di query su tabelle in cluster o per la scrittura dei risultati delle query in tabelle in cluster.
SQL
Per creare una tabella in cluster dal risultato di una query, utilizza l'istruzione DDL CREATE TABLE
con l'opzione CLUSTER BY
. L'esempio seguente crea una nuova tabella in cluster eseguita da customer_id
eseguendo una query su una tabella non cluster esistente:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
CREATE TABLE mydataset.clustered_table ( customer_id STRING, transaction_amount NUMERIC ) CLUSTER BY customer_id AS ( SELECT * FROM mydataset.unclustered_table );
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
bq
Inserisci il comando seguente per creare una nuova tabella di destinazione in cluster a partire dal risultato di una query:
bq --location=LOCATION query \ --use_legacy_sql=false 'QUERY'
Sostituisci quanto segue:
LOCATION
: il nome della tua località. 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.QUERY
: una query con la sintassi GoogleSQL. Al momento, non puoi utilizzare SQL precedente per eseguire query su tabelle in cluster o scrivere risultati nelle tabelle in cluster. La query può contenere un'istruzioneCREATE TABLE
DDL che specifica le opzioni per la creazione della tabella in cluster. Puoi utilizzare il codice DDL anziché specificare i singoli flag della riga di comando.
Esempi:
Inserisci il comando seguente per scrivere i risultati della query in una tabella di destinazione in cluster denominata myclusteredtable
in mydataset
. mydataset
è nel tuo progetto predefinito. La query recupera i dati da una tabella non partizionata:
mytable. La colonna customer_id
della tabella viene utilizzata per il clustering della tabella. La colonna timestamp
della tabella viene utilizzata per creare una tabella partizionata.
bq query --use_legacy_sql=false \
'CREATE TABLE
mydataset.myclusteredtable
PARTITION BY
DATE(timestamp)
CLUSTER BY
customer_id
AS (
SELECT
*
FROM
`mydataset.mytable`
);'
API
Per salvare i risultati della query in una tabella in cluster, chiama il metodo jobs.insert
, configura un job query
e includi un'istruzione CREATE TABLE
DDL che crea la tabella in cluster.
Specifica la tua località nella proprietà location
nella sezione jobReference
della risorsa job.
Crea una tabella in cluster quando carichi i dati
Puoi creare una tabella in cluster specificando le colonne di clustering quando carichi i dati in una nuova tabella. Non è necessario creare una tabella vuota prima di caricare i dati al suo interno. Puoi creare la tabella in cluster e caricare i dati contemporaneamente.
Per ulteriori informazioni sul caricamento dei dati, consulta Introduzione al caricamento dei dati in BigQuery.
Per definire il clustering quando definisci un job di caricamento:
SQL
Utilizza l'istruzione LOAD DATA
.
L'esempio seguente carica i dati AVRO per creare una tabella partizionata
in base al campo transaction_date
e raggruppata in cluster dal campo customer_id
.
Inoltre, configura le partizioni in modo che scadano dopo tre giorni.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
LOAD DATA INTO mydataset.mytable PARTITION BY transaction_date CLUSTER BY customer_id OPTIONS ( partition_expiration_days = 3) FROM FILES( format = 'AVRO', uris = ['gs://bucket/path/file.avro']);
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
API
Per definire una configurazione di clustering quando crei una tabella tramite un job di caricamento, puoi completare le proprietà Clustering
per la tabella.
Go
Prima di provare questo esempio, segui le istruzioni di configurazione di Go disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Go.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Java
Prima di provare questo esempio, segui le istruzioni di configurazione di Java disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Java.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Python
Prima di provare questo esempio, segui le istruzioni di configurazione di Python disponibili nella guida rapida di BigQuery sull'utilizzo delle librerie client. Per saperne di più, consulta la documentazione di riferimento dell'API BigQuery Python.
Per eseguire l'autenticazione in BigQuery, configura Credenziali predefinite dell'applicazione. Per maggiori informazioni, consulta Configurare l'autenticazione per le librerie client.
Controlla l'accesso alle tabelle in cluster
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 generale nella gerarchia delle risorse di Google Cloud, ad esempio a livello di progetto, cartella o organizzazione
- il livello del set di dati
- a livello di tabella o vista
Puoi anche limitare l'accesso ai dati all'interno delle tabelle utilizzando i seguenti metodi:
L'accesso con qualsiasi risorsa protetta da IAM è cumulativo. Ad esempio, se un'entità non ha accesso ad alto livello come un progetto, puoi concedere all'entità l'accesso a livello del set di dati e l'entità avrà accesso alle tabelle e alle viste nel set di dati. Analogamente, se l'entità non ha accesso a livello di set di dati generale, puoi concedere l'accesso all'entità a livello di tabella o vista.
La concessione di ruoli IAM a un livello superiore nella gerarchia delle risorse di Google Cloud, ad esempio a livello di progetto, cartella o organizzazione, consente all'entità di accedere a un insieme più ampio di risorse. Ad esempio, la concessione di un ruolo a un'entità a livello di progetto concede a tale 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 determinato set di dati, anche se l'entità non ha accesso a un livello superiore. Per informazioni sulla configurazione dei controlli dell'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 determinate tabelle e viste, anche se l'entità non ha accesso a un livello superiore. Per informazioni sulla configurazione dei controlli di accesso a livello di tabella, consulta Controllo dell'accesso a tabelle e viste.
Puoi anche creare ruoli IAM personalizzati. Se crei un ruolo personalizzato, le autorizzazioni concesse dipendono dalle operazioni specifiche che vuoi che l'entità possa eseguire.
Non puoi impostare un'autorizzazione "nega" per le risorse protette da IAM.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni, consulta Informazioni sui ruoli nella documentazione IAM e Ruoli e autorizzazioni IAM di BigQuery.
Usa tabelle in cluster
Recupera informazioni sulle tabelle in cluster
Puoi ottenere informazioni sulle tabelle nei seguenti modi:
- Utilizzo della console Google Cloud.
- Utilizzo del comando
bq show
dello strumento a riga di comando bq. - Chiamata al metodo API
tables.get
. - Esecuzione di query sulle viste
INFORMATION_SCHEMA
.
Autorizzazioni obbligatorie
Devi disporre almeno delle autorizzazioni bigquery.tables.get
per ottenere informazioni sulle tabelle. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.tables.get
:
bigquery.metadataViewer
bigquery.dataViewer
bigquery.dataOwner
bigquery.dataEditor
bigquery.admin
Inoltre, se un utente ha 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 ottenere informazioni sulle tabelle in un set di dati.
Per ulteriori informazioni sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Autorizzazioni e ruoli predefiniti.
Recupera informazioni sulle tabelle in cluster
Per visualizzare le informazioni su una tabella in cluster:
Console
Nella console Google Cloud, vai al riquadro Risorse. Fai clic sul nome del set di dati per espanderlo, poi fai clic sul nome della tabella che vuoi visualizzare.
Fai clic su Dettagli. Questa pagina visualizza i dettagli della tabella, incluse le colonne di clustering.
SQL
Per le tabelle in cluster, puoi eseguire una query sulla colonna CLUSTERING_ORDINAL_POSITION
nella vista INFORMATION_SCHEMA.COLUMNS
per trovare l'offset indicizzato di 1 della colonna all'interno delle colonne di clustering della tabella:
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'Editor query, inserisci la seguente istruzione:
CREATE TABLE mydataset.data (column1 INT64, column2 INT64) CLUSTER BY column1, column2; SELECT column_name, clustering_ordinal_position FROM mydataset.INFORMATION_SCHEMA.COLUMNS;
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
La posizione ordinale di clustering è 1 per column1
e 2 per column2
.
Altri metadati della tabella sono disponibili tramite le visualizzazioni TABLES
, TABLE_OPTIONS
, COLUMNS
e COLUMN_FIELD_PATH
in INFORMATION_SCHEMA
.
bq
Esegui il comando bq show
per visualizzare tutte le informazioni della tabella. Utilizza il flag --schema
per visualizzare solo le informazioni dello schema della tabella. Il flag --format
può essere utilizzato per controllare l'output.
Se ricevi 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
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDATASET
: il nome del set di datiTABLE
: il nome della tabella
Esempi:
Inserisci il seguente comando per visualizzare tutte le informazioni su myclusteredtable
in mydataset
. mydataset
nel progetto predefinito.
bq show --format=prettyjson mydataset.myclusteredtable
L'output dovrebbe essere simile al seguente:
{ "clustering": { "fields": [ "customer_id" ] }, ... }
API
Richiama il metodo bigquery.tables.get
e fornisci i parametri pertinenti.
Elenca le tabelle in cluster in un set di dati
Puoi elencare le tabelle in cluster nei set di dati nei seguenti modi:
- Utilizzo della console Google Cloud.
- Utilizzo del comando
bq ls
dello strumento a riga di comando bq. - Chiamata al metodo dell'API
tables.list
. - Utilizzo delle librerie client.
- Esecuzione di query sulla colonna
CLUSTERING_ORDINAL_POSITION
nella visualizzazioneINFORMATION_SCHEMA.COLUMNS
.
Le autorizzazioni necessarie per elencare le tabelle in cluster e i passaggi per elencarle sono gli stessi di quelli per le tabelle standard. Per ulteriori informazioni sull'elenco delle tabelle, consulta Elenco delle tabelle in un set di dati.
Modifica la specifica di clustering
Puoi modificare o rimuovere le specifiche di clustering di una tabella o modificare l'insieme di colonne in cluster in una tabella in cluster. Questo metodo di aggiornamento del set di colonne di clustering è utile per le tabelle che utilizzano inserti di flussi di dati continui perché queste tabelle non possono essere facilmente scambiate da altri metodi.
Segui questi passaggi per applicare una nuova specifica di clustering alle tabelle non partizionate o partizionate.
Nello strumento bq, aggiorna la specifica di clustering della tabella in modo che corrisponda al nuovo clustering:
bq update --clustering_fields=CLUSTER_COLUMN DATASET.ORIGINAL_TABLE
Sostituisci quanto segue:
CLUSTER_COLUMN
: la colonna in base alla quale stai eseguendo il clustering, ad esempiomycolumn
DATASET
: il nome del set di dati contenente la tabella, ad esempiomydataset
ORIGINAL_TABLE
: il nome della tabella originale, ad esempiomytable
Puoi anche chiamare il metodo API
tables.update
otables.patch
per modificare la specifica di clustering.Per raggruppare tutte le righe in base alla nuova specifica di clustering, esegui la seguente istruzione
UPDATE
:UPDATE DATASET.ORIGINAL_TABLE SET CLUSTER_COLUMN=CLUSTER_COLUMN WHERE true
Sicurezza della tabella
Per controllare l'accesso alle tabelle in BigQuery, consulta Introduzione ai controlli di accesso alle tabelle.
Passaggi successivi
- Per informazioni sull'esecuzione di query sulle tabelle in cluster, consulta Esecuzione di query sulle tabelle in cluster.
- Per una panoramica del supporto delle tabella partizionata in BigQuery, consulta Introduzione alle tabelle partizionate.
- Per scoprire come creare tabelle partizionate, consulta Creazione di tabelle partizionate.
- Per una panoramica di
INFORMATION_SCHEMA
, vai ad Introduzione a BigQueryINFORMATION_SCHEMA
.