Herstellen einer Verbindung mit einem externen Speicherort für Azure Data Lake Storage Gen2 (ADLS Gen2)

Auf dieser Seite wird beschrieben, wie Sie eine Verbindung mit einem externen Speicherort für Azure Data Lake Storage Gen2 (ADLS Gen2) herstellen. Nach Abschluss dieser Verbindung können Sie den Zugriff auf diese ADLS Gen2-Objekte mithilfe des Unity-Katalogs steuern.

Um eine Verbindung mit einem ADLS Gen2-Containerpfad herzustellen, benötigen Sie zwei sicherungsfähige Unity-Katalog-Objekte. Das erste ist eine Speicheranmeldeinformationen, die eine verwaltete Azure-Identität angibt, die den Zugriff auf den ADLS Gen2-Container erlaubt. Sie benötigen diese Speicheranmeldeinformationen für das zweite erforderliche Objekt: einen externen Speicherort, der den Pfad zu Ihrem ADLS Gen2-Speicherort und die Anmeldeinformationen definiert, die für den Zugriff auf diesen Speicherort erforderlich sind.

Requirements

In Azure Databricks:

  • Azure Databricks-Arbeitsbereich, der für Unity Catalog aktiviert ist.
  • CREATE STORAGE CREDENTIAL Berechtigung auf dem Unity-Katalog-Metadatenspeicher, der dem Arbeitsbereich angeschlossen ist. Kontoadministratoren und Metastore-Administratoren verfügen standardmäßig über diese Berechtigungen.
  • CREATE EXTERNAL LOCATION-Berechtigung sowohl für den Unity Catalog-Metastore als auch für die Speicheranmeldeinformationen, auf die der externe Speicherort verweist. Metastore-Administratoren und Arbeitsbereichsadministratoren verfügen standardmäßig über diese Berechtigung.

In Ihrem Azure Konto:

  • Ein ADLS Gen2-Speicherkonto und -container. Um Gebühren zu vermeiden, sollte sich dies in derselben Region wie der Arbeitsbereich befinden, aus dem Sie auf die Daten zugreifen möchten.

    • Externe Speicherortpfade dürfen nur Standard-ASCII-Zeichen (Buchstaben A–Z, a–zZiffern 0–9und allgemeine Symbole wie /, , _) -enthalten.

    • Azure Data Lake Storage-Speicherkonten, die Sie als externe Speicherorte verwenden, müssen über einen hierarchischen Namespace verfügen.

    • Sie können keine Azure-Speichercontainer mit unveränderlichen Richtlinien (WORM – Einmal schreiben, Viele lesen) als externe Speicherorte verwenden. Unity Catalog erfordert DELETE-Berechtigungen für Speichercontainer, die durch Richtlinien zur Unveränderlichkeit verhindert werden. Weitere Informationen zu Unveränderlichkeitsrichtlinien finden Sie unter Konfigurieren von Unveränderlichkeitsrichtlinien für Container.

    • Wenn der Zugriff auf öffentliche Netzwerke für das Speicherkonto deaktiviert ist, müssen Sie die Option " Vertrauenswürdige Azure-Dienste zulassen " aktivieren, damit Azure Databricks eine Verbindung mit dem Speicherkonto herstellen kann. Sie können diese Einstellung mithilfe der Azure CLI konfigurieren:

      # Check current network rule set
      az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query "networkRuleSet"
      
      # Set bypass for Azure Services
      az storage account update \
        --name <storage_account_name> \
        --resource-group <resource_group_name> \
        --bypass AzureServices
      
  • Berechtigung zum Erstellen eines Zugriffsconnectors für Azure Databricks in Ihrem Azure-Abonnement. Dazu müssen Sie in einer Azure-Ressourcengruppe Contributor oder Owner sein.

  • Berechtigung zum Ändern der Zugriffsrichtlinie für das Speicherkonto. Dazu müssen Sie der Besitzer oder ein Benutzer mit der User Access Administrator Azure RBAC-Rolle für Ihr Speicherkonto sein.

Erstellen einer Speicheranmeldeinformation, die auf ADLS Gen2 zugreift

Um eine Speicheranmeldeinformation für den Zugriff auf einen ADLS Gen2-Container zu erstellen, erstellen Sie zuerst einen Zugriffsconnector für Azure Databricks mit einer verwalteten Identität und gewähren dann den verwalteten Identitätszugriff auf Ihr Speicherkonto.

Step 1: Erstellen eines Zugriffsconnectors für Azure Databricks

