Apache Iceberg-REST-Katalogendpunkt

Borderless Lakehouse verwaltet Metadaten über den Lakehouse-Laufzeitkatalog. 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 wurde für die Integration in Iceberg-kompatible Abfrage-Engines entwickelt. Er unterstützt Standardtabellenformate und entspricht offenen APIs.

Unterstützte Tabellenformate

Apache Iceberg V2-Tabellen (allgemeine Verfügbarkeit) und V3-Tabellen (Vorschau) werden unterstützt. Iceberg V1-Tabellen werden nicht unterstützt. Bevor Sie vorhandene V1-Tabellen mit dem Apache Iceberg REST-Katalogendpunkt verwenden, müssen Sie sie auf eine unterstützte Version aktualisieren. Weitere Informationen finden Sie unter Iceberg V1-Tabellen auf V2 aktualisieren.

API-Compliance und REST-Vorgänge

Der Lakehouse-Laufzeitkatalog implementiert die offene Standard-API Apache Iceberg REST-Katalog. Client-Abfrage-Engines interagieren mit dem Katalog über Standard-REST-Katalog-APIs. Weitere Informationen finden Sie unter Apache Iceberg REST-Katalog-API in Lakehouse implementieren.

Ressourcenhierarchie

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

Ressource Beschreibung
Katalog Der Container der obersten Ebene. Mit einem Katalog können Sie Namespaces und Tabellen in logischen Gruppen organisieren, indem Sie sie in verschiedene Kataloge aufteilen. Jeder Katalog wird durch bestimmte Warehouse-Speicherorte (z. B. einen oder mehrere Cloud Storage-Buckets) gesichert, in denen die zugrunde liegenden Metadaten und Datendateien gespeichert sind.
Namespace Eine logische Gruppierung, mit der Tabellen in einem Katalog organisiert werden. 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 Bucket konfigurieren.

Beide Optionen unterstützen die Anmeldedatenbereitstellung.

Wenn Sie Client-Abfrage-Engines (z. B. Spark oder Trino) für die Verbindung mit dem 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)

Mit diesem Ansatz 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 CATALOG_TYPE_BIGLAKE Konfiguration.

Hinweise :

  • Warehouse-Konfiguration des Clients (bl://): Wenn Sie einen Iceberg-Client für die Verbindung mit einem Katalog mit mehreren Buckets konfigurieren, geben Sie den Warehouse Pfad im URI-Format bl:// an: bl://projects/PROJECT_ID/catalogs/CATALOG_ID. Das Format bl:// wird ausschließlich bei der Clientkonfiguration verwendet, um den Katalog zu identifizieren. Wenn Sie den Katalog selbst in Google Cloud erstellen oder konfigurieren, 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 einen Unterpfad (z. B. gs://my-bucket/path) als Standardspeicher ort an. 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 angegebenen Speicherort erstellt wurden, wird default_location verwendet.
  • Eingeschränkte Speicherorte: Sie können optional auch eine 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 sich alle Ressourcen, die mit dieser Konfiguration erstellt wurden, unter diesem Pfad befinden (z. B. können unter gs://my-bucket/another/path keine Namespaces oder Tabellen gehostet werden).
  • Anforderungen an geografische Regionsgruppen: Obwohl Buckets projekt- und regionsübergreifend sein und unterschiedliche Konfigurationen haben können (z. B. einzelne Region, biregional oder multiregional), müssen sich alle Cloud Storage-Standorte sowohl am standardmäßigen Standort als auch an den eingeschränkten Speicherorten in derselben geografischen Regionsgruppe 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 Standardspeicherorten oder eingeschränkten Speicherorten). Diese Konfiguration wird jedoch dringend abgeraten, da sie zu Metadatenkonflikten, versehentlichem Überschreiben von Daten oder Sicherheitsproblemen wie dem Verlust von Berechtigungen führen kann.
  • Namespaces: ermöglichen die Angabe benutzerdefinierter Namespace-Speicherorte, sofern sich diese unter einem Pfad befinden, der in den Standardspeicherorten oder eingeschränkten Speicherorten konfiguriert ist. Tabellen, die in diesen Katalogen erstellt wurden, haben automatisch ein zufälliges String Suffix an ihren physischen Pfaden angehängt, um Konflikte zu vermeiden (z. B. gs://{bucket_name}/{namespace_name}/{table_name}/{random_suffix}). Weitere Informationen finden Sie unter Tabellenverwaltung und Sicherheits regeln.

Katalog mit einem Bucket

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

Bei Katalogen mit einem Bucket wird der Katalogname 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.

Hinweise :

  • Einschränkungen des Legacy-Katalogtyps. Die Verwendung der Legacy-Konfiguration mit einem Bucket wird für neue Projekte dringend abgeraten. Diese Konfiguration hat mehrere kritische Einschränkungen:

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

  • Einschränkung: Ein Katalog pro Bucket: Bei diesem Legacy-Katalogtyp kann es nur einen Katalog pro Bucket geben und der Katalogname muss mit dem Bucket-Namen übereinstimmen.

  • Upgrade auf einen Katalog mit mehreren Buckets (empfohlen): Sie können einen vorhandenen Katalog mit einem Bucket aktualisieren auf einen Katalog mit mehreren Buckets (empfohlen). Der aktualisierte Katalog behält den Namen des ursprünglichen Buckets bei. Danach können Sie mehrere Buckets mit dem Katalog verknüpfen und eingeschränkte Speicherorte 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 abgeleitet vom Bucket, der in default_location konfiguriert ist.
  • Katalog mit einem Bucket: Die Katalogregion wird ausschließlich vom Bucket abgeleitet, der mit dem Katalog verknüpft ist, 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.
  • Duale Region: Die Katalogregion stimmt mit der dualen Region des Buckets überein (z. B. ASIA1 oder NAM4).
  • Multiregion: Die Katalogregion wird auf einen bestimmten regionalen Standort innerhalb der geografischen Domain der Multiregion festgelegt. Standardmäßig stimmt dies möglicherweise nicht mit gängigen multiregionalen BigQuery-Standorten wie US und EU überein (z. B. wird ein multiregionaler Bucket in den US der Region 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 nicht an diesem Standort vorhanden sind, schlägt die Abfrage fehl.

Primäre Regionen für multiregionale Standorte

Damit BigQuery Ihre Katalogtabellen aus der Multiregion US oder EU abfragen kann, geben Sie beim Erstellen des Katalogs US oder EU als primäre Region an.

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

Wenn der default_location-Bucket Folgendes ist:

  • Ein multiregionaler Bucket in den US oder der EU.
  • Ein Bucket mit einer einzelnen Region innerhalb dieser Multiregionen (z. B. us-central1 oder europe-west4).
  • Ein Bucket mit einer dualen Region oder einer benutzerdefinierten dualen Region in diesen Bereichen (z. B. NAM4 oder EUR4).

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

Kataloge aus BigQuery abfragen

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

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

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

Weitere Informationen