Katalogintegration für OneLake REST konfigurieren

Befolgen Sie die Schritte in diesem Thema, um eine Katalogintegration für den OneLake REST API-Endpunkt zu erstellen, der ein Endpunkt für die OneLake-Tabellen-APIs ist, die Sie zur Interaktion mit Tabellen in Microsoft Fabric verwenden können. Weitere Informationen zu diesem Endpunkt finden Sie unter Getting started with OneLake table APIs for Iceberg in der Dokumentation zu Microsoft Fabric.

Mit dieser Katalogintegration können Sie Snowflake zum Lesen von OneLake-Tabellen verwenden, die Iceberg-Metadaten haben.

Voraussetzungen

  • Bevor Sie beginnen, müssen Sie Ihre Arbeitsbereich-ID für Ihren Arbeitsbereich in Fabric und die Datenelement-ID für Ihr Lakehouse in Fabric ermitteln. Sie geben Ihren Arbeitsbereich-ID und Datenelement-ID später an, wenn Sie eine Katalogintegration für OneLake REST erstellen.

    • Um Ihre Arbeitsbereich-ID (<workspaceID>) zu ermitteln, siehe die URL der Fabric-Website zu einem Element in einem Arbeitsbereich. Weitere Informationen finden Sie unter Identify your workspace ID in der Dokumentation zu Microsoft Fabric. Kopieren Sie Ihre Arbeitsbereichs-ID in einen Texteditor.

    • Um Ihre Datenelement-ID (<dataItemID>), open your lakehouse, and then refer to the value after Lakehouses in der URL an. Weitere Informationen finden Sie unter Lakehouse source configuration in der Dokumentation zu Microsoft Fabric sowie unter dem Aufzählungspunkt „Verbindungen“. Kopieren Sie Ihre Datenelement-ID in einen Texteditor.

  • Stellen Sie sicher, dass Sie in Ihrem Fabric -Arbeitsbereich Iceberg-Tabellen in allen Datenelementen haben, z. B. in einem Lakehouse.

Schritt 1: Konfigurieren der Zugriffsberechtigungen für OneLake

Zum Konfigurieren der Zugriffsberechtigungen für OneLake erstellen Sie eine Anwendungsregistrierung in Microsoft Azure, fügen die Berechtigung „user_impersonation“ zu Ihrer Anwendungsregistrierung hinzu und erstellen ein neues Clientgeheimnis für Ihre Anwendungsregistrierung.

  1. Erstellen Sie in Azure eine Anwendungsregistrierung.

    Weitere Details finden Sie unter Register an application in Microsoft Entra ID in der Dokumentation zu Microsoft Entra.

  2. Fügen Sie in Ihrer Anwendungsregistrierung die Berechtigung „user_impersonation“ hinzu.

    Führen Sie zunächst die ersten vier Schritte unter Use the Microsoft Entra admin center to find the APIs your organization uses in der Dokumentation zu Microsoft Graph aus.

    Wichtig

    Wechseln Sie nicht zur Registerkarte APIs my organization uses, wie in den Schritten beschrieben. Wechseln Sie stattdessen zur Registerkarte Microsoft APIs, wählen Sie Azure Storage aus, und fügen Sie dann die user_impersonation-Berechtigung hinzu.

  3. Erstellen Sie ein neues Client-Geheimnis für Ihre Anwendungsregistrierung, und kopieren Sie das Geheimnis dann in einen Texteditor.

    Anweisungen hierzu finden Sie unter Create a new client secret in der Dokumentation zu Microsoft Entra. Sie geben dieses Geheimnis an, wenn Sie eine Katalogintegration erstellen.

    Wichtig

    Denken Sie daran, Ihr Geheimnis in einen Texteditor zu kopieren, da Sie es später nicht mehr abrufen können.

  4. Kopieren Sie von der Seite Overview Ihrer Anwendungsregistrierung den Display name, die Application (client) ID und die Directory (tenant) ID in einen Texteditor.

    Sie geben diese Werte an, wenn Sie eine Katalogintegration und ein externes Volume erstellen.

Schritt 2: Ihrer Anwendungsregistrierung Zugriff auf Ihren Fabric-Arbeitsbereich gewähren