Ein Access Connector für Azure Databricks ist eine Azure-Ressource eines Erstanbieters, mit der Sie verwaltete Identitäten mit einem Azure-Databricks-Konto verbinden können. Jeder Zugriffsconnector für Azure Databricks kann eine vom System zugewiesene verwaltete Identität, eine oder mehrere vom Benutzer zugewiesene verwaltete Identitäten oder beides enthalten.

  1. Melden Sie sich beim Azure-Portal als Mitwirkender oder Besitzer einer Ressourcengruppe an.

  2. Klicken Sie auf +Erstellen oder Erstellen einer Ressource.

  3. Suchen Sie nach Access Connector für Azure Databricks und wählen Sie ihn aus.

  4. Klicke auf Erstellen.

  5. Auf der Registerkarte Basic können Sie die folgenden Felder akzeptieren, auswählen oder Werte eingeben:

    • Subscription: Dies ist das Azure-Abonnement, in dem der Zugriffsconnector erstellt wird. Der Standardwert ist das Azure-Abonnement, das Sie derzeit verwenden. Es kann ein beliebiges Abonnement des Tenants sein.
    • Ressourcengruppe: Dies ist die Azure-Ressourcengruppe, in der der Zugriffsconnector erstellt wird.
    • Name: Geben Sie einen Namen ein, der den Zweck des Connektors angibt.
    • Bereich: Dies sollte derselbe Bereich wie das Speicherkonto sein, mit dem Sie sich verbinden werden.
  6. Klicken Sie auf Weiter, geben Sie Tags ein, und klicken Sie auf Weiter.

  7. Erstellen Sie auf der Registerkarte "Verwaltete Identität" die verwalteten Identitäten wie folgt:

    • Um eine vom System zugewiesene verwaltete Identität zu verwenden, legen Sie Status auf On fest.
    • Um vom Benutzer zugewiesene verwaltete Identitäten hinzuzufügen, klicken Sie auf + Hinzufügen, und wählen Sie eine oder mehrere vom Benutzer zugewiesene verwaltete Identitäten aus.

    Konfigurieren verwalteter Identitäten für einen Zugriffsconnector.

  8. Klicken Sie auf Überprüfen + erstellen.

  9. Überprüfen Sie Ihre Konfigurationseinstellungen, und klicken Sie dann auf "Erstellen".

  10. Klicken Sie nach Abschluss der Bereitstellung auf Zu Ressource wechseln.

  11. Notieren Sie sich die Ressourcen-ID.

    Die Ressourcen-ID hat folgendes Format:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    

Schritt 2: Zugriff auf das Speicherkonto für die verwaltete Identität gewähren

Um die Berechtigungen in diesem Schritt zu erteilen, müssen Sie über die Azure RBAC-Rolle Owner oder User Access Administrator für Ihr Speicherkonto verfügen.

Sie haben die folgenden Optionen, wenn Sie den verwalteten Identitätszugriff auf das Speicherkonto und den Container gewähren:

  • Gewähren Sie Lese- und Schreibzugriff auf das gesamte Speicherkonto mithilfe der Storage Blob Data Contributor Rolle.
  • Gewähren Sie eine eingeschränktere Rolle für das Speicherkonto mithilfe der Storage Blob Delegator-Rolle und gewähren Sie Lese- und Schreibzugriff auf einen bestimmten Container mithilfe der Storage Blob Data Contributor-Rolle.

Die folgenden Anweisungen gehen davon aus, dass Sie die Storage Blob Data Contributor Rolle für das Speicherkonto gewähren, aber Sie können die anderen Optionen bei Bedarf ersetzen:

  1. Melden Sie sich bei Ihrem Azure Data Lake Storage-Konto an.
  2. Wechseln Sie zu Access Control (IAM), klicken Sie auf + Hinzufügen, und wählen Sie Zuteilung hinzufügen aus.
  3. Wählen Sie die Rolle Mitwirkender an Storage-Blob-Daten aus, und klicken Sie auf Weiter.
  4. Wählen Sie unter Zugriff zuweisen an die Option Verwaltete Identität aus.
  5. Klicken Sie auf +Mitglieder auswählen, und wählen Sie entweder Access-Connector für Azure Databricks oder Benutzer zugewiesene verwaltete Identität aus.
  6. Suchen Sie nach Ihrem Connectornamen oder ihrer benutzerseitig zugewiesenen Identität, wählen Sie den Namen/die Identität aus, und klicken Sie auf Überprüfen und Zuweisen.

Schritt 3: Zugriff auf Datei-Ereignisse für die verwaltete Identität gewähren

