Tabelle erstellen

Beim Erstellen einer Apache Iceberg-Tabelle werden die Tabellenmetadaten in einem Namespace im Lakehouse-Laufzeitkatalog registriert.

Unterstützte Tabellenformate

Es werden nur Apache Iceberg V2-Tabellen unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Wenn Sie vorhandene Iceberg V1-Tabellen haben, müssen Sie sie auf V2 aktualisieren (z. B. durch Ausführen von ALTER TABLE catalog.schema.table SET TBLPROPERTIES ('format-version'='2'); oder ähnlichen Engine-Vorgängen), bevor Sie sie registrieren oder verwenden können.

Wenn Sie beim Erstellen der Tabelle keinen expliziten Speicherort auf Namespace- oder Tabellenebene angeben, erstellt das System automatisch die Metadaten- und Datenverzeichnisse der Tabelle am standardmäßigen Standort des Katalogs (abgeleitet vom Basis-Cloud Storage-Bucket des Katalogs), indem es die Namespace- und Tabellen-IDs anhängt.

Zusätzlich zu den Integrationen der Abfrage-Engine implementiert der Lakehouse-Laufzeitkatalog die Open-Source-Iceberg REST Catalog API-Spezifikation (POST /v1/{prefix}/namespaces/{namespace}/tables), sodass kompatible REST-Clients Tabellen direkt erstellen können.

Hinweis

In der Tabellenübersicht finden Sie Informationen zu den verschiedenen Arten von Tabellen und den Auswirkungen ihrer Verwendung.

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

  2. Aktivieren Sie die BigLake API.

    Rollen, die zum Aktivieren von APIs erforderlich sind

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

    API aktivieren

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 zum Erstellen einer Tabelle erforderlich sind:

  • Alle:
    • BigLake-Administrator (roles/biglake.admin) – Ihr Projekt
    • Storage-Administrator (roles/storage.admin) – der Ziel-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.

Tabelle erstellen

Erstellen Sie eine Iceberg-Tabelle.

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. Klicken Sie in der Menüleiste auf + Tabelle erstellen.

  4. Wählen Sie unter Tabellenformat die Option Iceberg aus.

  5. Geben Sie unter Tabellenname einen eindeutigen Tabellennamen ein.

  6. Klicken Sie auf Erstellen.

Ihre Tabelle wird auf der Seite Namespace-Details angezeigt.

Spark

spark.sql("CREATE TABLE NAMESPACE_NAME.TABLE_NAME (id int, data string) USING ICEBERG;")

spark.sql("DESCRIBE NAMESPACE_NAME.TABLE_NAME").show()

Ersetzen Sie die folgenden Werte:

  • NAMESPACE_NAME: der Name Ihres Namespace
  • TABLE_NAME: ein Name für Ihre Tabelle

Trino

CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);

DESCRIBE SCHEMA_NAME.TABLE_NAME;

Ersetzen Sie die folgenden Werte:

  • SCHEMA_NAME: der Name Ihres Schemas
  • TABLE_NAME: ein Name für Ihre Tabelle

Wenn Sie die BigQuery-Katalogföderation mit Trino verwenden, können Sie keinen Speicherort für die Tabelle angeben. Es wird immer der standardmäßige Standort des Schemas verwendet.

REST

Wenn Sie eine Iceberg-Tabelle mit der REST API erstellen möchten, senden Sie eine POST Anfrage an den CreateIcebergTable Endpunkt:

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

Der Anfragetext muss eine gültige Iceberg-JSON-Nutzlast vom Typ CreateTableRequest enthalten, die das Tabellenschema, die Partitionsspezifikation und die anfänglichen Eigenschaften definiert.

Ersetzen Sie Folgendes:

  • PROJECT_ID: Ihre Google Cloud Projekt-ID.
  • CATALOG_ID: die ID Ihres Lakehouse-Laufzeitkatalogs.
  • NAMESPACE_NAME: der Name Ihres Katalognamespace.

Nächste Schritte