Katalogintegration für Unity Catalog konfigurieren

Use the CREATE CATALOG INTEGRATION (Apache Iceberg™ REST) command to create a REST catalog integration that uses vended credentials or an external volume to connect to Databricks Unity Catalog.

Bemerkung

Sie können eine Katalogintegration für Unity Catalog erstellen, wobei der Databricks-Arbeitsbereich bei einem der folgenden Cloudanbieter gehostet wird:

  • AWS

  • Azure

  • Google Cloud

You can configure a catalog integration for Unity Catalog that uses OAuth or bearer authentication:

Configure an OAuth catalog integration

Schritt 1: Abrufen Ihrer Databricks-Arbeitsbereichs-URL

Ihre Databricks-Arbeitsbereichs-URL ist die URL, die Sie für den Zugriff auf Ihren Databricks-Arbeitsbereich verwenden. Sie müssen diese URL suchen, da Sie sie später bei der Erstellung einer Katalogintegration angeben.

  1. Suchen Sie Ihre Databricks-Arbeitsbereichs-URL.

    Anweisungen, wie Sie diese URL finden können, finden Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

  2. Kopieren Sie Ihre Databricks-Arbeitsbereichs-URL in einen Texteditor.

Schritt 2: Dienstprinzipal in Databricks hinzufügen

  1. Wie Sie einen Dienstprinzipal hinzuzufügen, erfahren Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

  2. Kopieren Sie den Anwendungs-ID-Wert für Ihren Dienstprinzipal in einen Texteditor und speichern Sie ihn an einem sicheren Ort. Sie geben diesen Wert später an, wenn Sie eine Katalogintegration in Snowflake erstellen.

Schritt 3: Erstellen eines OAuth-Geheimnisses für Ihren Dienstprinzipal

  1. Informationen zum Erstellen eines OAuth-Geheimnisses für Ihren Dienstprinzipal finden Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

  2. Kopieren Sie den Wert Secret, den Sie generiert haben, in einen Texteditor, und speichern Sie ihn sicher. Sie geben diesen Wert später an, wenn Sie eine Katalogintegration in Snowflake erstellen.

    Wichtig

    Das Clientgeheimnis wird nur einmal angezeigt. Stellen Sie sicher, dass Sie es kopieren, bevor Sie das Dialogfeld schließen.

Schritt 4: Snowflake Zugriff auf Ihren Katalog in Unity Catalog aktivieren

In diesem Schritt verwenden Sie Databricks, um Snowflake Zugriff auf Ihren Katalog in Unity Catalog zu ermöglichen.

Um Snowflake Zugriff auf Ihren Katalog in Unity Catalog über automatische Anmeldeinformationen zu ermöglichen, müssen Sie zunächst auf Metastore-Ebene den externen Datenzugriff auf dem Metastore aktivieren. Als Nächstes müssen Sie Ihrem Dienstprinzipal Unity Catalog-Berechtigungen für Ihren Katalog gewähren.

Aktivieren Sie den externen Datenzugriff auf den Metastore (nur automatische Anmeldeinformationen)

Wenn Sie eine Katalogintegration erstellen, die Zugriffsdaten verwendet, müssen Sie den externen Datenzugriff auf den Metastore in Databricks aktivieren. Wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet, können Sie diesen Schritt überspringen.

Eine Anleitung zum Aktivieren des externen Datenzugriffs auf den Metastore finden Sie unter dem Thema, wo Ihr Databricks-Konto gehostet wird:

Zuweisen des Dienstprinzipals zu einem Arbeitsbereich

Als Nächstes müssen Sie Ihren Dienstprinzipal Ihrem Databricks-Arbeitsbereich zuweisen.

Eine Anleitung dazu finden Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

Gewähren des Dienstprinzipal-Zugriffs auf Ihren Katalog

Als Nächstes müssen Sie Ihrem Dienstprinzipal Unity Catalog-Berechtigungen erteilen. Sie müssen Ihrem Dienstprinzipal diese Berechtigungen erteilen, damit Snowflake auf der Grundlage der von Ihnen angegebenen Berechtigungen auf den Katalog zugreifen kann.

Berechtigungen für vollen Funktionsumfang

Um den vollen Funktionsumfang von Snowflake zu aktivieren, müssen Sie die folgenden Berechtigungen erteilen:

Bemerkung

Informationen zur Beschränkung des Zugriffs auf Snowflake finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte in der Databricks-Dokumentation.

Berechtigung

Beschreibung

EXTERNAL USE SCHEMA

