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.
-
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud .
-
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'autorizzazioneserviceusage.services.enable. Scopri come concedere i ruoli.
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
- BigLake Editor (
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
Nella console Google Cloud , vai a Lakehouse.
Seleziona un catalogo esistente o creane uno se non ne hai.
Nella tabella Dettagli spazio dei nomi, seleziona una tabella ed espandi le opzioni del menu.
Fai clic su Modifica.
Aggiorna i valori della tabella nella finestra di dialogo.
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
- Scopri come eliminare una tabella.