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 die Abrechnung für Ihr Google Cloud Projekt aktiviert ist.

  2. Aktivieren Sie die BigLake API, falls sie noch nicht aktiviert ist.

    Rollen, die zum Aktivieren von APIs erforderlich sind

    Zum Aktivieren von APIs benötigen Sie die Berechtigung serviceusage.services.enable. Wenn Sie das Projekt erstellt haben, haben Sie diese Berechtigung wahrscheinlich bereits über die Rolle „Inhaber“ (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen

    API aktivieren

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

Erforderliche Rollen

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

  • Tabelle im Modus für die Bereitstellung von Anmeldedaten ändern: BigLake Editor (roles/biglake.editor) – das Projekt
  • Tabelle im Modus für die Bereitstellung von Anmeldedaten ändern:
    • BigLake Editor (roles/biglake.editor): das Projekt
    • Storage Object User (roles/storage.objectUser) – der Cloud Storage-Bucket

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 Opt-in-Funktionen zu kennen. Weitere Informationen zur Verwendung von Apache Iceberg-Tabellen finden Sie unter Übersicht über Apache Iceberg-Tabellen.

Unterstützte Iceberg-Tabellen

Es werden nur Apache Iceberg-Tabellen der Version 2 (GA) und Version 3 (Vorschau) unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Informationen zum Aktualisieren vorhandener V1-Tabellen finden Sie unter Iceberg-V1-Tabellen auf V2 aktualisieren.

Tabellenoptionen verwenden (Vorabversion)

Sie können die verwalteten BigQuery-Funktionen wie die BigQuery-Datenbearbeitungssprache (DML) und die automatische Tabellenverwaltung aktivieren, indem Sie bestimmte Tabelleneigenschaften konfigurieren. Diese Funktionen werden je nach Ort, an dem die Tabelle erstellt wird, unterschiedlich aktiviert:

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

Eine ausführliche Anleitung finden Sie unter Tabellenoptionen 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 Sie noch keinen haben.

  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. Im Bereich Properties (Properties) können Sie Properties wie gcp.biglake.bigquery-dml.enabled und gcp.biglake.table-management.enabled hinzufügen oder ändern, um BigQuery-DML oder die automatische Tabellenverwaltung zu aktivieren oder zu deaktivieren.

    Sie können diese Werte beispielsweise auf true setzen, um diese Funktionen zu aktivieren. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.

  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 Lese-/Schreibinteroperabilität und Tabellenverwaltung aktivieren möchten, legen Sie die Attribute mit der Klausel SET TBLPROPERTIES 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;

Um Lese-/Schreibkompatibilität und Tabellenverwaltung zu aktivieren, 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: Projekt-ID in Google Cloud .
  • 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. um BigQuery-DML oder die automatische Tabellenverwaltung zu aktivieren), verwenden Sie die folgende GoogleSQL-ALTER TABLE-Anweisung:

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

Verwenden Sie die folgende GoogleSQL-ALTER TABLE-Anweisung, um das Schema zu aktualisieren und eine Spalte in einer Apache Iceberg-Tabelle im Lakehouse-Laufzeitkatalog aus BigQuery hinzuzufügen:

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • 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 Endpunkt UpdateIcebergTable (CommitTable):

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

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

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • CATALOG_ID: Die ID Ihres Katalogs.
  • NAMESPACE_NAME: Der Name Ihres Katalognamespace.
  • TABLE_NAME: Der Name Ihrer Iceberg-Tabelle.

Nächste Schritte