Ermöglicht Unity Catalog, temporäre Anmeldeinformationen mit Bereichen für den Zugriff auf Tabellendaten im Cloudspeicher zu generieren und Snowflake zur Verfügung zu stellen.

Bemerkung

Diese Berechtigung ist nur erforderlich, wenn Sie eine Katalogintegration erstellen, die automatische Anmeldeinformationen verwendet. Es ist nicht erforderlich, wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet. Wenn Sie also ein externes Volume verwenden, entfernen Sie dieses aus dem Beispielcodeblock.

MODIFY

Ermöglicht Snowflake das Hinzufügen, Aktualisieren und Löschen von Daten einer Tabelle.

SELECT

Ermöglicht Snowflake, Tabellen abzufragen und auf Tabellenmetadaten zuzugreifen. Erforderlich für alle Vorgänge in Snowflake, einschließlich des Lesens von Daten und des Erkennens von Tabellen in der katalogverknüpften Datenbank.

USE CATALOG

Ermöglicht Snowflake den Zugriff auf den Katalog. Erforderlich, um eine Verbindung zu Objekten im Unity Catalog herzustellen und damit zu interagieren.

USE SCHEMA

Ermöglicht Snowflake den Zugriff auf Schemas (Namespaces) innerhalb des Katalogs. Erforderlich für das Anzeigen und Verwenden von Tabellen in bestimmten Schemas.

Berechtigungen erteilen

Sie können Berechtigungen erteilen, indem Sie den Katalog-Explorer oder SQL verwenden.

Um Berechtigungen mit dem Databricks Catalog Explorer zu erteilen, lesen Sie das Thema, wo Ihr Databricks-Konto gehostet wird:

Wichtig

Im Feld Principals müssen Sie den Namen Ihres Dienstprinzipals eingeben, nicht die E-Mail-Adresse von Benutzenden oder den Namen einer Gruppe.

Schritt 5: Katalogintegration erstellen

Das folgende Beispiel erstellt eine REST-Katalogintegration, die OAuth verwendet:

CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_oauth_vended_credentials
CATALOG_SOURCE = ICEBERG_REST
TABLE_FORMAT = ICEBERG
REST_CONFIG = (
  CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg-rest'
  CATALOG_NAME = '<catalog_name>'
  ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
)
REST_AUTHENTICATION = (
  TYPE = OAUTH
  OAUTH_TOKEN_URI = '<databricks_workspace_url>/oidc/v1/token'
  OAUTH_CLIENT_ID = '<client_id>'
  OAUTH_CLIENT_SECRET = '<oauth_secret>'
  OAUTH_ALLOWED_SCOPES = ('all-apis')
)
ENABLED = TRUE;
Copy

Wobei:

  • <databricks_workspace_url> gibt die URL für Ihren Databricks-Arbeitsbereich an. Wie Sie diese finden URL, erfahren Sie unter Schritt 1: Abrufen Ihrer Databricks-Arbeitsbereichs-URL.

    Hier ist ein Beispiel für eine Databricks-Arbeitsbereichs-URL für jede Cloudplattform:

    • Databricks auf AWS: https://dbc-a1a1a1a1-a1a1.cloud.databricks.com

    • Azure Databricks: https://adb-1111111111111111.1.azuredatabricks.net

    • Databricks auf Google Cloud: https://1111111111111111.1.gcp.databricks.com

  • <catalog_name> gibt den Namen Ihres Katalogs in Unity Catalog an, mit dem Sie Snowflake verbinden möchten. Sie finden diesen Namen im Databricks-Arbeitsbereich unter Data > Catalogs.

  • ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS konfiguriert die Katalogintegration, um automatische Anmeldeinformationen von Unity Catalog zu verwenden.

    Bemerkung

    Wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet, müssen Sie den Parameter ACCESS_DELEGATION_MODE ausschließen.

  • <client_id> gibt die OAuth-Client-ID für Ihren Databricks-Dienstprinzipal an. Sie haben diesen Wert kopiert, als Sie einen Dienstprinzipal in Databricks hinzugefügt haben.

    Bemerkung

    In Databricks wird dieser Wert als Anwendungs-ID und nicht als Client-ID bezeichnet.

  • <oauth_secret> gibt das OAuth-Geheimnis für Ihren Databricks-Dienstprinzipal an. Sie haben diesen Wert kopiert, als Sie ein OAuth-Geheimnis für Ihren Dienstprinzipal erstellt haben.

Schritt 6: Katalogintegration überprüfen

Nächste Schritte

