Skapa en extern plats för att ansluta molnlagring till Azure Databricks
Den här artikeln beskriver hur du konfigurerar en extern plats i Unity Catalog för att ansluta molnlagring till Azure Databricks.
Externa platser associerar Unity Catalog storage credentials med lagringscontainrar för molnobjekt. Externa platser används för att definiera hanterade lagringsplatser för catalogs och scheman och för att definiera platser för externa tables och externa volumes.
Du kan skapa en extern plats som refererar till lagring i en Azure Data Lake Storage Gen2-lagringscontainer eller Cloudflare R2-bucket.
Du kan skapa en extern plats med hjälp av Catalog Explorer, Databricks CLI, SQL-kommandon i en notebook eller en Databricks SQL-fråga, eller Terraform.
Mer information om användningen av externa platser och relationen mellan lagring credentials och externa platser finns i Hantera åtkomst till molnlagring med Unity Catalog.
Innan du börjar
Förutsättningar:
Du måste skapa Azure Data Lake Storage Gen2-lagringscontainern eller Cloudflare R2-bucketen som du vill använda som extern plats innan du skapar det externa platsobjektet i Azure Databricks.
Azure Data Lake Storage Gen2-lagringskonton som du använder som externa platser måste ha ett hierarkiskt namnområde.
Du måste ha en definierad lagringsautentiseringsuppgift i Azure Databricks som ger åtkomst till platsen för molnlagring. Se Skapa en lagringsautentiseringsuppgift för att ansluta till Azure Data Lake Storage Gen2 och Skapa en lagringsautentiseringsuppgift för anslutning till Cloudflare R2.
Behörighetskrav:
- Du måste ha behörighet för
CREATE EXTERNAL LOCATION
både metaarkivet och lagringsautentiseringsuppgifterna som refereras till på den externa platsen. Metaarkivadministratörer harCREATE EXTERNAL LOCATION
på metaarkivet som standard. - Om du skapar en extern plats för DBFS-rotlagringsplatsen kan systemet skapa lagringsautentiseringsuppgifterna åt dig, men du måste vara administratör för arbetsytan. Mer information finns i Skapa en extern plats för data i DBFS-rot
Skapa en extern plats manuellt med Catalog Explorer
Du kan skapa en extern plats manuellt med hjälp av Catalog Explorer.
Behörigheter och förutsättningar: se Innan du börjar.
Så här skapar du den externa platsen:
Logga in på en arbetsyta som är kopplad till metaarkivet.
I sidofältet klickar du på ikonen
Catalog.
På sidan Snabbåtkomst klickar du på knappen Externa data > , går till fliken Externa platser och klickar på Skapa plats.
Ange ett namn på en extern plats.
Under URLanger du eller select sökvägen till den externa platsen. Du har tre alternativ:
Om du vill kopiera containersökvägen från en befintlig DBFS-monteringspunktklickar du på Kopiera från DBFS-.
Om du vill kopiera undervägen till DBFS-rotens lagringsplats klickar du på Kopiera från DBFS och selectKopiera från DBFS-roten. Om du är administratör för arbetsytan skapar systemet även lagringsautentiseringsuppgifterna åt dig.
Om du inte kopierar från en befintlig monteringspunkt eller DBFS-rot använder du fältet URL för att ange den lagringsbehållare eller R2-bucketens sökväg som du vill använda som extern plats.
Exempel:
abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ellerr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.
Select lagringsautentiseringsuppgifterna som ger åtkomst till den externa platsen.
Kommentar
Om din externa plats är för DBFS-roten och du är arbetsyteadministratör skapar systemet lagringsautentiseringsuppgifterna åt dig och du behöver inte select en.
Om du inte har någon lagringsautentiseringsuppgift kan du skapa en:
I listrutan för lagringsautentiseringsuppgifterlistselect+ Skapa nya lagringsautentiseringsuppgifter.
I listrutan autentiseringsuppgifter listrutan listselect den typ av autentiseringsuppgifter som du vill använda i lagringsautentiseringsobjektet: Azure Managed Identity eller Cloudflare API-token.
För Azure Managed Identity anger du åtkomstanslutnings-ID och (valfritt) den användartilldelade hanterade identiteten som ger åtkomst till lagringsplatsen. För Cloudflare API-token anger du Cloudflare-kontot, åtkomstnyckelns ID och den hemliga åtkomstnyckeln.
Mer information finns i Skapa en lagringsreferens för att ansluta till Azure Data Lake Storage Gen2 eller Skapa en lagringsreferens för att ansluta till Cloudflare R2.
(Valfritt) Om du vill att användarna ska ha skrivskyddad åtkomst till den externa platsen klickar du på Avancerade alternativ och selectSkrivskyddad. Mer information finns i Markera en extern plats som skrivskyddad.
(Valfritt) Om den externa platsen är avsedd för ett Federerat Hive-metaarkiv catalogklickar du på Avancerade alternativ och aktiverar återställningsläge.
Klicka på Skapa.
(Valfritt) Binda den externa platsen till specifika arbetsytor.
Som standard kan alla privilegierade användare använda den externa platsen på valfri arbetsyta som är kopplad till metaarkivet. Om du bara vill tillåta åtkomst från specifika arbetsytor går du till fliken Arbetsytor och tilldelar arbetsytor. Se (Valfritt) Tilldela en extern plats till specifika arbetsytor.
Gå till fliken Behörigheter för att grant behörighet att använda den externa platsen.
För att någon ska kunna använda den externa platsen måste man ha grant behörighet:
- För att använda den externa platsen för att lägga till en hanterad lagringsplats i metaarkivet behöver du catalog, schema, eller grant,
CREATE MANAGED LOCATION
-behörighet. - För att skapa externa tables eller volumes, grant
CREATE EXTERNAL TABLE
ellerCREATE EXTERNAL VOLUME
.
- Klicka på Grant.
- I dialogrutan Grant på
<external location>
, select användare, grupper eller tjänstehuvuden i fältet Principals, och select den behörighet som du vill grant. - Klicka på Grant.
- För att använda den externa platsen för att lägga till en hanterad lagringsplats i metaarkivet behöver du catalog, schema, eller grant,
Skapa en extern plats med SQL
Om du vill skapa en extern plats med SQL kör du följande kommando i en notebook-fil eller SQL-frågeredigeraren. Ersätt platshållaren values. Nödvändiga behörigheter och krav finns i Innan du börjar.
<location-name>
: Ett namn på den externa platsen. Omlocation_name
innehåller specialtecken, till exempel bindestreck (-
), måste det omges av backticks (` `
). Se Namn.<bucket-path>
: Sökvägen i molnklientorganisationen som den här externa platsen ger åtkomst till. Exempel:abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path>
ellerr2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>
.<storage-credential-name>
: Namnet på lagringsautentiseringsuppgifterna som tillåter läsning från och skrivning till lagringscontainern eller bucketsökvägen. Om namnet på lagringsautentiseringsuppgifterna innehåller specialtecken, till exempel bindestreck (-
), måste det omges av backticks (` `
).
CREATE EXTERNAL LOCATION [IF NOT EXISTS] `<location-name>`
URL '<bucket-path>'
WITH ([STORAGE] CREDENTIAL `<storage-credential-name>`)
[COMMENT '<comment-string>'];
Om du vill limit extern platsåtkomst till specifika arbetsytor i ditt konto, även kallat bindning av arbetsytor eller extern platsisolering, kan du läsa (valfritt) Tilldela en extern plats till specifika arbetsytor.
(Valfritt) Tilldela en extern plats till specifika arbetsytor
Viktigt!
Den här funktionen finns som allmänt tillgänglig förhandsversion.
Som standard är en extern plats tillgänglig från alla arbetsytor i metaarkivet. Det innebär att om en användare har beviljats behörighet (till exempel ) på den externa platsen kan de utöva den behörigheten från alla arbetsytor som READ FILES
är kopplade till metaarkivet. Om du använder arbetsytor för att isolera åtkomst till användardata kanske du bara vill tillåta åtkomst till en extern plats från specifika arbetsytor. Den här funktionen kallas för bindning av arbetsytor eller extern platsisolering.
Vanliga användningsfall för att binda en extern plats till specifika arbetsytor är:
- Se till att datatekniker som har
CREATE EXTERNAL TABLE
behörighet på en extern plats som innehåller produktionsdata kan skapa externa tables på den platsen endast på en produktionsarbetsyta. - Att säkerställa att datatekniker som har behörighet på
READ FILES
en extern plats som innehåller känsliga data bara kan använda specifika arbetsytor för att komma åt dessa data.
Mer information om hur du begränsar andra typer av dataåtkomst per arbetsyta finns i Limitcatalog åtkomst till specifika arbetsytor.
Viktigt!
Bindningar för arbetsytor refereras till vid den tidpunkt då behörigheter mot den externa platsen utövas. Om en användare till exempel skapar en extern table genom att utfärda instruktionen CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
från myWorkspace
arbetsytan utförs följande bindningskontroller för arbetsytor utöver vanliga behörighetskontroller för användare:
- Är den externa platsen
'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
bunden tillmyWorkspace
? - Är catalog
myCat
bunden tillmyWorkspace
med åtkomstnivåRead & Write
?
Om den externa platsen därefter är obunden från myWorkspace
fortsätter externa table att fungera.
Med den här funktionen kan du också fylla i en catalog från en central arbetsyta och göra den tillgänglig för andra arbetsytor med hjälp av catalog bindningar, utan att också having för att göra den externa platsen tillgänglig på de andra arbetsytorna.
Binda en extern plats till en eller flera arbetsytor
Om du vill tilldela en extern plats till specifika arbetsytor kan du använda Catalog Explorer eller Databricks CLI.
behörigheter som krävs: Metadatalageradministratör, extern platsägare eller MANAGE
på den externa platsen.
Kommentar
Metaarkivadministratörer kan se alla externa platser i ett metaarkiv med hjälp av Catalog Explorer – och externa platsägare kan se alla externa platser som de äger i ett metaarkiv – oavsett om den externa platsen har tilldelats till den aktuella arbetsytan. Externa platser som inte är tilldelade till arbetsytan visas nedtonade.
Catalog Explorer
Logga in på en arbetsyta som är länkad till metaarkivet.
I sidofältet klickar du på ikonen
Catalog.
På sidan Snabbåtkomst klickar du på knappen Externa data > för att gå till fliken Externa platser .
Select den externa platsen och gå till fliken Arbetsytor.
På fliken Arbetsytor avmarkerar du kryssrutan Alla arbetsytor har åtkomst .
Om den externa platsen redan är bunden till en eller flera arbetsytor är den här kryssrutan redan avmarkerad.
Klicka på Tilldela till arbetsytor och ange eller hitta de arbetsytor som du vill tilldela.
För att få tillgång till revoke, gå till fliken Arbetsytor , välj select arbetsytan och klicka på Revoke. Gör så här för att tillåta åtkomst från alla arbetsytor: select kryssrutan Alla arbetsytor har åtkomst.
CLI
Det finns två Databricks CLI-kommandogrupper och två steg som krävs för att tilldela en extern plats till en arbetsyta.
I följande exempel ersätter du <profile-name>
med namnet på din Konfigurationsprofil för Azure Databricks-autentisering. Det bör inkludera värdet av en personlig åtkomsttoken, tillsammans med arbetsytans instansnamn och arbetsyte-ID för den arbetsyta (where) där du skapade den personliga åtkomsttoken. Mer information finns i autentisering med personlig åtkomsttoken i Azure Databricks.
Använd
external-locations
-kommandogruppensupdate
-kommando för att set den externa platsensisolation mode
till attISOLATED
:databricks external-locations update <my-location> \ --isolation-mode ISOLATED \ --profile <profile-name>
Standardvärdet
isolation-mode
är alla arbetsytor som ärOPEN
kopplade till metaarkivet.workspace-bindings
Använd kommandogruppensupdate-bindings
kommando för att tilldela arbetsytorna till den externa platsen:databricks workspace-bindings update-bindings external-location <my-location> \ --json '{ "add": [{"workspace_id": <workspace-id>}...], "remove": [{"workspace_id": <workspace-id>}...] }' --profile <profile-name>
Använd egenskaperna
"add"
och"remove"
för att lägga till eller remove arbetsytebindningar.Kommentar
Skrivskyddad bindning (
BINDING_TYPE_READ_ONLY
) är inte tillgänglig för externa platser. Därför finns det ingen anledning att setbinding_type
för bindningen av externa platser.
Om du vill list alla arbetsytetilldelningar för en extern plats använder du kommandogruppens workspace-bindings
-kommandot get-bindings
.
databricks workspace-bindings get-bindings external-location <my-location> \
--profile <profile-name>
Se även Arbetsytebindningar i REST API-referensen.
Koppla bort en extern plats från en arbetsyta
Instruktioner för att återkalla arbetsytans åtkomst till en extern plats med hjälp av Catalog Explorer eller kommandogruppen workspace-bindings
CLI ingår i Binda en extern plats till en eller flera arbetsytor.
Nästa steg
- Grant andra användare behörighet att använda externa platser. Se Hantera externa platser.
- Definiera hanterade lagringsplatser med hjälp av externa platser. Se Ange en hanterad lagringsplats i Unity Catalog.
- Definiera externa tables med hjälp av externa platser. Se Arbeta med extern tables.
- Definiera externa volumes med hjälp av externa lokationer. Se Vad är Unity Catalogvolumes?.