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 autentiseringsuppgifter för Unity Catalog-lagring med lagringscontainrar för molnobjekt. Externa platser används för att definiera hanterade lagringsplatser för kataloger och scheman och för att definiera platser för externa tabeller och externa volymer.
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-fil eller Databricks SQL-fråga eller Terraform.
Mer information om användningen av externa platser och relationen mellan autentiseringsuppgifter för lagring 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.
Skapa en extern plats manuellt med Hjälp av Catalog Explorer
Du kan skapa en extern plats manuellt med Hjälp av Katalogutforskaren.
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.
Klicka på Katalog i sidopanelen.
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.
Du kan också kopiera containersökvägen från en befintlig monteringspunkt (endast Azure Data Lake Storage Gen2-containrar).
Om du inte kopierar från en befintlig monteringspunkt använder du FÄLTET URL för att ange den lagringscontainer eller R2-bucketsö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>
.Välj den lagringsautentiseringsuppgift som ger åtkomst till den externa platsen.
(Valfritt) Om du vill att användarna ska ha skrivskyddad åtkomst till den externa platsen klickar du på Avancerade alternativ och väljer Skrivskyddad. Mer information finns i Markera en extern plats som skrivskyddad.
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.
Bevilja behörighet att använda den externa platsen.
För att någon ska kunna använda den externa platsen måste du bevilja behörigheter:
- Om du vill använda den externa platsen för att lägga till en hanterad lagringsplats i metaarkiv, katalog eller schema beviljar du behörigheten
CREATE MANAGED LOCATION
. - Om du vill skapa externa tabeller eller volymer beviljar
CREATE EXTERNAL TABLE
ellerCREATE EXTERNAL VOLUME
.
Så här använder du Catalog Explorer för att bevilja behörigheter:
- Klicka på namnet på den externa platsen för att öppna informationsfönstret.
- På fliken Behörigheter klickar du på Bevilja.
- I dialogrutan Bevilja
<external location>
på väljer du användare, grupper eller tjänstens huvudnamn i fältet Huvudnamn och väljer den behörighet som du vill bevilja. - Klicka på Bevilja.
- Om du vill använda den externa platsen för att lägga till en hanterad lagringsplats i metaarkiv, katalog eller schema beviljar du behörigheten
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ållarvärdena. 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 begränsa åtkomsten till externa platser 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:
- Att säkerställa att datatekniker som har behörighet på
CREATE EXTERNAL TABLE
en extern plats som innehåller produktionsdata kan skapa externa tabeller 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 Begränsa katalogå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 tabell genom att utfärda -instruktionen CREATE TABLE myCat.mySch.myTable LOCATION 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance'
myWorkspace
från 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 katalogen
myCat
bunden tillmyWorkspace
med åtkomstnivåRead & Write
?
Om den externa platsen därefter är obundna från myWorkspace
fortsätter den externa tabellen att fungera.
Med den här funktionen kan du också fylla i en katalog från en central arbetsyta och göra den tillgänglig för andra arbetsytor med hjälp av katalogbindningar, utan att även behöva 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: Metaarkivadministratör eller extern platsägare.
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.
Katalogutforskaren
Logga in på en arbetsyta som är länkad till metaarkivet.
Klicka på Katalog i sidopanelen.
På sidan Snabbåtkomst klickar du på knappen Externa data > för att gå till fliken Externa platser .
Välj 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.
Om du vill återkalla åtkomsten går du till fliken Arbetsytor , väljer arbetsytan och klickar på Återkalla. Om du vill tillåta åtkomst från alla arbetsytor markerar du 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 innehålla värdet för en personlig åtkomsttoken, utöver arbetsytans instansnamn och arbetsyte-ID för arbetsytan där du genererade den personliga åtkomsttoken. Mer information finns i autentisering med personlig åtkomsttoken i Azure Databricks.
external-locations
Använd kommandogruppensupdate
kommando för att ange den externa platsensisolation mode
tillISOLATED
: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>
"add"
Använd egenskaperna och"remove"
för att lägga till eller ta bort arbetsytebindningar.Kommentar
Skrivskyddad bindning (
BINDING_TYPE_READ_ONLY
) är inte tillgänglig för externa platser. Därför finns det ingen anledning att angebinding_type
för bindningen av externa platser.
Om du vill visa en lista över alla arbetsytetilldelningar för en extern plats använder du workspace-bindings
kommandogruppens get-bindings
kommando:
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 Katalogutforskaren workspace-bindings
eller CLI-kommandogruppen ingår i Binda en extern plats till en eller flera arbetsytor.
Nästa steg
- Ge 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 tabeller med hjälp av externa platser. Se Arbeta med externa tabeller.
- Definiera externa volymer med hjälp av externa platser. Se Vad är Unity Catalog-volymer?.