Regionale Lakehouse-Endpunkte

In diesem Dokument wird beschrieben, wie Sie mit regionalen Private Service Connect-Endpunkten auf Ressourcen im Lakehouse-Laufzeitkatalog zugreifen können. Mit regionalen Endpunkten können Sie Ihre Arbeitslasten so ausführen, dass sie den Datenstandort- und Datenhoheitsanforderungen entsprechen, wobei Ihr Anfragetraffic direkt an die im Endpunkt angegebene Region weitergeleitet wird.

Übersicht

Bei regionalen Endpunkten werden Anfragen nur dann fortgesetzt, wenn die betroffene Katalogressource am vom Endpunkt angegebenen Standort vorhanden ist. Wenn Sie beispielsweise den Endpunkt https://biglake.us-central1.rep.googleapis.com verwenden, um auf einen Katalog, Namespace oder eine Tabelle zuzugreifen, wird die Anfrage nur fortgesetzt, wenn sich der Katalog in us-central1 befindet.

Im Gegensatz zu globalen Endpunkten, bei denen Anfragen an einen anderen Standort als dem der Ressource weitergeleitet werden können, beschränken regionale Endpunkte Ihre Anfragen auf den durch den Endpunkt angegebenen Standort (an dem sich die Ressource befindet). Regionale Endpunkte beenden TLS-Sitzungen (Transport Layer Security) an dem vom Endpunkt angegebenen Standort für Anfragen aus dem Internet, anderen Google Cloud -Ressourcen wie virtuellen Compute Engine-Maschinen, lokalen Diensten mit Cloud VPN oder Cloud Interconnect und Virtual Private Clouds (VPCs).

Regionale Endpunkte tragen dazu bei, den Datenstandort sicherzustellen, indem Ihre Kataloganfragen bei der Übertragung innerhalb des vom Endpunkt angegebenen Standorts bleiben. Weitere Informationen zum Umgang mit Dienstmetadaten finden Sie unter Hinweis zu Dienstdaten.

Die folgenden Katalogendpunkte im Lakehouse-Laufzeitkatalog können mit regionalen Endpunkten verwendet werden:

Katalogendpunkt Regionale Endpunkt-URL Referenz
Apache Iceberg-REST-Katalogendpunkt https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog REST
Apache Hive-Katalogendpunkt (Vorabversion) https://biglake.LOCATION.rep.googleapis.com/hive/v1 REST

Unterstützte Standorte

Sie können regionale Endpunkte mit dem Lakehouse-Laufzeitkatalog an den folgenden Standorten verwenden:

  • Asiatisch-pazifischer Raum

    • Delhi asia-south2
    • Mumbai (asia-south1)
  • Europa

    • Belgien europe-west1
    • Frankfurt (europe-west3)
    • London (europe-west2)
    • Mailand europe-west8
    • Niederlande europe-west4
    • Paris europe-west9
    • Zürich (europe-west6)
  • Naher Osten

    • Dammam me-central2
  • Nord- und Südamerika

    • Columbus, Ohio us-east5
    • Dallas us-south1
    • Iowa us-central1
    • Las Vegas (us-west4)
    • Los Angeles (us-west2)
    • Montreal (northamerica-northeast1)
    • Northern Virginia (us-east4)
    • Oregon us-west1
    • Salt Lake City (us-west3)
    • South Carolina (us-east1)
    • Toronto northamerica-northeast2

Unterstützte Vorgänge und Speicherorte

