Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln beskriver hur du konfigurerar ett externt platsobjekt i Unity Catalog för att styra åtkomsten till molnlagring från Azure Databricks.
Översikt över externa platser
Externa platser associerar autentiseringsuppgifter för lagring med lagringscontainrar för molnobjekt. Externa platser används för att definiera:
Hanterade lagringsplatser för hanterade tabeller och volymer. Hanterade lagringsplatser kan finnas på metaarkiv-, katalog- eller schemanivå. Se Ange en hanterad lagringsplats i Unity Catalog.
Platser för externa tabeller och externa volymer.
Externa platser kan referera till lagring i en Azure Data Lake Storage-lagringscontainer, AWS S3-bucket eller Cloudflare R2-bucket.
Diagrammet nedan representerar filsystemhierarkin för en enda molnlagrings bucket eller container, med fyra externa platser som delar en lagringsautentiseringsuppgift.
Översikt över skapande av extern plats
Du kan använda något av följande gränssnitt för att skapa en extern plats:
-
Det här alternativet innehåller ett grafiskt användargränssnitt. Du kan använda Catalog Explorer för att skapa externa platser som refererar till: Azure Data Lake Storage-behållare, S3-behållare (endast läsbara), Cloudflare R2-behållare och DBFS-roten (äldre).
Den här artikeln beskriver alternativ 1 och 2.
Kommentar
Lagring av data på DBFS-rotlagringsplatsen är en äldre metod, och Databricks rekommenderar mot det. Men om din arbetsyta lagrar data i DBFS-roten kan du skapa en extern plats för att styra åtkomsten till dessa data med hjälp av Unity Catalog. Mer information finns i Skapa en extern plats för data i DBFS-roten (äldre).
Mer information om användningen av externa platser och relationen mellan lagringsuppgifter och externa platser finns i Ansluta till molnobjektlagring med Unity Catalog.
Innan du börjar
Förutsättningar:
Du måste skapa Azure Data Lake Storage-lagringscontainern, AWS S3-bucketen 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-lagringskonton som du använder som externa platser måste ha ett hierarkiskt namnområde.
Använd inte punkt notation (till exempel
incorrect.bucket.name.notation
) i S3 bucketnamn. Även om AWS tillåter punkter i bucketnamn stöder Databricks inte S3-bucketar med punkt notation. Bucketar som innehåller punkter kan orsaka kompatibilitetsproblem med funktioner som Deltadelning på grund av SSL-certifikatverifieringsfel. Mer information finns i metodtipsen för namngivning av AWS-bucketnamn.Sökvägar för externa platser får endast innehålla ASCII-standardtecken (bokstäver
A–Z
, , siffror0–9
och vanliga symboler som/
,_
,-
a–z
).Hinken kan inte ha en S3-åtkomstkontroll-lista kopplad till sig.
- 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, Skapa en lagringsautentiseringsuppgift för anslutning till Cloudflare R2 eller Skapa en lagringsautentiseringsuppgift för anslutning till AWS S3 (skrivskyddad).
Behörighetskrav:
- Du måste ha
CREATE EXTERNAL LOCATION
-behörighet både på metaarkivet och lagringsautentiseringarna som refereras i 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-roten (äldre)
Alternativ 1: Skapa en extern plats med Hjälp av Katalogutforskaren
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 ansluten till metastore.
I sidofältet klickar du på
Katalog.
På sidan Snabbåtkomst klickar du på knappen Externa data > , går till fliken Externa platser och klickar på Skapa plats.
Ange ett externt platsnamn.
Välj lagringstyp: Azure Data Lake Storage, S3 (skrivskyddad), R2 eller DBFS-rot.
Att lagra data i DBFS-roten är en okommentad, äldre metod. Mer information finns i Skapa en extern plats för data i DBFS-roten (äldre).
Under URL-anger eller väljer du sökvägen till den externa platsen.
För Azure Data Lake Storage, S3 och R2 har du följande alternativ:
Om du vill kopiera containersökvägen från en befintlig DBFS-monteringspunktklickar du på Kopiera från DBFS-.
Om du inte kopierar från en befintlig monteringspunkt använder du FÄLTET URL för att ange den container eller 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>
.
För DBFS-rot:
- Systemet fyller i undersökvägen till DBFS-rotlagringsplatsen. Om du är administratör för arbetsytan skapar systemet även lagringsautentiseringsuppgifterna åt dig.
Välj den lagringsautentiseringsuppgift 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 välja någon.
Om du inte har någon lagringsautentiseringsuppgift kan du skapa en:
I rullgardinsmenyn Storage-autentiseringsuppgifter väljer du + Skapa nya lagringsuppgifter.
Vilken information om autentiseringsuppgifter du anger beror på lagringstypen:
För Azure Data Lake Storage anger du åtkomstanslutnings-ID och (valfritt) den användartilldelade hanterade identiteten som ger åtkomst till lagringsplatsen. Se Skapa en lagringsautentiseringsuppgift som har åtkomst till Azure Data Lake Storage
För Cloudflare API-token anger du Cloudflare-kontot, åtkomstnyckelns ID och den hemliga åtkomstnyckeln. Se Skapa en lagringsautentiseringsuppgift för anslutning till Cloudflare R2.
För AWS S3 anger du IAM-rollen ARN som ger åtkomst till lagringsplatsen. Se Skapa en lagringsautentiseringsuppgift för anslutning till AWS S3 (skrivskyddad).
(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.
Externa platser som refererar till AWS S3-sökvägar är i sig skrivskyddade.
(Valfritt) Om den externa platsen är avsedd för en federerad Hive-metastorekatalog klickar du på Avancerade alternativ och aktiverar Återgångsläge.
(Valfritt, endast för AWS S3-platser) Om S3-bucketen kräver SSE-kryptering kan du konfigurera en krypteringsalgoritm så att externa tabeller och volymer i Unity Catalog kan komma åt data i S3-bucketen.
Anvisningar finns i Konfigurera en krypteringsalgoritm på en extern plats (endast AWS S3).
(Valfritt) Om du vill aktivera möjligheten att prenumerera på ändringsmeddelanden på den externa platsen klickar du på Avancerade alternativ och väljer Aktivera filhändelser.
Mer information finns i (Rekommenderas) Aktivera filhändelser för en extern plats.
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 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, bevilja åtkomst till
CREATE EXTERNAL TABLE
ellerCREATE EXTERNAL VOLUME
.
- Klicka på Tillåt.
- På dialogrutan Grant on
<external location>
väljer du användare, grupper eller tjänsternas huvudprinciper i Principals-fältet och väljer den behörighet som du vill bevilja. - Klicka på Tillåt.
Alternativ 2: 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 din molnklientorganisation 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å lagringsautentiseringen som tillåter läsning från och skrivning till lagringscontainern eller bucketens sökväg. 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
Som standardinställning är en extern plats åtkomlig från alla arbetsytor i metastore. 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 blir obunden 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: 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 i grått.
Katalogutforskaren
Logga in på en arbetsyta som är länkad till metaarkivet.
I sidofältet klickar du på
Katalog.
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.
Kommandoradsgränssnitt (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>
Standardinställningen
isolation-mode
ärOPEN
för alla arbetsytor som är 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 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?.