Nachdem Sie eine Katalogintegration für Ihren Katalog in Unity Catalog konfiguriert haben, verwenden Sie den Befehl CREATE DATABASE (katalogverknüpft), um eine katalogverknüpfte Datenbank zu erstellen, indem Sie die von Ihnen erstellte Katalogintegration angeben. Snowflake synchronisiert dann automatisch mit Ihrem Katalog in Unity Catalog, um Schemas und Iceberg-Tabellen zu erkennen, und registriert die Remotetabellen in der mit dem Katalog verbundenen Datenbank.

Wenn Sie Ihre mit dem Katalog verknüpfte Datenbank erstellen, geben Sie die Katalogintegration an.

For example:

CREATE OR REPLACE DATABASE my_linked_db
   LINKED_CATALOG = (
      CATALOG = 'unity_catalog_int_oauth_vended_credentials'
   );
Copy

Bemerkung

Configure a bearer token catalog integration

Schritt 1: Abrufen Ihrer Databricks-Arbeitsbereichs-URL

Ihre Databricks-Arbeitsbereichs-URL ist die URL, die Sie für den Zugriff auf Ihren Databricks-Arbeitsbereich verwenden. Sie müssen diese URL suchen, da Sie sie später bei der Erstellung einer Katalogintegration angeben.

  1. Suchen Sie Ihre Databricks-Arbeitsbereichs-URL.

    Anweisungen, wie Sie diese URL finden können, finden Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

  2. Kopieren Sie Ihre Databricks-Arbeitsbereichs-URL in einen Texteditor.

Schritt 2: Hinzufügen eines persönlichen Zugriffstoken (PAT) in Databricks

Sie müssen ein persönliches Zugriffstoken (PAT) hinzufügen, da Sie es angeben müssen, wenn Sie eine Katalogintegration erstellen, die ein Bearer-Token zur Authentifizierung verwendet.

  1. Informationen zum Hinzufügen von PAT in Databricks finden Sie im Artikel zur Frage, wo Ihr Databricks-Konto gehostet wird:

  2. Kopieren Sie den Wert für Ihr PAT in einen Texteditor, und speichern Sie ihn an einem sicheren Ort. Sie geben diesen Wert später an, wenn Sie eine Katalogintegration in Snowflake erstellen.

Schritt 3: Snowflake Zugriff auf Ihren Katalog in Unity Catalog aktivieren

In diesem Schritt verwenden Sie Databricks, um Snowflake Zugriff auf Ihren Katalog in Unity Catalog zu ermöglichen.

Um Snowflake Zugriff auf Ihren Katalog in Unity Catalog über automatische Anmeldeinformationen zu ermöglichen, müssen Sie zunächst auf Metastore-Ebene den externen Datenzugriff auf dem Metastore aktivieren. Als Nächstes müssen Sie Ihren Databricks-Benutzenden Unity Catalog-Berechtigungen für Ihren Katalog erteilen, der Ihre PAT übernimmt.

Aktivieren Sie den externen Datenzugriff auf den Metastore (nur automatische Anmeldeinformationen)

Wenn Sie eine Katalogintegration erstellen, die Zugriffsdaten verwendet, müssen Sie den externen Datenzugriff auf den Metastore in Databricks aktivieren. Wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet, können Sie diesen Schritt überspringen.

Eine Anleitung zum Aktivieren des externen Datenzugriffs auf den Metastore finden Sie unter dem Thema, wo Ihr Databricks-Konto gehostet wird:

Gewähren von Katalogzugriff für Ihre Databricks-Benutzenden

Als Nächstes müssen Sie Ihren Databricks-Benutzenden Unity Catalog-Berechtigungen erteilen. Sie müssen Ihren Databricks-Benutzenden diese Berechtigungen erteilen, damit Snowflake auf der Grundlage der von Ihnen angegebenen Berechtigungen Zugriff auf den Katalog erhalten kann. Wenn Sie eine PAT für die Authentifizierung verwenden, übernimmt sie alle Berechtigungen, die den Databricks-Benutzenden erteilt wurden, der die PAT erstellt hat.

Berechtigungen für vollen Funktionsumfang

Um den vollen Funktionsumfang von Snowflake zu aktivieren, müssen Sie die folgenden Berechtigungen erteilen:

Bemerkung

Informationen zur Beschränkung des Zugriffs auf Snowflake finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte in der Databricks-Dokumentation.

Berechtigung

Beschreibung

EXTERNAL USE SCHEMA

Ermöglicht Unity Catalog, temporäre Anmeldeinformationen mit Bereichen für den Zugriff auf Tabellendaten im Cloudspeicher zu generieren und Snowflake zur Verfügung zu stellen.

Bemerkung

