Freigeben über


Erstellen eines externen Speicherorts zum Verbinden des Cloudspeichers mit Azure Databricks

In diesem Artikel wird beschrieben, wie Sie einen externen Speicherort in Unity Catalog zum Verbinden des Cloudspeichers mit Azure Databricks konfigurieren.

Externe Speicherorte ordnen Unity Catalog-Speicheranmeldeinformationen Cloudobjektspeichercontainern zu. Externe Speicherorte werden verwendet, um verwaltete Speicherorte für Kataloge und Schemas zu definieren und Speicherorte für externe Tabellen und externe Volumes zu definieren.

Sie können einen externen Speicherort erstellen, der auf den Speicher in einem Azure Data Lake Storage Gen2-Speichercontainer oder Cloudflare R2-Bucket verweist.

Sie können einen externen Speicherort mithilfe des Katalog-Explorers, der Databricks CLI, SQL-Befehlen in einem Notebook oder einer Databricks SQL-Abfrage oder Terraform erstellen.

Weitere Informationen zur Verwendung externer Speicherorte und der Beziehung zwischen Speicheranmeldeinformationen und externen Speicherorten finden Sie unter Verwalten des Zugriffs auf Cloudspeicher mithilfe des Unity-Katalogs.

Vorbemerkungen

Voraussetzungen:

Berechtigungsanforderungen:

  • Sie müssen sowohl für den Metaspeicher als auch für die Speicheranmeldung, auf die im externen Speicherort verwiesen wird, die Berechtigung CREATE EXTERNAL LOCATION besitzen. Metastore-Administrator*innen haben standardmäßig die Berechtigung CREATE EXTERNAL LOCATION im Metastore.

Manuelles Erstellen eines externen Speicherorts mithilfe des Katalog-Explorers

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

Berechtigungen und Voraussetzungen: Siehe "Bevor Sie beginnen".

