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:
Sie müssen den Azure Data Lake Storage Gen2-Speichercontainer oder Cloudflare R2-Bucket erstellen, den Sie als externen Speicherort verwenden möchten, bevor Sie das externe Standortobjekt in Azure Databricks erstellen.
Azure Data Lake Storage Gen2-Speicherkonten, die Sie als externe Speicherorte verwenden, müssen über einen hierarchischen Namespace verfügen.
Sie müssen über eine in Azure Databricks definierte Speicheranmeldeinformationen verfügen, die Zugriff auf den Pfad des Cloudspeicherorts erhalten. Weitere Informationen finden Sie unter Erstellen von Speicheranmeldeinformationen zum Herstellen einer Verbindung mit Azure Data Lake Storage Gen2 und Erstellen von Speicheranmeldeinformationen zum Herstellen einer Verbindung mit Cloudflare R2.
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 BerechtigungCREATE 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
Melden Sie sich bei einem Arbeitsbereich an, der dem Metastore angefügt ist.
Klicken Sie auf der Seitenleiste auf Katalog.
Klicken Sie auf der Seite "Schnellzugriff" auf die Schaltfläche "Externe Daten>", wechseln Sie zur Registerkarte "Externe Speicherorte", und klicken Sie auf "Speicherort erstellen".
Geben Sie den Namen des externen Speicherorts ein.
Kopieren Sie optional den Containerpfad von einem vorhandenen Bereitstellungspunkt (nur Azure Data Lake Storage Gen2-Container).
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>
oderr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.Wählen Sie die Speicheranmeldeinformationen aus, die Zugriff auf den externen Speicherort gewähren.
(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.
Klicken Sie auf Erstellen.
(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.
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
oderCREATE EXTERNAL VOLUME
.
So verwenden Sie den Katalog-Explorer zum Erteilen von Berechtigungen
- Klicken Sie auf den Namen des externen Speicherorts, um den Detailbereich zu öffnen.
- Klicken Sie auf der Registerkarte Berechtigungen auf Erteilen.
- 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. - Klicken Sie auf Erteilen.
- Um den externen Speicherort als verwalteten Speicherort für einen Metastore, einen Katalog oder ein Schema hinzuzufügen, erteilen Sie die Berechtigung
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. Wennlocation_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>
oderr2://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 anmyWorkspace
gebunden? - Ist der Katalog
myCat
anmyWorkspace
mit ZugriffsebeneRead & 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
Melden Sie sich bei einem Arbeitsbereich an, der mit dem Metastore verknüpft ist.
Klicken Sie auf der Seitenleiste auf Katalog.
Klicken Sie auf der Seite "Schnellzugriff" auf die Schaltfläche "Externe Daten>", um zur Registerkarte "Externe Speicherorte" zu wechseln.
Wählen Sie den externen Speicherort aus, und wechseln Sie zur Registerkarte Arbeitsbereiche.
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.
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.
Verwenden Sie den
update
-Befehl derexternal-locations
-Befehlsgruppe, umisolation mode
des externen Speicherorts aufISOLATED
festzulegen:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
Die
isolation-mode
-Standardeinstellung istOPEN
für alle Arbeitsbereiche, die an den Metastore angefügt sind.Verwenden Sie den
update-bindings
-Befehl derworkspace-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
- Erteilen Sie anderen Benutzern die Berechtigung, externe Speicherorte zu verwenden. Siehe Verwalten externer Speicherorte.
- Definieren Sie verwaltete Speicherorte mithilfe externer Speicherorte. Weitere Informationen finden Sie unter Angeben eines verwalteten Speicherorts in Unity Catalog.
- Definieren Sie externe Tabellen mithilfe externer Speicherorte. Weitere Informationen finden Sie unter Verwenden verwalteter Tabellen.
- Definieren Sie externe Volumes mithilfe externer Speicherorte. Weitere Informationen finden Sie unter Was sind Unity Catalog-Volumes?.