Cloud-übergreifendes Lakehouse für Databricks Unity Catalog einrichten

In diesem Dokument wird beschrieben, wie Sie ein cloudübergreifendes Lakehouse einrichten, um Daten aus einem Databricks Unity Catalog-Katalog direkt inGoogle Cloudabzufragen. Mit dieser Funktion können Sie Ihre Datenanalyse vereinheitlichen, indem Sie Ihre externen Datenquellen in Ihre bestehendeGoogle Cloud -Umgebung einbinden.

Anschließend können Sie Lakehouse for Apache Iceberg verwenden, um den Zugriff auf Ihre föderierten Daten zu verwalten.

Hinweis

  1. Lesen Sie den Lakehouse-Überblick, um zu verstehen, wie der Zugriff auf Daten verwaltet wird.
  2. Informationen zu Cross-Cloud-Lakehouse
  3. Sehen Sie sich die unterstützten Kataloge an, um die Anforderungen für externe Standorte und die unterstützten Konfigurationen zu prüfen.
  4. Regionale Secrets von Secret Manager verwenden Dies ist erforderlich, um ein cloudübergreifendes Lakehouse mit Databricks Unity Catalog einzurichten.
  5. Generieren Sie in Ihrem Remote-Kataloganbieter einen OAuth-Dienstprinzipal (Client-ID und Clientschlüssel) mit Lesezugriff auf den Zielkatalog. Dieser Vorgang wird in dieser Dokumentation nicht beschrieben.
  6. Optional: Wenn Sie Anfragen über eine private Verbindung zwischen Ihrer Google Cloud VPC und der VPC Ihres Remote-Cloud-Anbieters (z. B. AWS) weiterleiten möchten, müssen Sie ein aktives Konto bei Ihrem Remote-Anbieter haben, eine Cross-Cloud Interconnect- oder Partner Interconnect-Verbindung bereitstellen, BGP-Sitzungen mit Ihrem Cloud Router einrichten und prüfen, ob Sie in beiden Cloud-Umgebungen die erforderlichen IAM-Berechtigungen haben.
  7. Melden Sie sich in Ihrem Google Cloud -Konto an. Wenn Sie mit Google Cloudnoch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  8. Verify that billing is enabled for your Google Cloud project.

  9. Enable the BigLake, Secret Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  10. Verify that billing is enabled for your Google Cloud project.

  11. Enable the BigLake, Secret Manager APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Einrichten eines cloudübergreifenden Lakehouse benötigen:

  • Lakehouse-Kataloge verwalten: BigLake-Administrator (roles/biglake.admin)
  • Secrets verwalten: Secret Manager-Administrator (roles/secretmanager.admin)
  • Traffic über Private Interconnect weiterleiten: Compute-Netzwerkadministrator (roles/compute.networkAdmin), Service Directory-Betrachter (roles/servicedirectory.viewer) und autorisierter Service für Service Directory PSC (roles/servicedirectory.pscAuthorizedService)

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.

Unterstützte Katalogdetails

In dieser Anleitung wird beschrieben, wie Sie ein cloudübergreifendes Lakehouse mit einem Databricks Unity Catalog-Katalog in Amazon Web Services (AWS) oder Google Cloudeinrichten. Detaillierte Informationen zu den Anforderungen an externe Speicherorte und zu unterstützten Konfigurationen finden Sie unter Unterstützte Kataloge.

Einschränkungen und Überlegungen

