Mit dem Lakehouse-Laufzeitkatalog können Sie Apache Iceberg-Tabellen in Cloud Storage erstellen, die Sie über BigQuery, Apache Spark, Trino und die Iceberg REST API abfragen und ändern können. Wenn Sie eine Tabelle erstellen, ohne einen expliziten Speicherpfad anzugeben, platziert der Lakehouse-Laufzeitkatalog die Metadaten- und Datenverzeichnisse automatisch am Standard-Cloud Storage-Speicherort des Katalogendpunkts, indem er die Namespace- und Tabellenkennungen anhängt.
Informationen zum Registrieren einer vorhandenen Apache Iceberg-Tabelle ohne Erstellen neuer Speicherverzeichnisse finden Sie unter Tabelle registrieren.
Hinweis
-
Prüfen Sie, ob die Abrechnung für Ihr Google Cloud -Projekt aktiviert ist.
-
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 Inhaberrolle (roles/owner). Andernfalls können Sie diese Berechtigung über die Rolle „Service Usage-Administrator“ (roles/serviceusage.serviceUsageAdmin) erhalten. Informationen zum Zuweisen von Rollen - Richten Sie den Lakehouse-Laufzeitkatalog mit dem Apache Iceberg REST-Katalogendpunkt ein. Wenn Sie die automatische Tabellenverwaltung aktivieren möchten, muss der Katalog den Modus für die Bereitstellung von Anmeldedaten verwenden.
Erforderliche Rollen
Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für Ihr Projekt und Ihren Storage-Bucket zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Erstellen einer Tabelle benötigen:
-
Tabelle erstellen:
- BigLake-Administrator (
roles/biglake.admin) – Ihr Projekt - Storage-Administrator (
roles/storage.admin) – der Cloud Storage-Ziel-Bucket
- BigLake-Administrator (
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.
Wenn Ihr Katalogendpunkt den Modus für die Bereitstellung von Anmeldedaten verwendet und seine Cloud Storage-Buckets durch einen VPC Service Controls-Dienstperimeter geschützt sind, müssen Sie vor dem Erstellen von Tabellen auch eine Regel für eingehenden Traffic für das Dienstkonto des Katalogendpunkts konfigurieren. Weitere Informationen finden Sie unter VPC Service Controls mit der Bereitstellung von Anmeldedaten verwenden.
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 V2- (GA) und V3-Tabellen (Vorschau) 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 (Vorabversion)
Sie können die verwalteten BigQuery-Funktionen wie die BigQuery-Datenbearbeitungssprache (DML) und die automatische Tabellenverwaltung aktivieren, indem Sie bestimmte Tabellenattribute konfigurieren. Diese Funktionen werden je nach Erstellungsort der Tabelle auf unterschiedliche Weise aktiviert:
- Aus BigQuery: BigQuery-DML und die automatische Tabellenverwaltung sind standardmäßig aktiviert.
- Aus Open-Source-Engines: Wenn Sie die Funktion aktivieren möchten, müssen Sie die Tabellenattribute explizit konfigurieren. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.
Tabelle erstellen
Iceberg-Tabelle erstellen Wenn Sie die automatische Tabellenverwaltung (gcp.biglake.table-management.enabled) aktivieren möchten, muss der Katalog den Modus für die Bereitstellung von Anmeldedaten verwenden.
Console
Rufen Sie in der Google Cloud Console Lakehouse auf.
Wählen Sie einen vorhandenen Katalog aus oder erstellen Sie einen, falls Sie noch keinen haben.
Wählen Sie einen vorhandenen Namespace aus oder erstellen Sie einen, falls Sie noch keinen haben.
Klicken Sie in der Menüleiste auf + Tabelle erstellen.
Wählen Sie als Tabellenformat die Option Iceberg aus.
Geben Sie unter Tabellenname einen eindeutigen Tabellennamen ein.
Optional: Konfigurieren Sie im Abschnitt Attribute die Tabellenattribute. In diesem Abschnitt werden vordefinierte Attribute wie
gcp.biglake.bigquery-dml.enabledundgcp.biglake.table-management.enabledaufgeführt.Sie können diese Werte beispielsweise in
trueändern, um BigQuery-DML oder die Tabellenverwaltung zu aktivieren. Bei der Tabellenverwaltung werden Hintergrundaufgaben wie Komprimierung und Snapshot-Ablauf ausgeführt. Weitere Informationen finden Sie unter Tabellenoptionen konfigurieren.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;")
Ersetzen Sie die folgenden Werte:
NAMESPACE_NAME: der Name Ihres Namespace.TABLE_NAME: ein Name für Ihre Tabelle.
Wenn Sie die Lese-/Schreibinteroperabilität und Tabellenverwaltung (Vorschau) aktivieren möchten, fügen Sie die Attribute der TBLPROPERTIES-Klausel hinzu:
TBLPROPERTIES (
'gcp.biglake.bigquery-dml.enabled' = true,
'gcp.biglake.table-management.enabled' = true
)
Trino
CREATE TABLE SCHEMA_NAME.TABLE_NAME (id int, data varchar);
Ersetzen Sie die folgenden Werte:
SCHEMA_NAME: der Name Ihres Schemas.TABLE_NAME: ein Name für Ihre Tabelle.
Wenn Sie die Lese-/Schreibinteroperabilität und Tabellenverwaltung (Vorschau) aktivieren möchten, fügen Sie der WITH-Klausel die folgenden Attribute hinzu:
WITH (
"gcp.biglake.bigquery-dml.enabled" = 'true',
"gcp.biglake.table-management.enabled" = 'true'
)
gcloud
Führen Sie den Befehl gcloud biglake iceberg tables create aus, um eine Tabelle mit der Google Cloud CLI zu erstellen:
gcloud biglake iceberg tables create \
--project="PROJECT_ID" \
--catalog="CATALOG_ID" \
--namespace="NAMESPACE_NAME" \
--create-from-file="TABLE_DEFINITION_FILE"
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID in Google Cloud.CATALOG_ID: die ID Ihres Katalogs.NAMESPACE_NAME: der Name Ihres Katalog-Namespace.TABLE_DEFINITION_FILE: der Pfad zu einer JSON-Datei, die die Iceberg-Tabellendefinition enthält.
BigQuery
Verwenden Sie die folgende GoogleSQL-CREATE TABLE-Anweisung, um eine Apache Iceberg-Tabelle im Lakehouse-Laufzeitkatalog aus BigQuery zu erstellen. Wenn Sie eine Tabelle in BigQuery erstellen, sind BigQuery-DML und die Tabellenverwaltung standardmäßig aktiviert. Wenn Sie die automatische Tabellenverwaltung verwenden möchten, muss der Katalog den Modus für die Bereitstellung von Anmeldedaten verwenden.
CREATE TABLE `PROJECT_ID.CATALOG_ID.NAMESPACE.TABLE_NAME` (id int, data string);
Ersetzen Sie Folgendes:
PROJECT_ID: Ihre Projekt-ID in Google Cloud .CATALOG_ID: Ihre Lakehouse-Laufzeitkatalog-ID.NAMESPACE: der Name Ihres Iceberg-Namespace.TABLE_NAME: Ein Name für Ihre Iceberg-Tabelle.
REST
Wenn Sie eine Iceberg-Tabelle mit der REST API erstellen möchten, senden Sie eine POST-Anfrage an den Endpunkt CreateIcebergTable:
POST /iceberg/v1/restcatalog/v1/projects/PROJECT_ID/catalogs/CATALOG_ID/namespaces/NAMESPACE_NAME/tables
Der Anfragetext muss eine gültige Iceberg-CreateTableRequest-JSON-Nutzlast enthalten, die das Tabellenschema, die Partitionsspezifikation und die anfänglichen Attribute definiert.
Ersetzen Sie Folgendes:
PROJECT_ID: Projekt-ID in Google Cloud .CATALOG_ID: die ID Ihres Katalogs.NAMESPACE_NAME: der Name Ihres Katalog-Namespace.