So erstellen Sie den externen Speicherort

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

  2. Klicken Sie auf der Seitenleiste auf Katalogsymbol Katalog.

  3. Klicken Sie auf der Seite "Schnellzugriff" auf die Schaltfläche "Externe Daten>", wechseln Sie zur Registerkarte "Externe Speicherorte", und klicken Sie auf "Speicherort erstellen".

  4. Geben Sie den Namen des externen Speicherorts ein.

  5. Kopieren Sie optional den Containerpfad von einem vorhandenen Bereitstellungspunkt (nur Azure Data Lake Storage Gen2-Container).

  6. Wenn Sie nicht von einem vorhandenen Bereitstellungspunkt kopieren, verwenden Sie das Feld URL, um den Speichercontainerpfad oder R2-Bucketpfad einzugeben, der als externer Speicherort verwendet werden soll.

    Zum Beispiel: abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> oder r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

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

  8. (Optional:) Wenn Benutzer*innen schreibgeschützten Zugriff auf den externen Speicherort haben sollen, klicken Sie auf Erweiterte Optionen, und wählen Sie Schreibgeschützt aus. Weitere Informationen finden Sie unter Markieren eines externen Speicherorts als schreibgeschützt.

  9. Klicken Sie auf Erstellen.

  10. (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 (Optional) Zuweisen eines externen Speicherorts zu bestimmten Arbeitsbereichen.

  11. Erteilen Sie die Berechtigung für die Verwendung des externen Speicherorts.

    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.

    So verwenden Sie den Katalog-Explorer zum Erteilen von Berechtigungen

    1. Klicken Sie auf den Namen des externen Speicherorts, um den Detailbereich zu öffnen.
    2. Klicken Sie auf der Registerkarte Berechtigungen auf Erteilen.
    3. 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.
    4. Klicken Sie auf Erteilen.

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. Informationen zu erforderlichen Berechtigungen und Voraussetzungen finden Sie unter "Bevor Sie beginnen".

  • <location-name>: Ein Name für den externen Speicherort. Wenn location_name Sonderzeichen wie Bindestriche (-) enthält, muss es von Backticks (` `) umgeben sein. Siehe Namen.

  • <bucket-path>: Der Pfad in Ihrem Cloudmandanten, auf den dieser externe Speicherort Zugriff gewährt. Zum Beispiel: abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> oder r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  • <storage-credential-name>: Der Name der Speicheranmeldeinformationen, die das Lesen aus und Schreiben in den Speichercontainer oder Bucketpfad autorisieren. 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 '<bucket-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 Arbeitsbereichsbindung oder externe Standortisolation genannt) lesen Sie (Optional) Zuweisen eines externen Speicherorts zu bestimmten Arbeitsbereichen.

(Optional) Zuweisen eines externen Speicherorts zu bestimmten Arbeitsbereichen

Wichtig

Dieses Feature befindet sich in der Public Preview.

Standardmäßig kann auf externe Speicherorte aus allen Arbeitsbereichen im Metastore zugegriffen werden. Dies bedeutet: Wenn Benutzer*innen eine Berechtigung (z. B. READ FILES) für diese externen Speicherorte gewährt wurde, können sie diese Berechtigung von jedem Arbeitsbereich ausüben, der dem Metastore zugeordnet ist. Wenn Sie Arbeitsbereiche verwenden, um den Benutzerdatenzugriff zu isolieren, sollten Sie möglicherweise den Zugriff auf externe Speicherorte nur aus bestimmten Arbeitsbereichen zulassen. Diese Funktion wird als Arbeitsbereichsbindung oder externe Standortisolation bezeichnet.

Typische Anwendungsfälle für die Bindung eines externen Speicherorte an bestimmte Arbeitsbereiche sind:

  • Sicherstellen, dass Technische Fachkräfte für Daten, die über die CREATE EXTERNAL TABLE-Berechtigung für einen externen Speicherort, der Produktionsdaten enthält, verfügen, externe Tabellen an diesem Speicherort nur in einem Produktionsarbeitsbereich erstellen können.
  • Sicherstellen, dass Technische Fachkräfte für Daten, die über die READ FILES-Berechtigung für einen externen Speicherort, der vertrauliche Daten enthält, verfügen, nur bestimmte Arbeitsbereiche verwenden können, um auf diese Daten zuzugreifen.

Weitere Informationen zum Einschränken anderer Arten des Datenzugriffs nach Arbeitsbereich finden Sie unter Einschränken des Katalogzugriffs auf bestimmte Arbeitsbereiche.

Wichtig

Arbeitsbereichsbindungen werden an dem Punkt referenziert, an dem Berechtigungen für den externen Speicherort ausgeübt werden. Wenn ein Benutzer beispielsweise eine externe Tabelle durch Ausstellen der Anweisung CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' aus dem myWorkspace Arbeitsbereich erstellt, werden zusätzlich zu regulären Benutzerberechtigungsprüfungen die folgenden Arbeitsbereichsbindungsprüfungen durchgeführt:

  • Ist die externe Position, die 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' abdeckt an myWorkspace gebunden?
  • Ist der Katalog myCat an myWorkspace mit Zugriffsebene Read & Write gebunden?

Wenn die externe Position nicht an myWorkspace gebunden ist, funktioniert die externe Tabelle weiterhin.

Mit diesem Feature können Sie auch einen Katalog aus einem zentralen Arbeitsbereich auffüllen und für andere Arbeitsbereiche mithilfe von Katalogbindungen verfügbar machen, ohne auch den externen Speicherort in diesen anderen Arbeitsbereichen verfügbar zu machen.

Binden eines externen Speicherorts an einen oder mehrere Arbeitsbereiche

Um einen externen Speicherort bestimmten Arbeitsbereichen zuzuweisen, können Sie den Katalog-Explorer oder die Databricks CLI verwenden.

Erforderliche Berechtigungen: Metastore-Administrator*in oder Besitzer*in externer Speicherorte.

Hinweis

Metastore-Administrator*innen können alle externen Speicherorte in einem Metastore mithilfe des Katalog-Explorers anzeigen. Besitzer*innen externer Speicherorte können alle externen Speicherorte sehen, die sie in einem Metastore besitzen, unabhängig davon, ob der externe Speicherort dem aktuellen Arbeitsbereich zugewiesen ist. Externe Speicherorte, die dem Arbeitsbereich nicht zugewiesen sind, werden ausgegraut angezeigt.

Katalog-Explorer

  1. Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.

  2. Klicken Sie auf der Seitenleiste auf Katalogsymbol Katalog.

  3. Klicken Sie auf der Seite "Schnellzugriff" auf die Schaltfläche "Externe Daten>", um zur Registerkarte "Externe Speicherorte" zu wechseln.

  4. Wählen Sie den externen Speicherort aus, und wechseln Sie zur Registerkarte Arbeitsbereiche.

  5. Deaktivieren Sie auf der Registerkarte Arbeitsbereiche das Kontrollkästchen Alle Arbeitsbereiche haben Zugriff.

    Wenn Ihr externer Speicherort bereits an einen oder mehrere Arbeitsbereiche gebunden ist, ist dieses Kontrollkästchen bereits deaktiviert.

  6. Klicken Sie auf Arbeitsbereichen zuordnen und geben Sie die Arbeitsbereiche ein, die Sie zuordnen möchten, oder suchen Sie diese.

Um den Zugriff zu widerrufen, wechseln Sie zur Registerkarte Arbeitsbereiche, wählen Sie den Arbeitsbereich aus, und klicken Sie auf Widerrufen. Um den Zugriff von allen Arbeitsbereichen zuzulassen, aktivieren Sie das Kontrollkästchen Alle Arbeitsbereiche haben Zugriff.

BEFEHLSZEILENSCHNITTSTELLE (CLI)

Es gibt zwei CLI-Befehlsgruppen für Databricks und zwei Schritte, die zum Zuweisen eines externen Speicherorts zu einem Arbeitsbereich erforderlich sind.

In den folgenden Beispielen, ersetzen Sie <profile-name> mit dem Namen Ihres Azure Databricks-Authentifizierungskonfigurationsprofils. Sie sollte den Wert eines persönlichen Zugriffstokens zusätzlich zu dem Arbeitsbereichsinstanznamen und der Arbeitsbereichs-ID des Arbeitsbereichs enthalten, in dem Sie das persönliche Zugriffstoken generiert haben. Siehe Authentifizieren mit persönlichen Azure Databricks-Zugriffstoken.

  1. Verwenden Sie den update-Befehl der external-locations-Befehlsgruppe, um isolation mode des externen Speicherorts auf ISOLATED festzulegen:

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    Die isolation-mode-Standardeinstellung ist OPEN für alle Arbeitsbereiche, die an den Metastore angefügt sind.

  2. Verwenden Sie den update-bindings-Befehl der workspace-bindings-Befehlsgruppe, um die Arbeitsbereiche dem externen Speicherorts zuzuweisen:

    databricks workspace-bindings update-bindings external-location <my-location> \
    --json '{
      "add": [{"workspace_id": <workspace-id>}...],
      "remove": [{"workspace_id": <workspace-id>}...]
    }' --profile <profile-name>
    

    Verwenden Sie die Eigenschaften "add" und "remove", um Arbeitsbereichsbindungen hinzuzufügen oder zu entfernen.

    Hinweis

    Schreibgeschützte Bindung (BINDING_TYPE_READ_ONLY) ist für externe Speicherorte nicht verfügbar. Daher gibt es keinen Grund, binding_type für die Bindung externer Speicherorte festzulegen.

Verwenden Sie den get-bindings-Befehl der workspace-bindings-Befehlsgruppe, um alle Arbeitsbereichszuweisungen für einen externen Speicherort aufzulisten:

databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>

Siehe auch Arbeitsbereichsbindungen in der REST-API-Referenz.

Aufheben der Bindung eines externen Speicherorts an einen Arbeitsbereich

Anweisungen zum Widerrufen des Arbeitsbereichszugriffs auf externe Speicherorte mithilfe des Katalog-Explorers oder der workspace-bindings CLI-Befehlsgruppe sind in Binden von externen Speicherorten an einen oder mehrere Arbeitsbereiche enthalten.

Nächste Schritte