In diesem Abschnitt werden die Einschränkungen und Überlegungen für die Verwendung von Cross-Cloud-Lakehouse aufgeführt.

  • Unterstützte Cloud-Anbieter:Die Verwendung einer privaten Interconnect-Verbindung mit Ihrem cloudübergreifenden Lakehouse wird für die folgenden Remote-Cloud-Anbieter unterstützt: Amazon Web Services (AWS). Sie können entweder eine Cross-Cloud Interconnect- oder eine Partner Interconnect-Verbindung verwenden.
  • Es werden nur Databricks Unity Catalog-Kataloge unterstützt, die einen externen Speicherort in AWS oder einen externen Speicherort in Google Cloud verwenden. Unity Catalog-Kataloge, die Standardspeicher in AWS oder Standardspeicher in Google Cloud verwenden, werden nicht unterstützt.
  • Sie müssen den externen Datenzugriff für den von Unity Catalog verwendeten Metastore aktivieren. Er ist standardmäßig deaktiviert.
  • Netzwerkrouting:Wenn keine private Interconnect-Verbindung (z. B. eine vom Kunden betriebene CCI- oder Partner Interconnect-Verbindung) konfiguriert ist, werden Anfragen über das öffentliche Internet weitergeleitet. Dies kann zu höheren Gebühren für ausgehenden Traffic von Ihrem Remote-Cloud-Anbieter und zu einer weniger vorhersehbaren Leistung führen.
  • Datenaktualität:Das --refresh-interval-Flag für den föderierten Katalog bestimmt, wie oft Metadaten synchronisiert werden. Ein kürzeres Intervall liefert aktuellere Daten, kann aber zusätzliche API-Kosten beim Remote-Kataloganbieter verursachen.
  • Berichterstellung für Iceberg-Messwerte:Berichterstellung für Iceberg-Messwerte ist für föderierte Kataloge nicht verfügbar. Legen Sie die Eigenschaft rest-metrics-reporting-enabled in Ihrem Iceberg-Client auf false fest, wenn Sie auf einen föderierten Katalog zugreifen.

Allgemeiner Workflow

So richten Sie ein cloudübergreifendes Lakehouse ein und verwenden es:

  • Cross-Cloud Interconnect einrichten (optional): Konfigurieren Sie eine private Verbindung zwischen Ihrer Google Cloud VPC und Ihrem Remote-Cloud-Anbieter.
  • Föderation einrichten:Erstellen Sie in Secret Manager ein Secret mit den Anmeldedaten für Ihren Remote-Katalog. Erstellen Sie dann einen föderierten Katalog in Lakehouse und gewähren Sie ihm Zugriff auf das Secret.
  • Verbindung prüfen:Prüfen Sie, ob Lakehouse eine Verbindung zu Ihrem Remote-Katalog herstellen kann.
  • Daten abfragen:Führen Sie mit BigQuery oder Managed Service for Apache Spark Abfragen für Ihre föderierten Daten aus. Weitere Informationen finden Sie unter Cross-Cloud-Lakehouse verwenden.
  • Berechtigungen konfigurieren:Mit Identity and Access Management (IAM) können Sie verwalten, wer die föderierten Daten ansehen und abfragen darf.

Cross-Cloud Interconnect einrichten (optional)

Abfragen an Ihren Remote-Katalog werden standardmäßig über das öffentliche Internet gesendet. Um die Sicherheit und Compliance zu verbessern, eine vorhersehbare Leistung zu erzielen und die Kosten für die Datenübertragung zu senken, sollten Sie eine private Interconnect-Verbindung verwenden. Dadurch wird eine dedizierte private Netzwerkverbindung zwischen Ihrer Google CloudVPC (Virtual Private Cloud) und dem Netzwerk Ihres Remote-Cloudanbieters (z. B. AWS) hergestellt.

Sie können eine der folgenden privaten Interconnect-Optionen zwischen Ihrer Google Cloud VPC und der VPC Ihres Remote-Cloudanbieters (z. B. AWS) bereitstellen und konfigurieren:

Richten Sie BGP-Sitzungen zwischen Ihrem Cloud Router in Google Cloud und der VPC Ihres Remote-Cloud-Anbieters ein, um den Routenaustausch zu ermöglichen.