Wenn Sie Ihrer verwalteten Identität Zugriff auf Dateiereignisse gewähren, kann Azure Databricks Dateiereignisbenachrichtigungen abonnieren, die von Cloudanbietern ausgegeben werden. Dadurch wird die Effizienz der Dateiverarbeitung erhöht. Weitere Informationen finden Sie unter Einrichten von Dateiereignissen für einen externen Speicherort.

Um die Berechtigungen in diesem Schritt zuweisen zu können, müssen Sie über die Azure RBAC-Rolle „Besitzer“ oder „Benutzerzugriffsadministrator“ für Ihr Speicherkonto verfügen.

  1. Melden Sie sich bei Ihrem Azure Data Lake Storage-Konto an.
  2. Wechseln Sie zu Access Control (IAM), klicken Sie auf + Hinzufügen, und wählen Sie Zuteilung hinzufügen aus.
  3. Wählen Sie die Rolle Mitwirkender an Storage-Warteschlangendaten und dann Weiter aus.
  4. Wählen Sie unter Zugriff zuweisen an die Option Verwaltete Identität aus.
  5. Klicken Sie auf +Mitglieder auswählen, und wählen Sie entweder Access-Connector für Azure Databricks oder Benutzer zugewiesene verwaltete Identität aus.
  6. Suchen Sie nach Ihrem Connectornamen oder ihrer benutzerseitig zugewiesenen Identität, wählen Sie den Namen/die Identität aus, und klicken Sie auf Überprüfen und Zuweisen.

Step 4: Gewähren Azure Databricks Zugriff auf die Konfiguration von Dateiereignissen in Ihrem Auftrag

Note

Wenn Sie Azure Databricks keinen Zugriff gewähren, um Dateiereignisse in Ihrem Namen zu konfigurieren, müssen Sie Dateiereignisse für jeden Speicherort manuell konfigurieren. Wenn Sie diese manuelle Konfiguration überspringen, wird der Zugriff auf mehrere Databricks-Features beschränkt. Weitere Informationen zu Dateiereignissen finden Sie unter Einrichten von Dateiereignissen für einen externen Speicherort.

Dieser Schritt ermöglicht es Azure Databricks, Datei-Ereignisse automatisch einzurichten. Um die Berechtigungen in diesem Schritt zu erteilen, müssen Sie über die Azure RBAC-Rollen "Besitzer" oder "Benutzerzugriffsadministrator" für Ihre verwaltete Identität und die Ressourcengruppe verfügen, in der Sich Ihr Azure Data Lake Storage-Konto befindet.

  1. Befolgen Sie die Anweisungen in Schritt 3: Gewähren Sie der verwalteten Identität Zugriff auf Datei-Ereignisse, und weisen Sie Ihrer verwalteten Identität die Rolle Mitwirkender an Speicherkonten zu.

    Diese Rolle ersetzt nicht die in den Schritten 2 oder 3 auf dieser Seite gewährten Rollen, sondern ist zusätzlich zu ihnen enthalten.

  2. Navigieren Sie zu der Azure-Ressourcengruppe, in der Sich Ihr Azure Data Lake Storage-Konto befindet.

  3. Wechseln Sie zu Access Control (IAM), klicken Sie auf + Hinzufügen, und wählen Sie Zuteilung hinzufügen aus.

  4. Wählen Sie die Rolle EventGrid-EventSubscription-Mitwirkender und dann Weiter aus.

  5. Wählen Sie unter Zugriff zuweisen an die Option Verwaltete Identität aus.

  6. Klicken Sie auf +Mitglieder auswählen, und wählen Sie entweder Access-Connector für Azure Databricks oder Benutzer zugewiesene verwaltete Identität aus.

  7. Suchen Sie nach Ihrem Connectornamen oder ihrer benutzerseitig zugewiesenen Identität, wählen Sie den Namen/die Identität aus, und klicken Sie auf Überprüfen und Zuweisen.

Schritt 5: Erstellen der Speicheranmeldeinformationen in Databricks