In diesem Schritt gewähren Sie Ihrer Anwendungsregistrierung Zugriff auf Ihren Arbeitsbereich in Fabric.

  1. Navigieren Sie zu `Microsoft Fabric <https://app.fabric.microsoft.com/>`_und melden Sie sich dann an.

  2. Öffnen Sie Ihren Microsoft Fabric-Arbeitsbereich.

  3. Wählen Sie Manage access aus.

  4. Wählen Sie + Add people or groups aus.

  5. Fügen Sie den Namen Ihrer Anwendungsregistrierung in das Feld Enter name or email ein.

    Dieser Name ist der Display name, den Sie beim Konfigurieren von Zugriffsberechtigungen für OneLake kopiert haben.

  6. Wählen Sie im Dropdown-Menü den Contributor-Zugriff oder höher aus, damit die App das erforderliche Fabric-Element erstellen kann.

  7. Wählen Sie Add aus.

Schritt 3: Katalogintegration in Snowflake erstellen

Erstellen Sie eine Katalogintegration für den REST API-Endpunkt mithilfe des Befehls CREATE CATALOG INTEGRATION (Apache Iceberg™ REST).

Beispiel:

CREATE OR REPLACE CATALOG INTEGRATION my_onelake_catalog_int
   CATALOG_SOURCE = ICEBERG_REST
   TABLE_FORMAT = ICEBERG
   REST_CONFIG = (
      CATALOG_URI = 'https://onelake.table.fabric.microsoft.com/iceberg'
      CATALOG_NAME = '<fabric_data_item_scope>'
   )
   REST_AUTHENTICATION = (
      TYPE = OAUTH
      OAUTH_TOKEN_URI = '<azure_active_directory_token_endpoint>'
      OAUTH_CLIENT_ID = '<entra_application_client_id>'
      OAUTH_CLIENT_SECRET = '<entra_application_client_secret>'
      OAUTH_ALLOWED_SCOPES = ('https://storage.azure.com/.default')
   )
   ENABLED = TRUE;
Copy

Wobei:

  • https://onelake.table.fabric.microsoft.com/iceberg die Basis-URL am OneLake-Tabellenendpunkt ist.

  • <fabric_data_item_scope> is the Fabric data item scope, in the form <workspaceID>/<dataItemID>, such as 12345678-abcd-1abc-1a11-111111ab1111/11111111-abcd-1111-1ab1-1111a1a1ab91. To find your <workspaceID> and <dataItemID>, siehe Voraussetzungen.

  • <azure_active_directory_token_endpoint_> is your Azure Active Directory OAuth 2.0 token endpoint URL, in the form of https://login.microsoftonline.com/<entra_tenant_id>/oauth2/v2.0/token. For <entra_tenant_id> geben Sie die Entra-Mandanten-ID an, die Sie beim Konfigurieren der Zugriffsberechtigungen für OneLake kopiert haben.

  • <entra_application_client_id> ist Ihre Entra-Anwendungsclient-ID, die Sie beim Konfigurieren von Zugriffsberechtigungen für OneLake kopiert haben, z. B. 11111111-aabb-1a11-abc1-ab11111a11a1.

  • <entra_application_client_secret> ist das Clientgeheimnis Ihrer Anwendung, das Sie beim Konfigurieren von Zugriffsberechtigungen für OneLake kopiert haben.

  • https://storage.azure.com/.default ist die Zielgruppe für das Speichertoken.

Schritt 4: Externes Volume konfigurieren

