Apache Iceberg-REST-Katalogendpunkt

Im grenzenlosen Lakehouse werden Metadaten über den Lakehouse-Laufzeitkatalog verwaltet. Wenn Sie den Endpunkt Apache Iceberg REST-Katalog verwenden, werden die Daten in einer strengen Ressourcenhierarchie organisiert. Die Katalogkonfiguration bestimmt die unterstützten Speichertypen und das regionale Routingverhalten.

Funktionen und Compliance

Der Lakehouse-Laufzeitkatalog ist für die Integration in Iceberg-kompatible Abfrage-Engines konzipiert. Er unterstützt Standardtabellenformate und entspricht offenen APIs.

Unterstützte Tabellenformate

Apache Iceberg-Tabellen der Version 2 (allgemein verfügbar) und Version 3 (Vorschau) werden unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Bevor Sie vorhandene V1-Tabellen mit dem Apache Iceberg-REST-Katalogendpunkt verwenden können, müssen Sie sie auf eine unterstützte Version aktualisieren. Weitere Informationen finden Sie unter Iceberg-Tabellen der Version 1 auf Version 2 aktualisieren.

API-Konformität und REST-Vorgänge

Der Lakehouse-Laufzeitkatalog implementiert den offenen Standard Apache Iceberg REST Catalog API. Client-Abfrage-Engines interagieren mit dem Katalog über standardmäßige REST-Katalog-APIs. Weitere Informationen finden Sie unter Implementierung der Apache Iceberg REST-Katalog-API in Lakehouse.

Ressourcenhierarchie

Der Apache Iceberg-REST-Katalogendpunkt verwendet eine Ressourcenhierarchie, um Ihre Daten zu organisieren. Die folgende Tabelle bietet einen allgemeinen Überblick über diese Ressourcen:

Ressource Beschreibung
Katalog Mit dem Container der obersten Ebene, einem Katalog, können Sie Namespaces und Tabellen in logischen Gruppen organisieren, indem Sie sie in verschiedene Kataloge aufteilen. Jeder Katalog wird durch bestimmte Data Warehouse-Speicherorte (z. B. einen oder mehrere Cloud Storage-Buckets) gesichert, in denen die zugrunde liegenden Metadaten und Datendateien gespeichert werden.
Namespace Eine logische Gruppierung, die zum Organisieren von Tabellen in einem Katalog verwendet wird. Sie funktioniert wie Datenbanken, Schemas oder Verzeichnisse.
Tabelle Tabellen enthalten Definitionen von Zeilen und Spalten, die abgefragt werden können.

Kataloge und Speicherorte

Die Konfiguration eines Katalogs bestimmt, wie er funktioniert und in Google Cloud-Dienste eingebunden wird. Sie können einen Katalog mit mehreren Buckets (empfohlen) oder einen Katalog mit einem einzelnen Bucket konfigurieren.

Beide Optionen unterstützen die Bereitstellung von Anmeldedaten.

Wenn Sie Client-Abfrage-Engines (z. B. Spark oder Trino) für die Verbindung zum Apache Iceberg REST-Katalogendpunkt konfigurieren, geben Sie den Warehouse-Pfad basierend auf dem Katalogtyp an:

  • Katalog mit mehreren Buckets: Legen Sie den Warehouse-Pfad auf bl://projects/PROJECT_ID/catalogs/CATALOG_ID fest.
  • Katalog mit einem Bucket: Legen Sie den Warehouse-Pfad auf gs://CLOUD_STORAGE_BUCKET_NAME fest.

Katalog mit mehreren Buckets (empfohlen)

So können Sie Ihren Katalog unabhängig von einem Bucket-Namen benennen und mehrere Buckets für einen einzelnen Katalog konfigurieren. In der zugrunde liegenden API entspricht dies der Konfiguration CATALOG_TYPE_BIGLAKE.