Nachdem Sie nun einen Zugriffsconnector mit einer verwalteten Identität erstellt und ihm Berechtigungen für Ihr Speicherkonto erteilt haben, können Sie die Speicheranmeldeinformationen in Azure Databricks erstellen.

  1. Melden Sie sich bei Ihrem für Unity Catalog aktivierten Azure Databricks-Arbeitsbereich als Benutzer an, der über die Berechtigung CREATE STORAGE CREDENTIAL für den Metastore verfügt.

  2. Klicken Sie in der Randleiste auf das Datensymbol.Katalog.

  3. Klicken Sie auf ", und klicken Sie dann auf " Anmeldeinformationen erstellen".

  4. Wählen Sie einen Credential Type von Azure Managed Identity aus.

  5. Geben Sie einen Namen der Speicheranmeldeinformationen und einen optionalen Kommentar ein.

  6. Geben Sie die Access Connector-ID (die Ressourcen-ID ein, die Sie in Schritt 1 angegeben haben).

    Die Ressourcen-ID hat folgendes Format:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (Optional) Wenn Sie den Zugriffsconnector mit einer vom Benutzer zugewiesenen verwalteten Identität erstellt haben, geben Sie die verwaltete Identitäts-ID (die Ressourcen-ID der verwalteten Identität) ein.

  8. (Optional) Wenn Sie möchten, dass Benutzer schreibgeschützten Zugriff auf die externen Speicherorte haben, die diese Speicheranmeldeinformationen verwenden, klicken Sie auf Erweiterte Optionen und wählen Sie Auf schreibgeschützte Verwendung beschränken aus. Weitere Informationen finden Sie unter Markieren von Speicheranmeldeinformationen als schreibgeschützt.

  9. Klicke auf Erstellen.

  10. (Optional) Speicheranmeldedaten an spezifische Arbeitsbereiche binden.

    Standardmäßig kann jeder privilegierte Benutzer die Speicherberechtigungsnachweise in jedem Arbeitsbereich verwenden, der an den Metastore angeschlossen ist. Wenn Sie den Zugriff nur aus bestimmten Arbeitsbereichen zulassen möchten, wechseln Sie zur Registerkarte Arbeitsbereiche, und weisen Sie Arbeitsbereiche zu. Siehe Zuweisen einer Speicherberechtigung zu bestimmten Arbeitsbereichen.

Sie können jetzt einen externen Speicherort erstellen , der auf Ihre Speicheranmeldeinformationen verweist.

Erstellen eines externen Speicherorts für einen ADLS Gen2-Container

In diesem Abschnitt wird das Erstellen eines externen Speicherorts mithilfe des Katalog-Explorers oder sql beschrieben. Es wird davon ausgegangen, dass Sie bereits über eine Speicheranmeldeinformation verfügen, die den Zugriff auf Ihren ADLS Gen2-Container ermöglicht. Wenn Sie keine Speicheranmeldeinformationen besitzen, führen Sie die Schritte unter Erstellen einer Speicheranmeldeinformation aus, die auf ADLS Gen2 zugreift.

Option 1: Manuelles Erstellen eines externen Speicherorts mithilfe des Katalog-Explorers

Sie können manuell einen externen Speicherort mithilfe des Catalog-Explorers erstellen.

So erstellen Sie den externen Speicherort

  1. Melden Sie sich bei einem Arbeitsbereich an, der dem Metastore angefügt ist.

  2. Klicken Sie in der Randleiste auf das Datensymbol.Katalog.

  3. Klicken Sie auf , und klicken Sie dann auf " Externe Position erstellen".

  4. Geben Sie den Namen des externen Speicherorts ein.

  5. Wählen Sie unter Storage-TypAzure aus.

  6. Geben Sie unter "URL" den CONTAINERpfad "ADLS Gen2" ein. Beispiel: abfss://mycontainer@mystorageaccount.dfs.core.windows.net/<path>

  7. Wählen Sie unter "Speicheranmeldeinformationen" die Speicheranmeldeinformationen aus, die Zugriff auf den externen Speicherort gewähren.

  8. (Optional) Wenn Sie möchten, dass Benutzer schreibgeschützten Zugriff auf den externen Speicherort haben, klicken Sie auf Erweiterte Optionen und wählen Sie Auf schreibgeschützte Verwendung beschränken. Weitere Informationen finden Sie unter Markieren eines externen Speicherorts als schreibgeschützt.

  9. (Optional) Wenn der externe Speicherort für einen Hive-Metaspeicher-Partnerkatalog vorgesehen ist, klicken Sie auf "Erweiterte Optionen" , und aktivieren Sie den Fallbackmodus.

    Siehe Fallbackmodus an externen Standorten aktivieren.

  10. (Optional) Wenn Sie die Möglichkeit zum Abonnieren von Änderungsbenachrichtigungen am externen Speicherort aktivieren möchten, klicken Sie auf "Erweiterte Optionen" , und wählen Sie " Dateiereignisse aktivieren" aus.

    Ausführliche Informationen finden Sie unter Einrichten von Dateiereignissen für einen externen Speicherort.

  11. Klicke auf Erstellen.

  12. (Optional) Binden des externen Speicherorts an bestimmte Arbeitsbereiche.

    Standardmäßig kann jeder privilegierte Benutzer den externen Speicherort in jedem Arbeitsbereich verwenden, der an den Metastore angefügt ist. Wenn Sie den Zugriff nur aus bestimmten Arbeitsbereichen zulassen möchten, wechseln Sie zur Registerkarte Arbeitsbereiche, und weisen Sie Arbeitsbereiche zu. Siehe Zuweisen eines externen Orts zu bestimmten Arbeitsbereichen.

  13. Wechseln Sie zur Registerkarte "Berechtigungen ", um berechtigungen für die Verwendung des externen Speicherorts zu erteilen.

    Wenn eine Person den externen Speicherort verwenden soll, müssen Sie Berechtigungen erteilen:

    • Um den externen Speicherort als verwalteten Speicherort für einen Metastore, einen Katalog oder ein Schema hinzuzufügen, erteilen Sie die Berechtigung CREATE MANAGED LOCATION.
    • Um externe Tabellen oder Volumes zu erstellen, erteilen Sie CREATE EXTERNAL TABLE oder CREATE EXTERNAL VOLUME.

    führen Sie die folgenden Schritte aus:

    1. Klicken Sie auf Erlauben.
    2. Wählen Sie im Dialogfeld Erteilen für <external location> Benutzer*innen, Gruppen oder Dienstprinzipale im Feld Prinzipale aus, und wählen Sie dann die Berechtigungen aus, die Sie erteilen möchten.
    3. Klicken Sie auf Erlauben.

