Tabelle ändern

Wenn Sie eine Tabelle ändern, können Sie das Schema weiterentwickeln (z. B. Spalten hinzufügen) und die Metadateneigenschaften der Tabelle aktualisieren.

Änderungen werden vom Lakehouse-Laufzeitkatalog verwaltet.

Hinweis

  1. Prüfen Sie, ob für Ihr Google Cloud Projekt die Abrechnung aktiviert ist.

  2. Aktivieren Sie die BigLake API.

    Erforderliche Rollen zum Aktivieren von APIs

    Zum Aktivieren von APIs benötigen Sie die IAM-Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) mit der Berechtigung serviceusage.services.enable. Weitere Informationen zum Zuweisen von Rollen.

    API aktivieren

  3. Richten Sie den Lakehouse-Laufzeitkatalog ein mit dem Apache Iceberg-REST-Katalogendpunkt.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt und Ihren Speicher-Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Ändern einer Tabelle benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Sie können die erforderlichen Berechtigungen auch über benutzerdefinierte Rollen oder andere vordefinierte Rollen erhalten.

Tabellenfunktionen und -unterstützung

Wenn Sie Tabellen im Lakehouse-Laufzeitkatalog verwenden, ist es hilfreich, die verschiedenen Tabellentypen und ihre optionalen Funktionen zu verstehen . Weitere Informationen zur Verwendung von Apache Iceberg-Tabellen finden Sie unter Übersicht über Apache Iceberg Tabellen.

Unterstützte Iceberg-Tabellen

Nur Apache Iceberg V2-Tabellen (allgemeine Verfügbarkeit) und V3-Tabellen (Vorschau) werden unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Informationen zum Upgrade vorhandener V1-Tabellen finden Sie unter Iceberg V1 Tabellen auf V2 aktualisieren.

Tabellenoptionen verwenden (Vorschau)

Sie können bestimmte Tabelleneigenschaften konfigurieren, um BigQuery-verwaltete Funktionen wie die BigQuery-Datenbearbeitungssprache (DML) und die automatische Tabellenverwaltung zu verwenden. Diese Funktionen werden je nachdem, wo die Tabelle erstellt wird, auf unterschiedliche Weise aktiviert:

  • Aus BigQuery: BigQuery DML und die automatische Tabellenverwaltung sind standardmäßig aktiviert.
  • Aus Open-Source-Engines: Wenn Sie diese Funktionen verwenden möchten, müssen Sie die Tabelleneigenschaften explizit konfigurieren. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.

Eine detaillierte Anleitung finden Sie unter Tabellen optionen konfigurieren.

Tabelle ändern

So fügen Sie der Tabelle eine Spalte hinzu:

Console

  1. Rufen Sie in der Google Cloud Console Lakehouse auf.

    Lakehouse aufrufen

  2. Wählen Sie einen vorhandenen Katalog aus oder erstellen Sie einen, falls noch keiner vorhanden ist.

  3. Wählen Sie in der Tabelle Namespace-Details eine Tabelle aus und maximieren Sie die Menüoptionen.

  4. Klicken Sie auf Bearbeiten.

  5. Aktualisieren Sie die Tabellenwerte im Dialogfeld.

  6. Klicken Sie auf Speichern.

Spark

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

Wenn Sie die Interoperabilität für Lese-/Schreibvorgänge und die Tabellenverwaltung aktivieren möchten, legen Sie die Eigenschaften mit der SET TBLPROPERTIES Klausel fest:

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;

Wenn Sie die Interoperabilität für Lese-/Schreibvorgänge und die Tabellenverwaltung aktivieren möchten, können Sie die folgenden Tabelleneigenschaften konfigurieren:

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

gcloud

Wenn Sie Tabelleneigenschaften mit gcloud aktualisieren möchten, führen Sie den gcloud biglake iceberg tables update Befehl aus.

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

Ersetzen Sie Folgendes:

  • TABLE_NAME: der Name Ihrer Iceberg-Tabelle.
  • PROJECT_ID: Ihre Google Cloud Projekt-ID.
  • CATALOG_ID: die ID Ihres Katalogs.
  • NAMESPACE_NAME: der Name Ihres Katalognamespace.
  • KEY=VALUE,...: Tabelleneigenschaften, die hinzugefügt oder aktualisiert werden sollen.

BigQuery

Wenn Sie Tabelleneigenschaften für eine Apache Iceberg-Tabelle im Lakehouse-Laufzeitkatalog aus BigQuery aktualisieren möchten (z. B. BigQuery DML oder die automatische Tabellenverwaltung aktivieren), verwenden Sie die folgende GoogleSQL-Anweisung ALTER TABLE:

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

Wenn Sie das Schema aktualisieren und eine Spalte in einer Apache Iceberg-Tabelle im Lakehouse-Laufzeitkatalog aus BigQuery hinzufügen möchten, verwenden Sie die folgende GoogleSQL-Anweisung ALTER TABLE:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID.
  • CATALOG_ID: Ihre Lakehouse-Laufzeitkatalog-ID.
  • NAMESPACE: der Name Ihres Iceberg-Namespace.
  • TABLE_NAME: der Name Ihrer Iceberg-Tabelle.

REST

Wenn Sie Änderungen an einer Iceberg-Tabelle mit der REST API übernehmen möchten, senden Sie eine POST Anfrage an den UpdateIcebergTable (CommitTable) Endpunkt:

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

Der Anfragetext muss eine gültige Iceberg-JSON-Nutzlast CommitTableRequest enthalten, die die grundlegende Anforderung und die Liste der anzuwendenden Metadatenaktualisierungen definiert.

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID.
  • CATALOG_ID: die ID Ihres Katalogs.
  • NAMESPACE_NAME: der Name Ihres Katalognamespace.
  • TABLE_NAME: der Name Ihrer Iceberg-Tabelle.

Nächste Schritte