Regionale Endpunkte können nur verwendet werden, um Vorgänge auszuführen, die auf Katalogressourcen zugreifen oder diese mutieren, die am vom Endpunkt angegebenen Standort repliziert werden:

  • Regionale Katalogisolierung: Wenn Sie Kataloge über https://biglake.LOCATION.rep.googleapis.com auflisten, werden nur Kataloge zurückgegeben, die sich in LOCATION befinden. Anfragen zum Abrufen, Aktualisieren oder Löschen eines Katalogs, Namespace oder einer Tabelle außerhalb von LOCATION geben einen 404 NOT_FOUND-Fehler zurück.
  • Standardspeicherort: Wenn Sie einen Katalog mit einem regionalen Endpunkt erstellen, muss sich der in default_location angegebene Cloud Storage-Bucket für einen Katalog mit mehreren Buckets (CATALOG_TYPE_BIGLAKE) oder der mit einem Katalog mit einem einzelnen Bucket (CATALOG_TYPE_GCS_BUCKET) verknüpfte Bucket in LOCATION befinden.
  • Eingeschränkte Standorte für Kataloge mit mehreren Buckets: Bei Katalogen mit mehreren Buckets können Sie zusätzliche Cloud Storage-Buckets in restricted_locations konfigurieren, sofern sich diese Buckets in derselben geografischen Gerichtsbarkeit (z. B. USA oder Europa) wie LOCATION befinden. Weitere Informationen finden Sie unter Katalog mit mehreren Buckets.

Limits und Einschränkungen

Regionale Endpunkte können nicht für die folgenden Vorgänge verwendet werden:

  • Vorgänge, mit denen Kataloge, Namespaces oder Tabellen gelesen oder geändert werden, die sich außerhalb der vom Endpunkt angegebenen Region befinden.
  • Multiregionales Endpunkt-Routing (z. B. US oder EU). Bei regionalen Endpunkten muss eine einzelne Region angegeben werden.

Beachten Sie bei der Verwendung regionaler Endpunkte die folgenden Einschränkungen:

Tools und Abfrage-Engines konfigurieren

Sie können die Google Cloud CLI, Apache Spark, Trino und direkte REST API-Anfragen so konfigurieren, dass regionale Endpunkte verwendet werden.

gcloud-CLI

Wenn Sie die gcloud CLI so konfigurieren möchten, dass regionale Endpunkte mit gcloud biglake-Befehlen verwendet werden, legen Sie das Attribut api_endpoint_overrides/biglake auf den regionalen Endpunkt fest, den Sie verwenden möchten:

gcloud config set api_endpoint_overrides/biglake https://biglake.LOCATION.rep.googleapis.com/

Alternativ können Sie die Umgebungsvariable CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE für einzelne Befehle festlegen:

CLOUDSDK_API_ENDPOINT_OVERRIDES_BIGLAKE=https://biglake.LOCATION.rep.googleapis.com/ \
    gcloud biglake iceberg catalogs list --project=PROJECT_ID

Ersetzen Sie Folgendes:

  • LOCATION: Die unterstützte Region für Ihren Katalog, z. B. us-central1.
  • PROJECT_ID: Projekt-ID in Google Cloud .

Apache Spark

Wenn Sie eine Spark-Sitzung für die Verbindung zum Apache Iceberg-REST-Katalogendpunkt konfigurieren, legen Sie das Attribut spark.sql.catalog.CATALOG_NAME.uri auf die regionale Endpunkt-URL fest:

from pyspark.sql import SparkSession

catalog_name = "CATALOG_NAME"
spark = SparkSession.builder.appName("APP_NAME") \
    .config('spark.sql.defaultCatalog', 'CATALOG_NAME') \
    .config(f'spark.sql.catalog.{catalog_name}', 'org.apache.iceberg.spark.SparkCatalog') \
    .config(f'spark.sql.catalog.{catalog_name}.type', 'rest') \
    .config(f'spark.sql.catalog.{catalog_name}.uri', 'https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog') \
    .config(f'spark.sql.catalog.{catalog_name}.warehouse', 'bl://projects/PROJECT_ID/catalogs/CATALOG_ID') \
    .config(f'spark.sql.catalog.{catalog_name}.header.x-goog-user-project', 'PROJECT_ID') \
    .config(f'spark.sql.catalog.{catalog_name}.rest.auth.type', 'org.apache.iceberg.gcp.auth.GoogleAuthManager') \
    .config(f'spark.sql.catalog.{catalog_name}.io-impl', 'org.apache.iceberg.gcp.gcs.GCSFileIO') \
    .config(f'spark.sql.catalog.{catalog_name}.header.X-Iceberg-Access-Delegation', 'vended-credentials') \
    .config('spark.sql.extensions', 'org.apache.iceberg.spark.extensions.IcebergSparkSessionExtensions') \
    .getOrCreate()

