Gestisci le tabelle in cluster

Dopo aver creato una tabella in cluster in BigQuery, puoi controllare chi può accedervi, esaminarne le proprietà e modificare le colonne di clustering man mano che i pattern di query si evolvono. Questo documento descrive come controllare l'accesso alle tabelle in cluster, ottenere informazioni su queste tabelle, elencare le tabelle in cluster in un set di dati e modificare la specifica di clustering.

Per scoprire di più sulle tabelle in cluster, consulta Introduzione alle tabelle in cluster. Per crearne una, consulta Crea 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 di un set di dati.

Per saperne di più sui ruoli e sulle autorizzazioni IAM in BigQuery, consulta Ruoli e autorizzazioni predefiniti.

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):

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 in cluster

Seleziona una delle seguenti opzioni:

Console

  1. Nella console Cloud de Confiance , vai al riquadro Risorse.

  2. Fai clic sul nome del set di dati per espanderlo, quindi fai clic sul nome della tabella che vuoi visualizzare.

  3. Fai clic su Dettagli.

    Vengono visualizzati i dettagli della tabella, incluse le colonne di clustering.

    Dettagli tabella.

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 1 della colonna all'interno delle colonne di clustering della tabella:

  1. Nella console Cloud de Confiance , vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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;

  3. Fai clic su Esegui.

Per saperne di più su come eseguire le query, consulta Esegui una query interattiva.

La posizione ordinale del clustering è 1 per column1 e 2 per column2. Ulteriori 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 progetto
  • DATASET: il nome del set di dati
  • TABLE: 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 all'esempio seguente:

{
  "clustering": {
    "fields": [
      "customer_id"
    ]
  },
...
}

API

Chiama il metodo bigquery.tables.get e fornisci i parametri pertinenti.

Elenca le tabelle in cluster in un set di dati

Le autorizzazioni necessarie per elencare le tabelle in cluster e i passaggi per elencarle sono gli stessi delle tabelle standard. Per saperne di più, 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 inserimenti di flussi di dati continui, perché queste tabelle non possono essere facilmente scambiate con altri metodi.

Segui questi passaggi per applicare una nuova specifica di clustering alle tabelle non partizionate o partizionate.

  1. 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 esempio mycolumn
    • DATASET: il nome del set di dati contenente la tabella, ad esempio mydataset
    • ORIGINAL_TABLE: il nome della tabella originale, ad esempio mytable

    Puoi anche chiamare il metodo API tables.update o tables.patch per modificare la specifica di clustering.

  2. 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