La modifica di una tabella consente di far evolvere lo schema (ad esempio aggiungendo colonne) e aggiornare le proprietà dei metadati della tabella.
Le modifiche vengono gestite dal catalogo runtime Lakehouse e sottoposte a commit tramite la specifica dell'API REST Catalog Iceberg open source (POST /v1/{prefix}/namespaces/{namespace}/tables/{table} per CommitTable/UpdateIcebergTable).
Prima di iniziare
Consulta la panoramica della tabella per comprendere i diversi tipi di tabelle e le implicazioni del loro utilizzo.
-
Verifica che la fatturazione sia attivata per il tuo Google Cloud progetto.
-
Abilita l'API BigLake.
Ruoli richiesti per abilitare le API
Per abilitare le API, devi disporre del ruolo IAM Amministratore utilizzo servizi (
roles/serviceusage.serviceUsageAdmin), che contiene 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 nel progetto e nel 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
- 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 Google Cloud console, 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: l'ID del tuo Google Cloud progetto.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.