Ersetzen Sie Folgendes:

  • CATALOG_NAME: Ein Name für den lokalen Spark-Katalog, z. B. my_catalog.
  • APP_NAME: Ein Name für Ihre Spark-Sitzung.
  • LOCATION: die unterstützte Region, in der sich der Katalog befindet, z. B. us-central1.
  • PROJECT_ID: Projekt-ID in Google Cloud .
  • CATALOG_ID: die ID Ihres Katalogs mit mehreren Buckets.

Weitere Konfigurationsoptionen finden Sie unter Apache Iceberg-REST-Katalogendpunkt einrichten.

Trino

Wenn Sie einen Managed Service for Apache Spark-Cluster mit der Trino-Komponente erstellen, legen Sie trino-catalog:CATALOG_NAME.iceberg.rest-catalog.uri auf die regionale Endpunkt-URL fest:

gcloud dataproc clusters create CLUSTER_NAME \
    --enable-component-gateway \
    --region=LOCATION \
    --image-version=DATAPROC_VERSION \
    --network=NETWORK_ID \
    --optional-components=TRINO \
    --properties="\
    trino-catalog:CATALOG_NAME.connector.name=iceberg,\
    trino-catalog:CATALOG_NAME.iceberg.catalog.type=rest,\
    trino-catalog:CATALOG_NAME.iceberg.rest-catalog.uri=https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog,\
    trino-catalog:CATALOG_NAME.iceberg.rest-catalog.warehouse=bl://projects/PROJECT_ID/catalogs/CATALOG_ID,\
    trino-catalog:CATALOG_NAME.iceberg.rest-catalog.biglake.project-id=PROJECT_ID,\
    trino-catalog:CATALOG_NAME.iceberg.rest-catalog.rest.auth.type=org.apache.iceberg.gcp.auth.GoogleAuthManager"

Ersetzen Sie Folgendes:

  • CLUSTER_NAME: ein Name für Ihren Cluster.
  • LOCATION: die unterstützte Region für Ihren Cluster und Katalog.
  • DATAPROC_VERSION: die Image-Version von Managed Service for Apache Spark (z. B. 2.2).
  • NETWORK_ID: die Cluster-Netzwerk-ID.
  • CATALOG_NAME: der Name Ihres Trino-Katalogs.
  • PROJECT_ID: Projekt-ID in Google Cloud .
  • CATALOG_ID: die ID Ihres Katalogs mit mehreren Buckets.

REST APIs

Senden Sie die REST-Anfrage nicht an den globalen Endpunkt (https://biglake.googleapis.com), sondern an den regionalen Endpunkt im folgenden Format: https://biglake.LOCATION.rep.googleapis.com.

So listen Sie beispielsweise Kataloge in LOCATION mit der Apache Iceberg REST-Katalogendpunkt-Erweiterungs-API auf:

curl -X GET \
    -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    -H "x-goog-user-project: PROJECT_ID" \
    "https://biglake.LOCATION.rep.googleapis.com/iceberg/v1/restcatalog/extensions/projects/PROJECT_ID/catalogs"

Nutzung globaler API-Endpunkte einschränken

Um die Verwendung regionaler Endpunkte zu erzwingen, können Sie die Einschränkung der Organisationsrichtlinie constraints/gcp.restrictEndpointUsage verwenden, um Anfragen an den globalen API-Endpunkt (biglake.googleapis.com) zu blockieren. Weitere Informationen finden Sie unter Endpunktnutzung einschränken.

Die folgende YAML-Datei für Organisationsrichtlinien lehnt Anfragen an den globalen biglake.googleapis.com-Endpunkt ab, während Anfragen an regionale Endpunkte zugelassen werden:

name: projects/PROJECT_ID/policies/gcp.restrictEndpointUsage
spec:
  rules:
  - values:
      deniedValues:
      - under:services/biglake.googleapis.com

Nächste Schritte