Wichtige Hinweise:

  • Client-Warehouse-Konfiguration (bl://): Wenn Sie einen Iceberg-Client für die Verbindung mit einem Katalog mit mehreren Buckets konfigurieren, geben Sie den Warehouse-Pfad im bl://-URI-Format an: bl://projects/PROJECT_ID/catalogs/CATALOG_ID. Das bl://-Format wird ausschließlich während der Clientkonfiguration verwendet, um den Katalog zu identifizieren. Beim Erstellen oder Konfigurieren des Katalogs in Google Cloud werden die Speicherorte (default_location und restricted_locations) immer als Cloud Storage-Pfade (gs://) angegeben.
  • Maximale Anzahl von Buckets: Sie können maximal 15 Buckets pro Katalog angeben.
  • Standardspeicherort: Sie geben einen Pfad zu einem Bucket (default_location) oder einem Unterpfad (z. B. gs://my-bucket/path) an, der als Standardspeicherort verwendet werden soll. Alle Katalogressourcen (Namespaces und Tabellen) müssen sich unter dem angegebenen Pfad befinden. Wenn Sie beispielsweise gs://my-bucket/path angeben, können Sie keine Namespaces oder Tabellen unter gs://my-bucket/another/path hosten. Für Namespaces, die ohne Angabe eines Standorts erstellt wurden, wird default_location verwendet.
  • Eingeschränkte Speicherorte: Sie können auch eine optionale restricted_locations-Konfiguration für zusätzliche Buckets oder Pfade angeben, in denen Namespaces und Tabellen erstellt werden können. Wenn Sie einen Unterpfad angeben (z. B. gs://my-bucket/path), müssen alle Ressourcen, die mit dieser Konfiguration erstellt werden, sich unter diesem Pfad befinden. Unter gs://my-bucket/another/path können beispielsweise keine Namespaces oder Tabellen gehostet werden.
  • Anforderungen an geografische Regionengruppen: Buckets können zwar projekt- und regionenübergreifend sein und unterschiedliche Konfigurationen haben (z. B. einzelne Region, biregional oder multiregional), aber alle Cloud Storage-Standorte im standardmäßigen Standort und in eingeschränkten Standorten müssen sich in derselben geografischen Regionengruppe befinden (z. B. USA, Europa, Kanada oder Asien). Sie können beispielsweise keinen multiregionalen Bucket in den USA mit einem Bucket in Europa oder Kanada konfigurieren.
  • Mehrere Kataloge pro Bucket: Sie können mehrere Kataloge auf denselben Bucket verweisen lassen, z. B. mit unterschiedlichen Standardstandorten oder eingeschränkten Standorten. Diese Konfiguration wird jedoch dringend abgeraten, da sie zu Metadatenkonflikten, unbeabsichtigten Datenüberschreibungen oder Sicherheitsproblemen wie Berechtigungslecks führen kann.
  • Namespaces: Ermöglichen die Angabe benutzerdefinierter Namespace-Speicherorte, sofern sie sich unter einem Pfad befinden, der in den Standard- oder eingeschränkten Speicherorten konfiguriert ist. Tabellen, die in diesen Katalogen erstellt werden, erhalten automatisch ein zufälliges String-Suffix für ihre physischen Pfade, um Konflikte zu vermeiden (z. B. gs://{bucket_name}/{namespace_name}/{table_name}/{random_suffix}). Weitere Informationen finden Sie unter Regeln für die Tabellenverwaltung und ‑sicherheit.

Katalog mit einem Bucket

Dies ist der Legacy-Ansatz, bei dem der Katalog Apache Iceberg-Metadaten und Datendateien direkt in einem einzelnen Cloud Storage-Bucket (gs://) verwaltet, den Sie angeben. In der zugrunde liegenden API entspricht dies der CATALOG_TYPE_GCS_BUCKET-Konfiguration.

Bei Katalogen mit einem Bucket wird der Katalognamen auf den Namen Ihres Buckets festgelegt.

Wenn Sie Ihren Bucket beispielsweise iceberg-bucket nennen, haben sowohl Ihr Katalog als auch Ihr Bucket diesen Namen. Verwenden Sie diesen Namen, wenn Sie Ihren Katalog in BigQuery mit der P.C.N.T.-Syntax abfragen, z. B. my-project.lakehouse-catalog-id.quickstart_namespace.quickstart_table.

Wichtige Hinweise:

  • Einschränkungen für alte Katalogtypen Die Verwendung der alten Konfiguration mit einem einzelnen Bucket wird für neue Projekte dringend abgeraten. Diese Konfiguration hat mehrere kritische Einschränkungen:

    • Katalogname: Entspricht dem Namen des zugrunde liegenden Cloud Storage-Bucket.
    • Projekt: Auf das Projekt des Buckets beschränkt (projektübergreifende Kataloge werden nicht unterstützt).
    • Region: Wird ausschließlich vom Standort des Buckets abgeleitet und kann nicht angepasst werden.
    • Speicher: Beschränkt Ihren Katalog auf einen einzelnen Bucket (keine eingeschränkten Standorte).
  • Client-Warehouse-Konfiguration (gs://): Wenn Sie einen Iceberg-Client für einen Single-Bucket-Katalog konfigurieren, geben Sie den Cloud Storage-Bucket-Pfad (gs://CLOUD_STORAGE_BUCKET_NAME) als Warehouse-Speicherort an.

  • Beschränkung auf einen Katalog pro Bucket: Bei diesem alten Katalogtyp ist nur ein Katalog pro Bucket möglich und der Katalogname muss mit dem Bucket-Namen übereinstimmen.

  • Auf einen Katalog mit mehreren Buckets upgraden (empfohlen): Sie können einen vorhandenen Katalog mit einem Bucket auf einen Katalog mit mehreren Buckets upgraden (empfohlen). Der Name des ursprünglichen Buckets bleibt im aktualisierten Katalog erhalten. Danach können Sie dem Katalog mehrere Buckets zuordnen und eingeschränkte Standorte konfigurieren.

Bucket- und Katalogregionen

Die Region eines Katalogendpunkts im Lakehouse-Laufzeitkatalog wird durch die Region des zugrunde liegenden Cloud Storage-Bucket bestimmt:

  • Katalog mit mehreren Buckets (empfohlen): Die Katalogregion wird aus dem in default_location konfigurierten Bucket abgeleitet.
  • Katalog mit einem Bucket: Die Katalogregion wird ausschließlich aus dem mit dem Katalog verknüpften Bucket abgeleitet und kann nicht angepasst werden.

Die zugeordnete Katalogregion variiert je nach Regionstyp des Buckets:

  • Einzelne Region: Die Katalogregion stimmt genau mit der Region des Buckets überein.
  • Dual-Region: Die Katalogregion entspricht der Dual-Region des Buckets (z. B. ASIA1 oder NAM4).
  • Mehrere Regionen: Die Katalogregion ist auf einen bestimmten regionalen Standort innerhalb des geografischen Bereichs der Region mit mehreren Regionen festgelegt. Standardmäßig stimmt dies möglicherweise nicht mit gängigen BigQuery-Multiregionen wie US und EU überein (z. B. wird ein US-Multiregionsbucket us-central1 oder us-east4 zugeordnet).

Wenn BigQuery eine Abfrage für Tabellen in diesen Katalogen ausführt, wird die Abfrage an die primäre Region des Katalogs weitergeleitet. Wenn Sie Tabellen in einer bestimmten virtuellen Region (z. B. US oder EU) abfragen und die Katalogmetadaten an diesem Standort nicht vorhanden sind, schlägt die Abfrage fehl.

Primäre Regionen für multiregionale Standorte

Damit BigQuery Ihre Katalogtabellen aus der Multi-Region US oder EU abfragen kann, geben Sie US oder EU als primäre Region an, wenn Sie den Katalog erstellen.

Sie können eine Multiregion (US oder EU) als primäre Region in den folgenden Konfigurationen angeben:

Wenn der Bucket default_location:

  • Ein US- oder EU-Multiregionen-Bucket.
  • Ein Bucket mit einer einzelnen Region innerhalb dieser Multiregionen (z. B. us-central1 oder europe-west4).
  • Ein Bucket vom Typ „Dual-Region“ oder „Benutzerdefinierte Dual-Region“ in diesen Bereichen (z. B. NAM4 oder EUR4).

Das primäre Replikat wird beim Erstellen des Katalogs definiert. Sie können jedoch durch Aufrufen von FailoverCatalog dynamisch ein Failover durchführen. Weitere Informationen finden Sie unter Katalog erstellen.

Wenn Sie Anfragen direkt an eine bestimmte Region weiterleiten möchten, um die Anforderungen an den Datenstandort und die Datenhoheit zu erfüllen, können Sie regionale Endpunkte (biglake.LOCATION.rep.googleapis.com) verwenden. Weitere Informationen finden Sie unter Regionale Lakehouse-Endpunkte.

Kataloge über BigQuery abfragen

Wenn Sie Tabellen des Lakehouse-Laufzeitkatalogs über BigQuery abfragen, verwenden Sie eine vierteilige Namensstruktur, die oft als P.C.N.T bezeichnet wird:

  • Project: Die Google Cloud Projekt-ID, zu der der Katalog gehört.
  • Catalog: Der Name des Lakehouse-Laufzeitkatalogs.
  • Namespace: Der Apache Iceberg-Namespace (entspricht einem BigQuery-Dataset).
  • Tabelle: Der Name der Tabelle.

Beispiel: my-project.lakehouse-catalog-id.my-namespace.my-table.

Weitere Informationen