Wenn Sie private Abfragen aktivieren möchten, müssen Sie über Ihre private Verbindung einen Pfad vom Lakehouse zu Ihrem Remote-Speicher-Bucket (z. B. einem AWS Amazon S3-Bucket) konfigurieren. Es gibt zwei Architekturabläufe, die Sie für die Konfiguration dieses Routings verwenden können:

  • Routing mit internem regionalen Proxy-Network-Load-Balancer:Bei diesem Ablauf wird einGoogle Cloud interner regionaler Proxy-Network-Load-Balancer verwendet, um Anfragen auf Hybridkonnektivitäts-NEGs (Network Endpoint Groups) zu verteilen, die auf mehrere AWS Elastic Network Interfaces (ENIs) verweisen. Dieser Ablauf ist für Load Balancing, Skalierbarkeit und Hochverfügbarkeit unerlässlich. Sie ist für Partner Interconnect erforderlich und wird für Cross-Cloud Interconnect für Lastenausgleich, Skalierbarkeit und Hochverfügbarkeit empfohlen.
  • Direktes Endpunktrouting:Bei diesem Ablauf wird Service Directory direkt mit einer einzelnen IP-Adresse des AWS-Schnittstellen-VPC-Endpunkts verbunden. Dieser Ablauf funktioniert nur für Cross-Cloud Interconnect und wird für Partner Interconnect nicht unterstützt.

Wählen Sie den Konfigurationsablauf aus, der Ihren Architekturanforderungen entspricht:

Interner regionaler Proxy-Network Load Balancer

So konfigurieren Sie einen internen regionalen Proxy-Network Load Balancer, um Anfragen für Hochverfügbarkeit und Lastenausgleich auf mehrere AWS-ENIs zu verteilen:

AWS-Netzwerk konfigurieren

Erstellen Sie zuerst einen Amazon S3-VPC-Schnittstellenendpunkt (AWS PrivateLink):

  1. Erstellen Sie in der AWS-VPC-Konsole einen Schnittstellenendpunkt für Amazon S3.
  2. Geben Sie als Dienstname com.amazonaws.<var>AWS_REGION</var>.s3 an.
  3. Wählen Sie die VPC und die Subnetze aus, die über Direct Connect mit Ihrer Google Cloud VPC verbunden sind.
  4. Hängen Sie Sicherheitsgruppen an den Endpunkt an, um den eingehenden Zugriff zu steuern.
  5. Dadurch werden Elastic Network Interfaces (ENIs) in jedem ausgewählten Subnetz bereitgestellt. Notieren Sie sich die privaten IP-Adressen dieser ENIs.

Konfigurieren Sie als Nächstes Sicherheitsgruppen:

  • Prüfen Sie, ob die Sicherheitsgruppe(n), die an die Amazon S3-Endpunkt-ENIs angehängt sind, eingehenden TCP-Traffic auf Port 443 aus den relevanten IP-Bereichen Ihrer Google Cloud VPC zulassen.

Netzwerk Google Cloud konfigurieren

Folgen Sie der Anleitung zum Einrichten eines internen regionalen Proxy-Network Load Balancers für Hybridendpunkte.

Achten Sie beim Befolgen der Anleitung auf Folgendes:

  • Erstellen Sie Hybridkonnektivitäts-NEGs (NON_GCP_PRIVATE_IP_PORT) und fügen Sie die privaten IP-Adressen Ihrer zuvor erstellten AWS-ENIs hinzu.
  • Verwenden Sie den TCP-Port 443 für die NEGs, die Systemdiagnose und die Weiterleitungsregel.
  • Richten Sie den Load Balancer in derselben Google Cloud Region wie Ihren föderierten Katalog ein.

Notieren Sie sich nach dem Erstellen der Weiterleitungsregel für den Load Balancer die ihm zugewiesene interne IP-Adresse. Das ist dein ILB_IP_ADDRESS.

Service Directory konfigurieren

