Modificare una tabella

La modifica di una tabella consente di evolvere lo schema (ad esempio aggiungendo colonne) e aggiornare le proprietà dei metadati della tabella.

Le modifiche sono gestite dal catalogo runtime Lakehouse.

Prima di iniziare

  1. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .

  2. Abilita l'API BigLake.

    Ruoli richiesti per abilitare le API

    Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo dei servizi (roles/serviceusage.serviceUsageAdmin), che include l'autorizzazione serviceusage.services.enable. Scopri come concedere i ruoli.

    Abilitare l'API

  3. Configura il catalogo runtime Lakehouse con l'endpoint del catalogo REST Apache Iceberg.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per modificare una tabella, chiedi all'amministratore di concederti i seguenti ruoli IAM sul progetto e sul bucket di archiviazione:

  • Modifica tabella in modalità di distribuzione delle credenziali: BigLake Editor (roles/biglake.editor) - il progetto
  • Modifica tabella in modalità di distribuzione delle credenziali:
    • BigLake Editor (roles/biglake.editor) - il progetto
    • Storage Object User (roles/storage.objectUser): il bucket Cloud Storage

Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.

Potresti anche riuscire a ottenere le autorizzazioni richieste tramite i ruoli personalizzati o altri ruoli predefiniti.

Funzionalità e supporto delle tabelle

Quando utilizzi le tabelle nel catalogo del runtime Lakehouse, è utile comprendere i diversi tipi di tabelle e le relative funzionalità di attivazione. Per saperne di più sull'utilizzo delle tabelle Apache Iceberg in particolare, consulta Panoramica delle tabelle Apache Iceberg.

Tabelle Iceberg supportate

Sono supportate solo le tabelle Apache Iceberg V2 (GA) e V3 (anteprima). Le tabelle Iceberg V1 non sono supportate. Per eseguire l'upgrade delle tabelle V1 esistenti, vedi Eseguire l'upgrade delle tabelle Iceberg V1 alla versione V2.

Utilizzare le opzioni della tabella (anteprima)

Puoi attivare l'utilizzo delle funzionalità gestite di BigQuery, come il DML (Data Manipulation Language) di BigQuery e la gestione automatica delle tabelle, configurando proprietà specifiche delle tabelle. Queste funzionalità vengono attivate in modi diversi a seconda di dove viene creata la tabella:

  • Da BigQuery:DML di BigQuery e gestione automatica delle tabelle sono abilitati per impostazione predefinita.
  • Dai motori open source:per attivare la funzionalità, devi configurare in modo esplicito le proprietà della tabella. Per saperne di più, consulta Configurare le opzioni della tabella.

Per istruzioni dettagliate, vedi Configurare le opzioni della tabella.

Modificare una tabella

Aggiungi una colonna alla tabella:

Console

  1. Nella console Google Cloud , vai a Lakehouse.

    Vai a Lakehouse

  2. Seleziona un catalogo esistente o creane uno se non ne hai.

  3. Nella tabella Dettagli spazio dei nomi, seleziona una tabella ed espandi le opzioni del menu.

  4. Fai clic su Modifica.

  5. Aggiorna i valori della tabella nella finestra di dialogo.

  6. Fai clic su Salva.

Spark

spark.sql("ALTER TABLE TABLE_NAME ADD COLUMNS ( desc string);")
spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()

Per attivare l'interoperabilità di lettura/scrittura e la gestione delle tabelle, imposta le proprietà utilizzando la clausola SET TBLPROPERTIES:

SET TBLPROPERTIES (
  'gcp.biglake.bigquery-dml.enabled' = true,
  'gcp.biglake.table-management.enabled' = true
)

Trino

ALTER TABLE TABLE_NAME ADD COLUMN desc varchar;
DESCRIBE SCHEMA_NAME.TABLE_NAME;

Per attivare l'interoperabilità di lettura/scrittura e la gestione delle tabelle, puoi configurare le seguenti proprietà della tabella:

  • 'gcp.biglake.bigquery-dml.enabled' = true
  • 'gcp.biglake.table-management.enabled' = true

gcloud

Per aggiornare le proprietà della tabella utilizzando gcloud, esegui il comando gcloud biglake iceberg tables update.

gcloud biglake iceberg tables update TABLE_NAME \
    --project="PROJECT_ID" \
    --catalog="CATALOG_ID" \
    --namespace="NAMESPACE_NAME" \
    --update-properties="KEY=VALUE,..."

Sostituisci quanto segue:

  • TABLE_NAME: il nome della tabella Iceberg.
  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • CATALOG_ID: l'ID del catalogo.
  • NAMESPACE_NAME: il nome dello spazio dei nomi del catalogo.
  • KEY=VALUE,...: le proprietà della tabella da aggiungere o aggiornare.

BigQuery

Per aggiornare le proprietà della tabella per una tabella Apache Iceberg nel catalogo del runtime Lakehouse da BigQuery (ad esempio per abilitare BigQuery DML o la gestione automatica delle tabelle), utilizza la seguente istruzione GoogleSQL ALTER TABLE:

ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
SET OPTIONS (`properties.gcp.biglake.table-management` = "enabled");

Per aggiornare lo schema e aggiungere una colonna in una tabella Apache Iceberg nel catalogo del runtime Lakehouse da BigQuery, utilizza la seguente istruzione GoogleSQL ALTER TABLE:

ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
ADD COLUMN new_column STRING;

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • CATALOG_ID: l'ID del catalogo runtime Lakehouse.
  • NAMESPACE: il nome dello spazio dei nomi Iceberg.
  • TABLE_NAME: il nome della tabella Iceberg.

REST

Per eseguire il commit delle modifiche a una tabella Iceberg utilizzando l'API REST, invia una richiesta POST all'endpoint UpdateIcebergTable (CommitTable):

POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables/TABLE_NAME

Il corpo della richiesta deve contenere un payload JSON CommitTableRequest Iceberg valido che definisce il requisito di base e l'elenco degli aggiornamenti dei metadati da applicare.

Sostituisci quanto segue:

  • PROJECT_ID: il tuo ID progetto Google Cloud .
  • CATALOG_ID: l'ID del catalogo.
  • NAMESPACE_NAME: il nome dello spazio dei nomi del catalogo.
  • TABLE_NAME: il nome della tabella Iceberg.

Passaggi successivi