Gestisci le tabelle in cluster
Questo documento descrive come ottenere informazioni e controllare l'accesso alle tabelle in cluster in BigQuery.
Per ulteriori informazioni, consulta le seguenti risorse:
- Per scoprire di più sul supporto delle tabelle in cluster in BigQuery, consulta l'articolo Introduzione alle tabelle in cluster.
- Per scoprire come creare tabelle in cluster, consulta Creare tabelle in cluster.
Prima di iniziare
Per ottenere informazioni sulle tabelle, devi disporre dell'autorizzazione
bigquery.tables.get
. I seguenti ruoli IAM predefiniti includono le autorizzazioni bigquery.tables.get
:
roles/bigquery.metadataViewer
roles/bigquery.dataViewer
roles/bigquery.dataOwner
roles/bigquery.dataEditor
roles/bigquery.admin
Inoltre, se un utente dispone dell'autorizzazione 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 saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.
Controllare 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 elevato nella Google Cloud gerarchia delle risorse, ad esempio il livello di progetto, cartella o organizzazione
- il livello del set di dati
- a livello di tabella o visualizzazione
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, ad esempio un progetto, puoi concederle l'accesso a livello di set di dati e l'entità avrà accesso alle tabelle e alle viste nel set di dati. Allo stesso modo, se l'entità non ha accesso a livello di progetto o set di dati, puoi concederle l'accesso a livello di tabella o vista.
La concessione di ruoli IAM a un livello superiore nella Google Cloud gerarchia delle risorse come il progetto, la cartella o l'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 conferisce a questa entità autorizzazioni che si applicano a tutti i set di dati del progetto.
La concessione di un ruolo a livello di set di dati specifica le operazioni che un'entità è autorizzata a 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 dell'accesso a livello di set di dati, consulta Controllare l'accesso ai set di dati.
La concessione di un ruolo a livello di tabella o vista specifica le operazioni che un'entità è autorizzata a eseguire su tabelle e viste specifiche, anche se l'entità non ha accesso a un livello superiore. Per informazioni sulla configurazione dei controlli dell'accesso a livello di tabella, vedi 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 qualsiasi risorsa protetta da IAM.
Per saperne di più su ruoli e autorizzazioni, consulta la sezione Informazioni sui ruoli nella documentazione di IAM e la sezione Ruoli e autorizzazioni IAM di BigQuery.
Ottenere informazioni sulle tabelle in cluster
Seleziona una delle seguenti opzioni:
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.
Vengono visualizzati i dettagli della tabella, incluse le colonne di clustering.
SQL
Per le tabelle in cluster, puoi eseguire query sulla colonna CLUSTERING_ORDINAL_POSITION
nella vista INFORMATION_SCHEMA.COLUMNS
per trovare l'offset con indice 1 della colonna all'interno delle colonne di clustering della tabella:
Nella console Google Cloud , vai alla pagina BigQuery.
Nell'editor di 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 maggiori informazioni su come eseguire le query, consulta Eseguire una query interattiva.
La posizione ordinale del 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 sullo schema della tabella. Il flag --format
può 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
Sostituisci quanto segue:
PROJECT_ID
: il tuo ID progettoDATASET
: il nome del set di datiTABLE
: il nome della tabella
Esempi:
Inserisci questo 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
Chiama il metodo bigquery.tables.get
e fornisci eventuali parametri pertinenti.
Elenca le tabelle in cluster in un set di dati
Le autorizzazioni richieste per elencare le tabelle in cluster e i passaggi per elencarle sono gli stessi delle tabelle standard. Per ulteriori informazioni, vedi Elencare le tabelle in un set di dati.
Modificare la specifica di clustering
Puoi modificare o rimuovere le specifiche di clustering di una tabella oppure 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 inserimenti di streaming continui perché non possono essere facilmente scambiate con altri metodi.
Segui questi passaggi per applicare una nuova specifica di clustering a 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 su cui 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
Passaggi successivi
- Per informazioni sull'esecuzione di query sulle tabelle in cluster, consulta Eseguire 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 Creare tabelle partizionate.