Gestire 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 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.metadataViewerroles/bigquery.dataViewerroles/bigquery.dataOwnerroles/bigquery.dataEditorroles/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 ulteriori informazioni 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 a livello di progetto, cartella o organizzazione
- Il livello del set di dati
- Il livello della tabella o della vista
Puoi anche limitare l'accesso ai dati all'interno delle tabelle utilizzando i seguenti metodi:
L'accesso a qualsiasi risorsa protetta da IAM è additivo. Ad esempio, se un'entità non ha accesso a un livello elevato, ad esempio a 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 elevato o a livello di 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 , ad esempio a livello di progetto, cartella o organizzazione, consente all'entità di accedere a un' ampia gamma di risorse. Ad esempio, la concessione di un ruolo a un'entità a livello di progetto conferisce a questa entità le 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 di 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 di accesso a livello di tabella, consulta Controllare l'accesso a tabelle e viste.
Puoi anche creare ruoli IAM personalizzati. 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 ulteriori informazioni su ruoli e autorizzazioni, consulta la sezione Informazioni sui ruoli nella documentazione di IAM e Ruoli e autorizzazioni IAM di BigQuery .
Ottenere informazioni sulle tabelle in cluster
Seleziona una delle seguenti opzioni:
Console
Nella Google Cloud console, vai al riquadro Risorse.
Fai clic sul nome del set di dati per espanderlo, quindi 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 una query sulla CLUSTERING_ORDINAL_POSITION colonna
nella INFORMATION_SCHEMA.COLUMNS vista
per trovare l'offset con indice 1 della colonna all'interno delle colonne di clustering
della tabella:
Nella Google Cloud console, 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 ulteriori 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 viste TABLES, TABLE_OPTIONS,
COLUMNS, e COLUMN_FIELD_PATH in INFORMATION_SCHEMA.
bq
Esegui il comando bq show per visualizzare tutte le informazioni sulla 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 il seguente comando per visualizzare tutte le informazioni su myclusteredtable in mydataset. mydataset nel tuo progetto predefinito.
bq show --format=prettyjson mydataset.myclusteredtable
L'output dovrebbe essere simile al seguente:
{
"clustering": {
"fields": [
"customer_id"
]
},
...
}
API
Chiama il bigquery.tables.get
metodo e fornisci tutti i parametri pertinenti.
Elencare 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, consulta 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 dell'insieme di colonne di clustering è utile per le tabelle che utilizzano inserimenti di streaming continui perché queste tabelle non possono essere facilmente sostituite con altri metodi.
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 esempiomycolumnDATASET: il nome del set di dati contenente la tabella, ad esempiomydatasetORIGINAL_TABLE: il nome della tabella originale, ad esempiomytable
Puoi anche chiamare il metodo API
tables.updateotables.patchper modificare la specifica di clustering.Per raggruppare tutte le righe in cluster 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.