Registrieren Sie die IP-Adresse des internen Lastenausgleichs in Service Directory, damit Lakehouse sie erkennen kann.

  1. Erstellen Sie einen Namespace für Ihre Remote-Cloud:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ersetzen Sie Folgendes:

    • NAMESPACE: Eine eindeutige Kennung für Ihren Namespace.
    • PROJECT_ID: Ihre Google Cloud Projekt-ID.
    • REGION: die Google Cloud Region. Beispiel: us-east4. Diese muss mit der Region des föderierten Katalogs übereinstimmen.
  2. Erstellen Sie einen Dienst im Service Directory-Namespace:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: Eine eindeutige Kennung für Ihren Dienst.
  3. Erstellen Sie einen Endpunkt für den ILB im Dienst:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --project=PROJECT_ID \
        --namespace=NAMESPACE \
        --service=SERVICE_NAME \
        --location=REGION \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK \
        --address=ILB_IP_ADDRESS \
        --port=443

    Ersetzen Sie Folgendes:

    • ENDPOINT_NAME: Eine eindeutige Kennung für Ihren Endpunkt.
    • PROJECT_NUMBER: Ihre Google Cloud-Projektnummer. Verwenden Sie Ihre Projektnummer im --network-Flag.
    • ILB_IP_ADDRESS: die interne IP-Adresse Ihrer ILB-Weiterleitungsregel.

Direkter Endpunkt

So konfigurieren Sie Service Directory, um Traffic direkt an eine einzelne IP-Adresse eines AWS-Schnittstellen-VPC-Endpunkts weiterzuleiten:

  1. Erstellen Sie einen Interface VPC Endpoint für Amazon S3 in Ihrer AWS-VPC. Notieren Sie sich die IP-Adresse und den Port dieses Endpunkts.
  2. Erstellen Sie einen Namespace für Ihre Remote-Cloud:

    gcloud service-directory namespaces create NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ersetzen Sie Folgendes:

    • NAMESPACE: Eine eindeutige Kennung für Ihren Namespace.
    • PROJECT_ID: Ihre Google Cloud Projekt-ID.
    • REGION: die Google Cloud Region. Beispiel: us-east4. Diese muss mit der Region des föderierten Katalogs übereinstimmen.
  3. Erstellen Sie einen Dienst im Service Directory-Namespace:

    gcloud service-directory services create SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION

    Ersetzen Sie Folgendes:

    • SERVICE_NAME: Eine eindeutige Kennung für Ihren Dienst.
  4. Erstellen Sie einen Endpunkt im Dienst, der die Routinginformationen für Ihren Amazon S3-Schnittstellen-VPC-Endpunkt enthält:

    gcloud service-directory endpoints create ENDPOINT_NAME \
        --service=SERVICE_NAME \
        --namespace=NAMESPACE \
        --project=PROJECT_ID \
        --location=REGION \
        --address=S3_VPCE_IP_ADDRESS \
        --port=S3_VPCE_PORT \
        --network=projects/PROJECT_NUMBER/global/networks/VPC_NETWORK

    Ersetzen Sie Folgendes:

    • ENDPOINT_NAME: Eine eindeutige Kennung für Ihren Endpunkt.
    • S3_VPCE_IP_ADDRESS: die IP-Adresse Ihres Amazon S3-Schnittstellen-VPC-Endpunkts. Beispiel: 10.0.1.45.
    • S3_VPCE_PORT: die Portnummer Ihres Amazon S3-Schnittstellen-VPC-Endpunkts. Beispiel: 443.
    • PROJECT_NUMBER: Ihre Google Cloud-Projektnummer. Verwenden Sie Ihre Projektnummer im --network-Flag.
    • VPC_NETWORK: der Name des Google Cloud VPC-Netzwerks, das mit Ihrer privaten Interconnect-Verbindung verknüpft ist.

Föderation einrichten

Wenn Sie Ihre Daten abfragen möchten, müssen Sie einen föderierten Lakehouse-Katalog einrichten, der mit Ihrem Remote-Katalog verbunden ist.

Regionales Secret erstellen

Für die Föderation sind Anmeldedaten für den Zugriff auf den Remote-Katalog erforderlich. Lakehouse verwendet regionale Secret Manager-Secrets, um diese Anmeldedaten sicher zu speichern und abzurufen, damit die Authentifizierung bei Ihrem Remote-Anbieter erfolgen kann.

