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.
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 knop Externe gegevens>, ga naar het tabblad Externe locaties en klik op Locatie maken.
Voer een externe locatienaam in.
Kopieer desgewenst het containerpad van een bestaand koppelpunt (alleen Azure Data Lake Storage Gen2-containers).
Als u niet kopieert vanaf een bestaand koppelpunt, gebruikt u het 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.
(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.
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.
Verdeel toestemming om de externe locatie te gebruiken.
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
.
Catalogusverkenner gebruiken om machtigingen te verlenen:
- Klik op de naam van de externe locatie om het detailvenster te openen.
- Klik op het tabblad Machtigingen op Verlenen.
- Selecteer in het dialoogvenster Verlenen in
<external location>
het veld Principals gebruikers, groepen of service-principals en 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 of externe locatie-eigenaar.
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 get-bindings
de workspace-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?