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.
Prima di iniziare
-
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 dell'autorizzazione
serviceusage.services.enable. Se hai creato il progetto, probabilmente hai già questa autorizzazione tramite il ruolo Proprietario (roles/owner). In caso contrario, puoi ottenere questa autorizzazione tramite il ruolo Amministratore utilizzo servizi (roles/serviceusage.serviceUsageAdmin). Scopri come concedere i ruoli. - Configura il catalogo runtime Lakehouse con l'endpoint del catalogo REST di Apache Iceberg.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per modificare una tabella, chiedi all'amministratore di concederti i seguenti ruoli IAM per il progetto e il 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.
Funzionalità e supporto delle tabelle
Quando utilizzi le tabelle nel catalogo runtime Lakehouse, è utile comprendere i diversi tipi di tabelle e le relative funzionalità di attivazione delle funzionalità. Per saperne di più sull'utilizzo delle tabelle Apache Iceberg, consulta Panoramica delle tabelle Apache Iceberg tables.
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, consulta Eseguire l'upgrade delle tabelle Iceberg V1 a V2.
Utilizzare le opzioni della tabella (anteprima)
Puoi attivare l'utilizzo delle funzionalità gestite di BigQuery, come BigQuery Data Manipulation Language (DML) e la gestione automatica delle tabelle, configurando proprietà specifiche della tabella. Queste funzionalità vengono attivate in modi diversi a seconda di dove viene creata la tabella:
- Da BigQuery: BigQuery DML e la gestione automatica delle tabelle sono attivati per impostazione predefinita.
- Dai motori open source: per attivare l'utilizzo, devi configurare in modo esplicito le proprietà della tabella. Per ulteriori informazioni, consulta Configurare le opzioni della tabella.
Per istruzioni dettagliate, consulta Configurare le opzioni della tabella.
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 dello 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. Nella sezione Proprietà , puoi aggiungere o modificare proprietà come
gcp.biglake.bigquery-dml.enabledegcp.biglake.table-management.enabledper attivare o disattivare BigQuery DML o la gestione automatica delle tabelle.Ad esempio, puoi impostare questi valori su
trueper attivare queste funzionalità. Per ulteriori informazioni, consulta Configurare le opzioni della tabella.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à in 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à in 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 gcloud biglake iceberg tables update comando.
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: l'ID del tuo Google Cloud progetto.CATALOG_ID: l'ID del catalogo.NAMESPACE_NAME: il nome dello spazio dei nomi del catalogo.KEY=VALUE,...: proprietà della tabella da aggiungere o aggiornare.
BigQuery
Per aggiornare le proprietà della tabella per una tabella Apache Iceberg nel catalogo runtime Lakehouse da BigQuery (ad esempio per attivare BigQuery DML o la gestione automatica delle tabelle), utilizza la seguente istruzione ALTER TABLE di GoogleSQL:
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 runtime Lakehouse da BigQuery, utilizza la seguente istruzione ALTER TABLE di GoogleSQL:
ALTER TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME`
ADD COLUMN new_column STRING;
Sostituisci quanto segue:
PROJECT_ID: l'ID del tuo Google Cloud progetto.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 POST
richiesta 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.NAMESPACE_NAME: il nome dello spazio dei nomi del catalogo.TABLE_NAME: il nome della tabella Iceberg.
Passaggi successivi
- Scopri come eliminare una tabella.