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 vengono gestite dal catalogo runtime Lakehouse e vengono eseguite tramite la specifica dell'API REST Catalog Iceberg open source (POST /v1/{prefix}/namespaces/{namespace}/tables/{table} per CommitTable/UpdateIcebergTable).

Formati di tabella supportati

Sono supportate solo le tabelle Apache Iceberg V2; le tabelle Iceberg V1 non sono supportate. Se hai tabelle Iceberg V1 esistenti, devi eseguirne l'upgrade alla versione 2 (ad esempio eseguendo ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); o utilizzando operazioni del motore simili) prima di modificarle o gestirle con il catalogo del runtime Lakehouse.

Prima di iniziare

Consulta la panoramica delle tabelle per comprendere i diversi tipi di tabelle e le implicazioni del loro utilizzo.

  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

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) - the project
    • 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.

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

Trino

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

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 runtime Lakehouse.
  • NAMESPACE_NAME: il nome dello spazio dei nomi del catalogo.
  • TABLE_NAME: il nome della tabella Iceberg.

Passaggi successivi