Für Databricks müssen Sie einen Dienstprinzipal in Ihrem Databricks-Konto erstellen und eine OAuth-Client-ID und einen Clientschlüssel generieren. Prüfen Sie, ob dieser Dienstprinzipal Lesezugriff auf den Zielkatalog des Unity Catalog hat. Formatieren Sie diese Anmeldedaten dann als JSON-Nutzlast, die in Secret Manager gespeichert werden soll.

  1. Erstellen Sie eine JSON-Datei mit dem Namen credentials.json und Ihrer Nutzlast:

    {
      "client_id": "CLIENT_ID",
      "client_secret": "CLIENT_SECRET"
    }

    Ersetzen Sie Folgendes:

    • CLIENT_ID: Die OAuth-Client-ID für Ihr Databricks-Diensthauptkonto.
    • CLIENT_SECRET: Der OAuth-Clientschlüssel für Ihren Databricks-Dienstprinzipal.
  2. Konfigurieren Sie den regionalen Endpunkt für Secret Manager:

    Standardmäßig verwendet Secret Manager einen globalen Endpunkt. Für Cross-Cloud-Lakehouse müssen Ihre Secrets jedoch in derselben Region wie Ihr Lakehouse-Katalog gespeichert werden. Wenn Sie mit regionalen Secrets über die gcloud-Befehlszeile interagieren möchten, müssen Sie den Standard-API-Endpunkt für Ihre aktuelle Sitzung oder Ihr Profil überschreiben. Um Verbindungsprobleme zu vermeiden, müssen Ihr Secret und Ihr Katalog in derselben Region erstellt werden. Beispiel: secretmanager.us-east4.rep.googleapis.com.

    gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/

    Ersetzen Sie Folgendes:

    • REGION: Die Google Cloud Region, in der Ihr Secret Manager-Secret gespeichert ist. Beispiel: us-east4 Damit Verbindungsprobleme vermieden werden, müssen Ihr Secret und Ihr Katalog in derselben Region erstellt werden. Beispiel: secretmanager.us-east4.rep.googleapis.com.
  3. Laden Sie die Nutzlast in Secret Manager hoch:

    gcloud secrets create DATABRICKS_SECRET_NAME \
      --location="REGION" \
      --project="PROJECT_ID" \
      --data-file=credentials.json

    Ersetzen Sie Folgendes:

    • DATABRICKS_SECRET_NAME: Ein Name für Ihr Databricks-Secret.

Föderierten Katalog erstellen

Erstellen Sie den föderierten Katalog mit dem Befehl gcloud biglake iceberg catalogs create.

Console

  1. Rufen Sie in der Google Cloud Console Lakehouse auf.

    Lakehouse aufrufen

  2. Klicken Sie auf Katalog erstellen.

  3. Klicken Sie auf Föderierter Katalog.

    Die Details zur Katalogkonfiguration werden angezeigt.

  4. Wählen Sie für Quelle des föderierten Katalogs die Option Unity (Databricks) aus.

  5. Wählen Sie bei Data location (Speicherort der Daten) die Lakehouse-Region aus, in der Sie den föderierten Katalog erstellen möchten. Beispiel: us-east4. So minimieren Sie die Latenz (auch über das öffentliche Internet), wenn Sie eine Region auswählen:

    • Wenn sich Ihr Unity Catalog-Katalog in AWS befindet, wählen Sie dieGoogle Cloud -Region aus, die Ihrer AWS-Region am nächsten ist.
    • Wenn sich Ihr Unity Catalog-Katalog in Google Cloudbefindet, wählen Sie genau dieselbe Region aus.
  6. Klicken Sie auf Weiter.

    Die Verbindungsdetails werden angezeigt.

  7. Geben Sie im Bereich Details zum Remote-Katalog im Feld Name der Unity-Instanz den Namen Ihrer Ziel-Databricks-Instanz ein. Beispiel: abcd.cloud.databricks.com.

  8. Geben Sie im Feld Unity-Katalogname den Namen des Zielkatalogs für die Föderation in Databricks Unity Catalog ein.

  9. Geben Sie im Abschnitt Authentifizierung und Netzwerk im Feld Secret den Namen Ihres Databricks-Secrets ein. Verwenden Sie das folgende Format: projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME.

  10. Optional: Geben Sie im Feld Name des Service Directory den Pfad zu Ihrem Service Directory-Dienst ein. Beispiel: projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME Dies ist nur erforderlich, wenn Sie eine Cross-Cloud Interconnect-Verbindung konfigurieren.

  11. Klicken Sie auf Erstellen.

