Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel wordt beschreven hoe u een extern locatieobject in Unity Catalog configureert om de toegang tot cloudopslag vanuit Azure Databricks te beheren.
Overzicht van externe locaties
Externe locaties koppelen opslagreferenties aan opslagcontainers voor cloudobjecten . Externe locaties worden gebruikt om het volgende te definiëren:
Beheerde opslaglocaties voor beheerde tabellen en volumes. Beheerde opslaglocaties kunnen live zijn op metastore-, catalogus- of schemaniveau. Zie Een beheerde opslaglocatie opgeven in Unity Catalog.
Locaties voor externe tabellen en externe volumes.
Externe locaties kunnen verwijzen naar opslag in een Azure Data Lake Storage-opslagcontainer, AWS S3-bucket of Cloudflare R2-bucket.
Het onderstaande diagram vertegenwoordigt de bestandssysteemhiërarchie van één bucket of container voor cloudopslag, met vier externe locaties die één opslagreferentie delen.
Overzicht van het maken van externe locaties
U kunt een van de volgende interfaces gebruiken om een externe locatie te maken:
-
Deze optie biedt een grafische gebruikersinterface. U kunt Catalog Explorer gebruiken om externe locaties te maken waarnaar wordt verwezen: Azure Data Lake Storage-containers, S3-buckets (alleen-lezen), Cloudflare R2-buckets en DBFS-hoofdmap (verouderd)
In dit artikel worden opties 1 en 2 beschreven.
Notitie
Het opslaan van gegevens in de DBFS-hoofdopslaglocatie is een verouderde procedure, en Databricks raadt dit af. Als uw werkruimte echter wel gegevens opslaat in de DBFS-hoofdmap, kunt u een externe locatie maken om de toegang tot die gegevens te beheren met behulp van Unity Catalog. Zie Een externe locatie maken voor gegevens in dbFS-hoofdmap (verouderd) voor meer informatie.
Zie Verbinding maken met cloudobjectopslag 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-opslagcontainer, AWS S3-bucket of Cloudflare R2-bucket maken die u als externe locatie wilt gebruiken voordat u het externe locatieobject maakt in Azure Databricks.
- Azure Data Lake Storage-opslagaccounts die u als externe locaties gebruikt, moeten een hiërarchische naamruimte hebben.
Gebruik geen punt notatie (bijvoorbeeld
incorrect.bucket.name.notation
) in S3-bucketnamen. Hoewel AWS puntjes in bucketnamen toestaat, biedt Databricks geen ondersteuning voor S3-buckets met punt notatie. Buckets met puntjes kunnen compatibiliteitsproblemen veroorzaken met functies zoals Delta Sharing vanwege validatiefouten in SSL-certificaten. Voor meer informatie, zie de aanbevolen procedures voor de naamgeving van AWS-buckets.Externe locatiepaden mogen alleen standaard ASCII-tekens bevatten (letters
A–Z
,a–z
cijfers0–9
en algemene symbolen, zoals/
,_
).-
Aan de bucket kan geen S3-toegangsbeheerlijst zijn gekoppeld.
- U moet een opslagreferentie hebben gedefinieerd in Azure Databricks die toegang geeft tot het locatiepad voor de cloudopslag. Zie Een opslagreferentie maken voor het maken van verbinding met Azure Data Lake Storage, een opslagreferentie maken voor het maken van verbinding met Cloudflare R2 of een opslagreferentie maken om verbinding te maken met AWS S3 (alleen-lezen).
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 hebben standaardinstellingen voorCREATE EXTERNAL LOCATION
op 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 dbFS-hoofdmap (verouderd) voor meer informatie
Optie 1: Een externe locatie maken met Behulp van Catalog Explorer
U kunt een externe locatie handmatig 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.
Selecteer het opslagtype: Azure Data Lake Storage, S3 (alleen-lezen), R2 of DBFS Root.
Het opslaan van gegevens in de DBFS-hoofdmap is een niet-aanbevolen, verouderde procedure. Zie Een externe locatie maken voor gegevens in dbFS-hoofdmap (verouderd) voor meer informatie.
Onder URLvoert u het pad naar de externe locatie in of selecteert u het.
Voor Azure Data Lake Storage, S3 en R2 hebt u de volgende opties:
Als u het containerpad wilt kopiëren van een bestaand DBFS-koppelpunt, klikt u op Kopiëren vanuit DBFS-.
Als u niet kopieert vanaf een bestaand koppelpunt, gebruikt u het URL-veld om het container- of 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>
.
Voor DBFS-hoofdmap:
- Het systeem vult het subpad in op de DBFS-hoofdopslaglocatie. Als u een werkruimtebeheerder bent, maakt het systeem ook de opslagreferentie voor u.
Zie Een externe locatie maken voor gegevens in dbFS-hoofdmap (verouderd).
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.
De referentiegegevens die u invoert, zijn afhankelijk van het opslagtype:
Voer voor Azure Data Lake Storage de connector-id van de toegang in en (optioneel) de door de gebruiker toegewezen beheerde identiteit die toegang geeft tot de opslaglocatie. Zie Een opslagreferentie maken die toegang heeft tot Azure Data Lake Storage
Voer voor Cloudflare-API-tokens het Cloudflare-account, de toegangssleutel-id en de geheime toegangssleutel in. Zie Een opslagreferentie maken om verbinding te maken met Cloudflare R2.
Voer voor AWS S3 de IAM-rol ARN in die toegang geeft tot de opslaglocatie. Zie Een opslagreferentie maken om verbinding te maken met AWS S3 (alleen-lezen).
(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.
Externe locaties die verwijzen naar AWS S3-paden zijn van nature alleen-lezen.
(Optioneel) Als de externe locatie is bedoeld voor een federatieve Hive-metastore-catalogus, klikt u op Geavanceerde opties en schakelt u terugvalmodus in.
(Optioneel, alleen voor AWS S3-locaties) Als voor de S3-bucket SSE-versleuteling is vereist, kunt u een versleutelingsalgoritmen configureren om externe tabellen en volumes in Unity Catalog toegang te geven tot gegevens in uw S3-bucket.
Zie Een versleutelingsalgoritmen configureren op een externe locatie (alleen AWS S3) voor instructies.
(Optioneel) Als u de mogelijkheid wilt inschakelen om u te abonneren op wijzigingsmeldingen op de externe locatie, klikt u op Geavanceerde opties en selecteert u Bestandsevenementen inschakelen.
Zie (Aanbevolen) Bestandsevenementen inschakelen voor een externe locatie 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.
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, moet u
CREATE EXTERNAL TABLE
ofCREATE EXTERNAL VOLUME
verlenen.
- Klik op Toestaan.
- In het dialoogvenster Verlenen
<external location>
selecteert u in het veld Principals de gebruikers, groepen of service-principals en kiest u de bevoegdheid die u wilt verlenen. - Klik op Toestaan.
Optie 2: 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 bevat, zoals afbreekstreepjes (-
), moeten ze 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
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 toegepast. 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
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
dat de externe locatie dekt gebonden aanmyWorkspace
? - Is de catalogus
myCat
verbonden metmyWorkspace
op 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 .
Haal op het tabblad Werkruimtes het vinkje weg uit het selectievakje Alle werkruimtes hebben toegang.
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. Om toegang vanuit alle werkruimten toe te staan, schakelt u het selectievakje Alle werkruimten hebben toegang in.
CLI (Command Line Interface)
Er zijn twee Databricks CLI-opdrachtgroepen en twee stappen vereist om een externe locatie toe te wijzen aan een werkruimte.
Vervang <profile-name>
in de volgende voorbeelden door de naam van uw Azure Databricks-verificatieconfiguratie-profiel. 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
external-locations
opdrachtgroep'supdate
opdracht om de externe locatieisolation mode
in te stellen opISOLATED
: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-lezen koppeling (
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.
Om alle werkruimtetoewijzingen voor een externe locatie weer te geven, gebruikt u de workspace-bindings
opdrachtgroep en diens get-bindings
opdracht.
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 toegang tot een werkruimte naar een externe locatie met behulp van Catalog Explorer of de workspace-bindings
CLI-opdrachtgroep zijn te vinden 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?