Dela via


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.

Kommentar

När du definierar en volym styrs moln-URI-åtkomst till data under volymsökvägen av volymens behörigheter.

Innan du börjar

Förutsättningar:

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 har CREATE 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:

  1. Logga in på en arbetsyta som är kopplad till metaarkivet.

  2. Klicka på Katalogikon Katalog i sidopanelen.

  3. Längst upp i fönstret Katalog klickar du på Lägg till eller plusikon ikonen Lägg till och väljer Lägg till en extern plats på menyn.

    Du kan också klicka på knappen Externa data >på sidan Snabbåtkomst, gå till fliken Externa platser och klicka på Skapa plats.

  4. Ange ett namn på en extern plats.

  5. Du kan också kopiera containersökvägen från en befintlig monteringspunkt (endast Azure Data Lake Storage Gen2-containrar).

  6. 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> eller r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Välj den lagringsautentiseringsuppgift som ger åtkomst till den externa platsen.

  8. (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.

  9. Klicka på Skapa.

  10. (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.

  11. 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 eller CREATE EXTERNAL VOLUME.

    Så här använder du Catalog Explorer för att bevilja behörigheter:

    1. Klicka på namnet på den externa platsen för att öppna informationsfönstret.
    2. På fliken Behörigheter klickar du på Bevilja.
    3. 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.
    4. Klicka på Bevilja.

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.

Behörigheter och förutsättningar: se Innan du börjar.

  • <location-name>: Ett namn på den externa platsen. Om location_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> eller r2://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 till myWorkspace?
  • Är katalogen myCat bunden till myWorkspace med åtkomstnivå Read & Write?

Om den externa platsen därefter är obundna från myWorkspacefortsä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

  1. Logga in på en arbetsyta som är länkad till metaarkivet.

  2. Klicka på Katalogikon Katalog i sidopanelen.

  3. Längst upp i fönstret Katalog klickar du på kugghjulsikonen Kugghjulsikon och väljer Externa platser.

    Du kan också klicka på knappen Externa data > på sidan Snabbåtkomst för att gå till fliken Externa platser.

  4. Välj den externa platsen och gå till fliken Arbetsytor .

  5. 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.

  6. 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.

  1. external-locations Använd kommandogruppens update kommando för att ange den externa platsens isolation mode till ISOLATED:

    databricks external-locations update <my-location> \
    --isolation-mode ISOLATED \
    --profile <profile-name>
    

    Standardvärdet isolation-mode är alla arbetsytor som är OPEN kopplade till metaarkivet.

  2. workspace-bindings Använd kommandogruppens update-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 ange binding_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