gcloud-CLI

Öffentliches Internet (kein CCI)

Wenn Sie CCI nicht konfigurieren, wird die Verbindung sicher über das öffentliche Internet übertragen.

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • REGION: die Lakehouse-Region, in der der föderierte Katalog erstellt wird. Beispiel: us-east4. So minimieren Sie die Latenz bei der Auswahl einer Region:
    • Wenn sich Ihr Unity Catalog-Katalog in AWS befindet, wählen Sie dieGoogle Cloud -Region aus, die Ihrer AWS-Region am nächsten ist.
    • Wenn sich Ihr Unity Catalog-Katalog in Google Cloudbefindet, wählen Sie genau dieselbe Region aus.
  • DATABRICKS_SECRET_NAME: der Name Ihres Databricks-Secrets.
  • UNITY_INSTANCE_NAME: Der Name Ihrer Databricks-Zielinstanz. Beispiel: abcd.cloud.databricks.com
  • UNITY_CATALOG_NAME: Der Name des Zielkatalogs in Databricks Unity Catalog, mit dem eine Föderation erstellt werden soll.
  • REFRESH_INTERVAL: Gibt an, wie oft die Informationen des Katalogs aktualisiert werden sollen. Legen Sie diesen Wert als Dauer fest, z. B. 330s oder 5m30s. Bei kürzeren Intervallen werden Daten häufiger aktualisiert, was jedoch mehr API-Aufrufe erfordert und somit teurer sein kann. Längere Intervalle können weniger kosten, aber die abgefragten Daten spiegeln möglicherweise nicht Ihren aktuellen Datensatz wider. Wenn Sie den Wert weglassen oder auf 0s setzen, werden Updates deaktiviert.
  • NAMESPACE_FILTERS (Optional): Eine durch Kommas getrennte Liste der zu föderierenden Namespaces. Beispiel: ns1,ns2. Wenn diese Option weggelassen wird, werden alle Namespaces berücksichtigt.

Kundeneigen (CCI)

Wenn Sie eine private Interconnect-Verbindung (z. B. Dedicated CCI oder Partner Interconnect) konfiguriert haben, geben Sie die Service Directory-Dienstreferenz an, damit Lakehouse den Traffic privat weiterleitet.

gcloud biglake iceberg catalogs create FEDERATED_CATALOG_NAME \
    --project="PROJECT_ID" \
    --primary-location="REGION" \
    --catalog-type="federated" \
    --federated-catalog-type="unity" \
    --secret-name="projects/PROJECT_ID/locations/REGION/secrets/DATABRICKS_SECRET_NAME" \
    --unity-instance-name="UNITY_INSTANCE_NAME" \
    --unity-catalog-name="UNITY_CATALOG_NAME" \
    --refresh-interval="REFRESH_INTERVAL" \
    --namespace-filters="NAMESPACE_FILTERS" \
    --service-directory-name="projects/PROJECT_ID/locations/REGION/namespaces/NAMESPACE/services/SERVICE_NAME"