Option 2: Erstellen eines externen Speicherorts mithilfe von SQL

Führen Sie zum Erstellen eines externen Speicherorts mit SQL den folgenden Befehl in einem Notebook oder dem SQL-Abfrage-Editor aus. Ersetzen Sie die folgenden Platzhalterwerte. Erforderliche Berechtigungen und Voraussetzungen finden Sie unter "Anforderungen".

  • <location-name>Quelle: : Ein Name für den externen Speicherort. Wenn location_name Sonderzeichen wie Bindestriche (-) enthält, muss es von Backticks (` `) umgeben sein. Siehe Namen.
  • <container-path>Quelle: : Der Pfad in Ihrem Cloud-Mandanten, auf den dieser externe Speicherort Zugriff gewährt. Beispiel: abfss://mycontainer@mystorageaccount.dfs.core.windows.net/
  • <storage-credential-name>: Der Name der Speicheranmeldeinformation, die den Lese- und Schreibzugriff auf den Container autorisiert. Wenn der Name der Speicheranmeldeinformationen Sonderzeichen enthält, z. B. Bindestriche (-), muss er von Backticks (` `) umgeben sein.
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<container-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];

Wenn Sie den Zugriff auf externe Speicherorte auf bestimmte Arbeitsbereiche in Ihrem Konto beschränken möchten, auch als Arbeitsbereichsbindung oder externe Standortisolation bezeichnet, lesen Sie "Zuweisen eines externen Speicherorts zu bestimmten Arbeitsbereichen".

Überprüfen der Verbindung

Um zu überprüfen, ob Sie den externen Speicherort erfolgreich erstellt haben, versuchen Sie, eine Datei vom externen Speicherort zu lesen. Angenommen, Sie haben einen externen Speicherort abfss://mycontainer@mystorageaccount.dfs.core.windows.net/ , der eine CSV-Datei mit dem Namen enthält example.csv. Führen Sie die folgenden Schritte aus, um aus der abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv Datei zu lesen:

  1. Klicken Sie in der Randleiste auf das Symbol Arbeitsbereich.

  2. Klicken Sie auf "Erstellen", und wählen Sie dann " Notizbuch" aus.

  3. Führen Sie den folgenden Python Codeausschnitt aus:

    display(dbutils.fs.ls('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/'))
    

    Dadurch wird eine Liste der Dateipfade am externen Speicherort angezeigt. In diesem Beispiel wird die abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv Datei in der Ausgabe angezeigt.

  4. Um eine bestimmte Datei am externen Speicherort zu lesen, führen Sie den folgenden Python Codeausschnitt aus:

    spark.read.format("csv") \
       .option("header", "true") \
       .option("delimiter", ";") \
       .load('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv') \
       .display()
    

    Dadurch werden die Daten in der abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv Datei angezeigt.

Nächste Schritte