Diese Berechtigung ist nur erforderlich, wenn Sie eine Katalogintegration erstellen, die automatische Anmeldeinformationen verwendet. Es ist nicht erforderlich, wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet. Wenn Sie also ein externes Volume verwenden, entfernen Sie dieses aus dem Beispielcodeblock.

MODIFY

Ermöglicht Snowflake das Hinzufügen, Aktualisieren und Löschen von Daten einer Tabelle.

SELECT

Ermöglicht Snowflake, Tabellen abzufragen und auf Tabellenmetadaten zuzugreifen. Erforderlich für alle Vorgänge in Snowflake, einschließlich des Lesens von Daten und des Erkennens von Tabellen in der katalogverknüpften Datenbank.

USE CATALOG

Ermöglicht Snowflake den Zugriff auf den Katalog. Erforderlich, um eine Verbindung zu Objekten im Unity Catalog herzustellen und damit zu interagieren.

USE SCHEMA

Ermöglicht Snowflake den Zugriff auf Schemas (Namespaces) innerhalb des Katalogs. Erforderlich für das Anzeigen und Verwenden von Tabellen in bestimmten Schemas.

Berechtigungen erteilen

Sie können Berechtigungen erteilen, indem Sie den Katalog-Explorer oder SQL verwenden.

Um Berechtigungen mit dem Databricks Catalog Explorer zu erteilen, lesen Sie das Thema, wo Ihr Databricks-Konto gehostet wird:

Schritt 4: Katalogintegration erstellen

The following example creates a REST catalog integration that uses a bearer token with vended credentials:

CREATE OR REPLACE CATALOG INTEGRATION unity_catalog_int_bearer_vended_credentials
  CATALOG_SOURCE = ICEBERG_REST
  TABLE_FORMAT = ICEBERG
  REST_CONFIG = (
    CATALOG_URI = '<databricks_workspace_url>/api/2.1/unity-catalog/iceberg-rest'
    CATALOG_NAME = '<catalog_name>'
    ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS
  )
  REST_AUTHENTICATION = (
    TYPE = BEARER
    BEARER_TOKEN = '<personal_access_token>'
  )
  ENABLED = TRUE;
Copy

Wobei:

  • <databricks_workspace_url> gibt die URL für Ihren Databricks-Arbeitsbereich an. Wie Sie diese finden URL, erfahren Sie unter Schritt 1: Abrufen Ihrer Databricks-Arbeitsbereichs-URL.

    Hier ist ein Beispiel für eine Databricks-Arbeitsbereichs-URL für jede Cloudplattform:

    • Databricks auf AWS: https://dbc-a1a1a1a1-a1a1.cloud.databricks.com

    • Azure Databricks: https://adb-1111111111111111.1.azuredatabricks.net

    • Databricks auf Google Cloud: https://1111111111111111.1.gcp.databricks.com

  • <catalog_name> gibt den Namen Ihres Katalogs in Unity Catalog an, mit dem Sie Snowflake verbinden möchten. Sie finden diesen Namen im Databricks-Arbeitsbereich unter Data > Catalogs.

  • ACCESS_DELEGATION_MODE = VENDED_CREDENTIALS konfiguriert die Katalogintegration, um automatische Anmeldeinformationen von Unity Catalog zu verwenden.

    Bemerkung

    Wenn Sie eine Katalogintegration erstellen, die ein externes Volume verwendet, müssen Sie den Parameter ACCESS_DELEGATION_MODE ausschließen.

  • <personal_access_token> specifies your Databricks personal access token (PAT). An example of a PAT is aaaa111aaaa111a1a1a1a111111a111a1111.

Schritt 5: Katalogintegration überprüfen

Nächste Schritte

Nachdem Sie eine Katalogintegration für Ihren Katalog in Unity Catalog konfiguriert haben, verwenden Sie den Befehl CREATE DATABASE (katalogverknüpft), um eine katalogverknüpfte Datenbank zu erstellen, indem Sie die von Ihnen erstellte Katalogintegration angeben. Snowflake synchronisiert dann automatisch mit Ihrem Katalog in Unity Catalog, um Schemas und Iceberg-Tabellen zu erkennen, und registriert die Remotetabellen in der mit dem Katalog verbundenen Datenbank.

Wenn Sie Ihre mit dem Katalog verknüpfte Datenbank erstellen, geben Sie die Katalogintegration an.

For example:

CREATE OR REPLACE DATABASE my_linked_db
   LINKED_CATALOG = (
      CATALOG = 'unity_catalog_int_bearer_vended_credentials'
   );
Copy

Bemerkung