Ersetzen Sie Folgendes:

  • PROJECT_ID: Projekt-ID in Google Cloud .
  • PROJECT_NUMBER: Ihre Google Cloud Projektnummer.
  • REGION: die Lakehouse-Region, in der der föderierte Katalog erstellt wird. Beispiel: us-east4. So minimieren Sie die Latenz bei der Auswahl einer Region:
    • Wenn sich Ihr Unity Catalog-Katalog in AWS befindet, wählen Sie dieGoogle Cloud -Region aus, die Ihrer AWS-Region am nächsten ist.
    • Wenn sich Ihr Unity Catalog-Katalog in Google Cloudbefindet, wählen Sie genau dieselbe Region aus. Hinweis: Dies muss dieselbe Region wie der Service Directory-Namespace und das regionale Secret sein.
  • DATABRICKS_SECRET_NAME: der Name Ihres Databricks-Secrets.
  • UNITY_INSTANCE_NAME: Der Name Ihrer Databricks-Zielinstanz. Beispiel: abcd.cloud.databricks.com
  • UNITY_CATALOG_NAME: Der Name des Zielkatalogs für Databricks Unity Catalog, der föderiert werden soll.
  • REFRESH_INTERVAL: Gibt an, wie oft die Informationen des Katalogs aktualisiert werden sollen. Legen Sie diesen Wert als Dauer fest, z. B. 330s oder 5m30s. Bei kürzeren Intervallen werden Daten häufiger aktualisiert, was jedoch mehr API-Aufrufe erfordert und somit teurer sein kann. Längere Intervalle können weniger kosten, aber die abgefragten Daten spiegeln möglicherweise nicht Ihren aktuellen Datensatz wider. Wenn Sie den Wert weglassen oder auf 0s setzen, werden Updates deaktiviert.
  • NAMESPACE_FILTERS (Optional): Eine durch Kommas getrennte Liste der zu föderierenden Namespaces. Beispiel: ns1,ns2. Wenn diese Option weggelassen wird, werden alle Namespaces berücksichtigt.
  • NAMESPACE: der Service Directory-Namespace, den Sie bei der Einrichtung der privaten Interconnect-Verbindung erstellt haben.
  • SERVICE_NAME: Der Name des Service Directory-Dienstes, den Sie bei der Einrichtung der privaten Interconnect-Verbindung erstellt haben.

Dem föderierten Katalog Zugriff auf das Secret gewähren

Wenn der Katalog erstellt wird, wird in Lakehouse ein eindeutiges Dienstkonto dafür bereitgestellt (in der Ressourcenbeschreibung als biglake-service-account zurückgegeben).

Sie müssen diesem Dienstkonto die Berechtigung zum Zugriff auf das Secret erteilen, das Sie zuvor in dieser Anleitung erstellt haben. Das Übertragen von IAM-Richtlinien kann einige Minuten dauern.

Gewähren Sie dem Dienstkonto des Katalogs die Berechtigung für den Zugriff auf das Secret.

# Required to use regional secrets
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets add-iam-policy-binding DATABRICKS_SECRET_NAME \
  --project="PROJECT_ID" \
  --location="REGION" \
  --member="serviceAccount:$(gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --location="REGION" \
      --format='value(biglake-service-account)')" \
  --role="roles/secretmanager.secretAccessor"

Verbindung prüfen

Führen Sie den folgenden Befehl aus, um zu prüfen, ob das Dienstkonto des föderierten Katalogs Zugriff auf das Secret hat:

# Required to use regional secrets
gcloud config set api_endpoint_overrides/secretmanager https://secretmanager.REGION.rep.googleapis.com/
gcloud secrets get-iam-policy DATABRICKS_SECRET_NAME \
     --project="PROJECT_ID" \
     --location="REGION"

Prüfen Sie in der Ausgabe, ob dem Dienstkonto biglake-service-account die Rolle roles/secretmanager.secretAccessor zugewiesen ist.

Prüfen Sie als Nächstes, ob der Hintergrundaktualisierungszyklus des Katalogs erfolgreich abgeschlossen wurde und die Namespaces synchronisiert werden.

  1. Prüfen Sie, ob der Aktualisierungsstatus „Erfolgreich“ lautet:

    gcloud biglake iceberg catalogs describe FEDERATED_CATALOG_NAME \
      --project="PROJECT_ID" \
      --location="REGION"
  2. Prüfen Sie, ob Remote-Datenbanken als synchronisierte Namespaces angezeigt werden:

    gcloud biglake iceberg namespaces list \
      --catalog="FEDERATED_CATALOG_NAME" \
      --project="PROJECT_ID" \
      --location="REGION"

Nächste Schritte