Een externe locatie maken om cloudopslag te verbinden met Azure Databricks
In dit artikel wordt beschreven hoe u een externe locatie in Unity Catalog configureert om cloudopslag te verbinden met Azure Databricks.
Externe locaties koppelen Unity Catalog-opslagreferenties aan opslagcontainers voor cloudobjecten. Externe locaties worden gebruikt voor het definiëren van beheerde opslaglocaties voor catalogi en schema's, en voor het definiëren van locaties voor externe tabellen en externe volumes.
U kunt een externe locatie maken die verwijst naar opslag in een Azure Data Lake Storage Gen2-opslagcontainer of Cloudflare R2-bucket.
U kunt een externe locatie maken met Behulp van Catalog Explorer, de Databricks CLI, SQL-opdrachten in een notebook of Databricks SQL-query of Terraform.
Zie Toegang tot cloudopslag beheren met behulp van Unity Catalog voor meer informatie over het gebruik van externe locaties en de relatie tussen opslagreferenties en externe locaties.
Voordat u begint
Vereisten:
U moet de Azure Data Lake Storage Gen2-opslagcontainer of Cloudflare R2-bucket maken die u wilt gebruiken als een externe locatie voordat u het externe locatieobject maakt in Azure Databricks.
Azure Data Lake Storage Gen2-opslagaccounts die u als externe locaties gebruikt, moeten een hiërarchische naamruimte hebben.
U moet een opslagreferentie hebben gedefinieerd in Azure Databricks die toegang geeft tot het locatiepad voor de cloudopslag. Zie Een opslagreferentie maken om verbinding te maken met Azure Data Lake Storage Gen2 en een opslagreferentie maken om verbinding te maken met Cloudflare R2.
Vereisten voor machtigingen:
- U moet de
CREATE EXTERNAL LOCATION
bevoegdheid hebben voor zowel de metastore als de opslagreferentie waarnaar wordt verwezen op de externe locatie. Metastore-beheerders hebbenCREATE EXTERNAL LOCATION
standaard toegang tot de metastore. - Als u een externe locatie maakt voor de DBFS-hoofdopslaglocatie, kan het systeem de opslagreferentie voor u maken, maar u moet een werkruimtebeheerder zijn. Zie Een externe locatie maken voor gegevens in de DBFS-hoofdmap voor meer informatie
Handmatig een externe locatie maken met Behulp van Catalog Explorer
U kunt handmatig een externe locatie maken met Behulp van Catalog Explorer.
Machtigingen en vereisten: zie Voordat u begint.
De externe locatie maken:
Meld u aan bij een werkruimte die is gekoppeld aan de metastore.
Klik in de zijbalk op Catalogus.
Klik op de pagina Snelle toegang op de >, ga naar het tabblad Externe locaties en klik op Locatie maken.
Voer een externe locatienaam in.
Onder URLvoert u het pad naar de externe locatie in of selecteert u het. U hebt drie opties:
Als u het containerpad wilt kopiëren van een bestaand DBFS-koppelpunt, klikt u op Kopiëren vanuit DBFS-.
Als u het subpad naar de dbFS-hoofdopslaglocatie wilt kopiëren, klikt u op Kopiëren vanuit DBFS- en selecteert u Kopiëren vanuit de DBFS-hoofdmap. Als u een werkruimtebeheerder bent, maakt het systeem ook de opslagreferentie voor u.
Zie Een externe locatie maken voor gegevens in de DBFS-hoofdmap.
Als u niet kopieert vanaf een bestaand koppelpunt of DBFS-hoofdmap, gebruikt u de URL veld om het opslagcontainer- of R2-bucketpad in te voeren dat u als externe locatie wilt gebruiken.
Bijvoorbeeld
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ofr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.
Selecteer de opslagreferentie die toegang verleent tot de externe locatie.
Notitie
Als uw externe locatie voor de DBFS-hoofdmap is en u een werkruimtebeheerder bent, maakt het systeem de opslagreferenties voor u en hoeft u er geen te selecteren.
Als u geen opslagreferentie hebt, kunt u er een maken:
Selecteer in de vervolgkeuzelijst Opslagreferentie+ Nieuwe opslagreferenties maken.
Selecteer in de vervolgkeuzelijst referentietype het type referentie dat u wilt gebruiken in het opslagreferentieobject: Azure Managed Identity of Cloudflare API-token.
Voer voor Azure Managed Identity de id van de toegangsconnector in en (optioneel) de door de gebruiker toegewezen beheerde identiteit die toegang geeft tot de opslaglocatie. Voer voor Cloudflare-API-tokens het Cloudflare-account, de toegangssleutel-id en de geheime toegangssleutel in.
Zie Een opslagreferentie maken voor het maken van verbinding met Azure Data Lake Storage Gen2 of Een opslagreferentie maken voor het maken van verbinding met Cloudflare R2.
(Optioneel) Als u wilt dat gebruikers alleen-lezentoegang hebben tot de externe locatie, klikt u op Geavanceerde opties en selecteert u Alleen-lezen. Zie Een externe locatie markeren als alleen-lezen voor meer informatie.
(Optioneel) Als de externe locatie is bedoeld voor een federatieve Hive-metastore-catalogus, klikt u op Geavanceerde opties en schakelt u terugvalmodus in.
Klik op Create.
(Optioneel) Koppel de externe locatie aan specifieke werkruimten.
Standaard kan elke bevoegde gebruiker de externe locatie gebruiken op elke werkruimte die is gekoppeld aan de metastore. Als u alleen toegang vanuit specifieke werkruimten wilt toestaan, gaat u naar het tabblad Werkruimten en wijst u werkruimten toe. Zie (optioneel) Een externe locatie toewijzen aan specifieke werkruimten.
Ga naar het tabblad Machtigingen om toestemming te verlenen voor het gebruik van de externe locatie.
Als u de externe locatie wilt gebruiken, moet u machtigingen verlenen:
- Als u de externe locatie wilt gebruiken om een beheerde opslaglocatie toe te voegen aan metastore, catalogus of schema, verleent u de
CREATE MANAGED LOCATION
bevoegdheid. - Als u externe tabellen of volumes wilt maken, verleent
CREATE EXTERNAL TABLE
ofCREATE EXTERNAL VOLUME
.
- Klik op Verlenen.
- Selecteer in het dialoogvenster Verlenen in
<external location>
het veld Principals gebruikers, groepen of service-principalsen selecteer de bevoegdheid die u wilt verlenen. - Klik op Verlenen.
- Als u de externe locatie wilt gebruiken om een beheerde opslaglocatie toe te voegen aan metastore, catalogus of schema, verleent u de
Een externe locatie maken met BEHULP van SQL
Als u een externe locatie wilt maken met behulp van SQL, voert u de volgende opdracht uit in een notebook of de SQL-query-editor. Vervang de waarden van de tijdelijke aanduidingen. Zie Voordat u begint voor vereiste machtigingen en vereisten.
<location-name>
: Een naam voor de externe locatie. Alslocation_name
speciale tekens zijn opgenomen, zoals afbreekstreepjes (-
), moet deze worden omgeven door backticks (` `
). Zie Namen.<bucket-path>
: het pad in uw cloudtenant waartoe deze externe locatie toegang verleent. Bijvoorbeeldabfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ofr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
: De naam van de opslagreferentie waarmee het lezen van en schrijven naar de opslagcontainer of het bucketpad wordt geautoriseerd. Als de naam van de opslagreferentie speciale tekens bevat, zoals afbreekstreepjes (-
), moet deze worden omgeven door backticks (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Als u de toegang tot externe locaties wilt beperken tot specifieke werkruimten in uw account, ook wel werkruimtebinding of isolatie van externe locaties genoemd, raadpleegt u (Optioneel) Een externe locatie toewijzen aan specifieke werkruimten.
(Optioneel) Een externe locatie toewijzen aan specifieke werkruimten
Belangrijk
Deze functie is beschikbaar als openbare preview.
Standaard is een externe locatie toegankelijk vanuit alle werkruimten in de metastore. Dit betekent dat als een gebruiker een bevoegdheid (zoals READ FILES
) op die externe locatie heeft gekregen, deze bevoegdheden kan uitoefenen vanuit elke werkruimte die is gekoppeld aan de metastore. Als u werkruimten gebruikt om de toegang tot gebruikersgegevens te isoleren, wilt u mogelijk alleen toegang tot een externe locatie vanuit specifieke werkruimten toestaan. Deze functie staat bekend als werkruimtebinding of isolatie van externe locaties.
Typische gebruiksvoorbeelden voor het binden van een externe locatie aan specifieke werkruimten zijn onder andere:
- Ervoor zorgen dat gegevenstechnici die de
CREATE EXTERNAL TABLE
bevoegdheid hebben op een externe locatie die productiegegevens bevat, alleen externe tabellen op die locatie kunnen maken in een productiewerkruimte. - Ervoor zorgen dat data engineers die de
READ FILES
bevoegdheid hebben op een externe locatie die gevoelige gegevens bevat, alleen specifieke werkruimten kunnen gebruiken om toegang te krijgen tot die gegevens.
Zie Catalogustoegang beperken tot specifieke werkruimten voor meer informatie over het beperken van andere typen gegevenstoegang per werkruimte.
Belangrijk
Er wordt naar werkruimtebindingen verwezen op het moment dat bevoegdheden voor de externe locatie worden uitgevoerd. Als een gebruiker bijvoorbeeld een externe tabel maakt door de instructie CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
uit te geven vanuit de myWorkspace
werkruimte, worden de volgende controles voor werkruimtebindingen uitgevoerd naast reguliere controles van gebruikersbevoegdheden:
- Is de externe locatie gebonden
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
aanmyWorkspace
? - Is de catalogus
myCat
gebonden aanmyWorkspace
toegangsniveauRead & Write
?
Als de externe locatie vervolgens niet afhankelijk is van myWorkspace
, blijft de externe tabel functioneren.
Met deze functie kunt u ook een catalogus vullen vanuit een centrale werkruimte en deze beschikbaar maken voor andere werkruimten met behulp van catalogusbindingen, zonder dat u ook de externe locatie beschikbaar hoeft te maken in die andere werkruimten.
Een externe locatie verbinden met een of meer werkruimten
Als u een externe locatie wilt toewijzen aan specifieke werkruimten, kunt u Catalog Explorer of de Databricks CLI gebruiken.
vereiste machtigingen: Metastore-beheerder, eigenaar van externe locatie of MANAGE
op de externe locatie.
Notitie
Metastore-beheerders kunnen alle externe locaties in een metastore zien met Behulp van Catalog Explorer, en eigenaren van externe locaties kunnen alle externe locaties zien waarvan ze eigenaar zijn in een metastore, ongeacht of de externe locatie is toegewezen aan de huidige werkruimte. Externe locaties die niet zijn toegewezen aan de werkruimte, worden grijs weergegeven.
Catalogusverkenner
Meld u aan bij een werkruimte die is gekoppeld aan de metastore.
Klik in de zijbalk op Catalogus.
Klik op de pagina Snelle toegang op de knop Externe gegevens > om naar het tabblad Externe locaties te gaan.
Selecteer de externe locatie en ga naar het tabblad Werkruimten .
Schakel op het tabblad Werkruimten het selectievakje Alle werkruimten toegang hebben .
Als uw externe locatie al is gebonden aan een of meer werkruimten, is dit selectievakje al uitgeschakeld.
Klik op Toewijzen aan werkruimten en voer de werkruimten in die u wilt toewijzen of zoek deze.
Als u de toegang wilt intrekken, gaat u naar het tabblad Werkruimten , selecteert u de werkruimte en klikt u op Intrekken. Als u toegang wilt toestaan vanuit alle werkruimten, schakelt u het selectievakje Alle werkruimten toegang hebben .
CLI
Er zijn twee Databricks CLI-opdrachtgroepen en twee stappen vereist om een externe locatie toe te wijzen aan een werkruimte.
Vervang in de volgende voorbeelden door <profile-name>
de naam van uw Azure Databricks-verificatieconfiguratieprofiel. Het moet de waarde van een persoonlijk toegangstoken bevatten, naast de naam van het werkruimte-exemplaar en de werkruimte-id van de werkruimte waarin u het persoonlijke toegangstoken hebt gegenereerd. Zie persoonlijke toegangstokenverificatie van Azure Databricks.
Gebruik de opdracht van de
external-locations
opdrachtgroepupdate
om de externe locatieisolation mode
ISOLATED
in te stellen op:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
De standaardwaarde
isolation-mode
isOPEN
voor alle werkruimten die zijn gekoppeld aan de metastore.Gebruik de opdracht van de
workspace-bindings
opdrachtgroepupdate-bindings
om de werkruimten toe te wijzen aan de externe locatie:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
Gebruik de
"add"
en"remove"
eigenschappen om werkruimtebindingen toe te voegen of te verwijderen.Notitie
Alleen-lezenbinding (
BINDING_TYPE_READ_ONLY
) is niet beschikbaar voor externe locaties. Daarom is er geen reden om in te stellenbinding_type
voor de binding van externe locaties.
Als u alle werkruimtetoewijzingen voor een externe locatie wilt weergeven, gebruikt u de opdracht van workspace-bindings
de get-bindings
opdrachtgroep:
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Zie ook Werkruimtebindingen in de REST API-verwijzing.
Een externe locatie uit een werkruimte ontkoppelen
Instructies voor het intrekken van werkruimtetoegang tot een externe locatie met Behulp van Catalog Explorer of de workspace-bindings
CLI-opdrachtgroep zijn opgenomen in Een externe locatie binden aan een of meer werkruimten.
Volgende stappen
- Geef andere gebruikers toestemming om externe locaties te gebruiken. Zie Externe locaties beheren.
- Beheerde opslaglocaties definiëren met behulp van externe locaties. Zie Een beheerde opslaglocatie opgeven in Unity Catalog.
- Externe tabellen definiëren met behulp van externe locaties. Zie Werken met externe tabellen.
- Definieer externe volumes met behulp van externe locaties. Zie Wat zijn Unity Catalog-volumes?