In diesem Schritt konfigurieren Sie ein externes Volume für Azure mit Ihrer Azure-OneLake-URL und Ihrer Entra-Mandanten-ID.

  1. Erstellen Sie mit dem Befehl CREATE EXTERNAL VOLUME ein externes Volume.

    Beispiel:

    CREATE OR REPLACE EXTERNAL VOLUME my_onelake_extvol
       STORAGE_LOCATIONS =
       (
          (
                NAME = 'my_onelake_extvol'
                STORAGE_PROVIDER = 'AZURE'
                STORAGE_BASE_URL = '<azure_onelake_url>'
                AZURE_TENANT_ID='<entra_tenant_id>'
          )
       )
       ALLOW_WRITES = FALSE;
    
    Copy

    Wobei:

    • <azure_onelake_url> is your Azure OneLake URL, in the form of azure://onelake.dfs.fabric.microsoft.com/<workspaceID>/<dataItemID>, such as azure://onelake.dfs.fabric.microsoft.com/12345678-abcd-1abc-1a11-111111ab1111/11111111-abcd-1111-1ab1-1111a1a1ab91. To find your <workspaceID> and <dataItemID>, siehe Voraussetzungen.

    • <entra_tenant_id> is your Entra tenant ID, such as, 11111111-aabb-1a11-abc1-ab11111a11a1. Sie haben die ID Ihre Entra-Mandanten kopiert, als Sie die Zugriffsberechtigungen für OneLake konfiguriert haben.

  2. Verwenden Sie den Befehl DESCRIBE EXTERNAL VOLUME, um eine URL abzurufen, die auf die Seite der Microsoft-Berechtigungsanforderung führt. Geben Sie den Namen des externen Volumes an, das Sie zuvor erstellt haben.

    DESC EXTERNAL VOLUME my_onelake_extvol;
    
    Copy

    Notieren Sie sich die Werte der folgenden Eigenschaften:

    Eigenschaft

    Beschreibung

    AZURE_CONSENT_URL

    URL der Microsoft-Berechtigungsanforderungsseite.

    AZURE_MULTI_TENANT_APP_NAME

    Name der Snowflake-Clientanwendung, die für Ihr Konto erstellt wurde. In einem späteren Schritt in dieser Anleitung müssen Sie dieser Anwendung die Berechtigung erteilen, ein Zugriffstoken für Ihren zulässigen Speicherort zu erhalten.

    Sie verwenden diese Werte in den folgenden Schritten.

  3. Rufen Sie in einem Webbrowser die Seite der Microsoft-Berechtigungsanforderung auf (die AZURE_CONSENT_URL).

  4. Wählen Sie Accept aus. Mit dieser Aktion kann der Azure-Dienstprinzipal, der für Ihr Snowflake-Konto erstellt wurde, ein Zugriffstoken für eine bestimmte Ressource in Ihrem Mandantenbereich erhalten. Das Abrufen eines Zugriffstokens ist nur erfolgreich, wenn Sie dem Dienstprinzipal die entsprechenden Berechtigungen auf Ebene des Speicherkontos erteilen (siehe nächster Schritt).

  5. Erteilen Sie der mehrmandantenfähigen Anwendung die Berechtigung, ein Zugriffstoken für Ihren zulässigen Speicherort in Fabric abzurufen.

    1. Navigieren Sie zu `Microsoft Fabric <https://app.fabric.microsoft.com/>`_und melden Sie sich dann an.

    2. Öffnen Sie Ihren Microsoft Fabric-Arbeitsbereich.

    3. Wählen Sie Manage access aus.

    4. Wählen Sie + Add people or groups aus.

    5. Fügen Sie in das Feld Enter name or email den Wert ein, den Sie für AZURE_MULTI_TENANT_APP_NAME notiert haben.

    6. Wählen Sie im Dropdown-Menü den Contributor-Zugriff oder höher aus, damit die App das erforderliche Fabric-Element erstellen kann.

    7. Wählen Sie Add aus.

Weitere Informationen finden Sie unter Example Snowflake catalog integration and external volume code for the REST endpoint in Microsoft Fabric in der Dokumentation zu Microsoft Fabric.

Nächste Schritte

Nachdem Sie eine Katalogintegration für OneLake REST und ein externes Volume konfiguriert haben, können Sie den Befehl CREATE DATABASE (katalogverknüpft) verwenden, um eine mit dem Katalog verknüpfte Datenbank zu erstellen und dann die Tabellen aus OneLake in Snowflake lesen.

Wenn Sie Ihre mit dem Katalog verknüpfte Datenbank erstellen, geben Sie die Katalogintegration und das externe Volume an, das Sie erstellt haben.

Beispiel:

CREATE OR REPLACE DATABASE my_linked_db
   LINKED_CATALOG = (
      CATALOG = 'my_onelake_catalog_int'
   )
   EXTERNAL_VOLUME = 'my_onelake_extvol';

SELECT SYSTEM$CATALOG_LINK_STATUS('IRC_CATALOG_LINKED');

SELECT * FROM my_linked_db."dbo"."sentiment";
Copy

Bemerkung

Snowflake unterstützt nur Leseoperationen für Tabellen in OneLake.