Delen via


Een externe locatie maken om cloudopslag te verbinden met Azure Databricks

In dit artikel wordt beschreven hoe u een externe locatie in Unity Catalog configureert om cloudopslag te verbinden met Azure Databricks.

Externe locaties koppelen Unity Catalog-opslagreferenties aan opslagcontainers voor cloudobjecten. Externe locaties worden gebruikt voor het definiëren van beheerde opslaglocaties voor catalogi en schema's, en voor het definiëren van locaties voor externe tabellen en externe volumes.

U kunt een externe locatie maken die verwijst naar opslag in een Azure Data Lake Storage Gen2-opslagcontainer of Cloudflare R2-bucket.

U kunt een externe locatie maken met Behulp van Catalog Explorer, de Databricks CLI, SQL-opdrachten in een notebook of Databricks SQL-query of Terraform.

Zie Toegang tot cloudopslag beheren 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:

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 CREATE EXTERNAL LOCATION standaard toegang tot de metastore.

Handmatig een externe locatie maken met Behulp van Catalog Explorer

U kunt handmatig een externe locatie maken met Behulp van Catalog Explorer.

Machtigingen en vereisten: zie Voordat u begint.

De externe locatie maken:

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik in de zijbalk op Cataloguspictogram Catalogus.

  3. Klik op de pagina Snelle toegang op de knop Externe gegevens>, ga naar het tabblad Externe locaties en klik op Locatie maken.

  4. Voer een externe locatienaam in.

  5. Kopieer desgewenst het containerpad van een bestaand koppelpunt (alleen Azure Data Lake Storage Gen2-containers).

  6. Als u niet kopieert vanaf een bestaand koppelpunt, gebruikt u het URL-veld om het opslagcontainer- of R2-bucketpad in te voeren dat u als externe locatie wilt gebruiken.

    Bijvoorbeeld abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> of r2://my-bucket@my-account-id.r2.cloudflarestorage.com/<path>.

  7. Selecteer de opslagreferentie die toegang verleent tot de externe locatie.

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

  9. Klik op Create.

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

  11. Verdeel toestemming om de externe locatie te gebruiken.

    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, verleent CREATE EXTERNAL TABLE of CREATE EXTERNAL VOLUME.

    Catalogusverkenner gebruiken om machtigingen te verlenen:

    1. Klik op de naam van de externe locatie om het detailvenster te openen.
    2. Klik op het tabblad Machtigingen op Verlenen.
    3. Selecteer in het dialoogvenster Verlenen in <external location>het veld Principals gebruikers, groepen of service-principals en selecteer de bevoegdheid die u wilt verlenen.
    4. Klik op Verlenen.

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. Als location_name speciale tekens zijn opgenomen, zoals afbreekstreepjes (-), moet deze worden omgeven door backticks (` `). Zie Namen.

  • <bucket-path>: het pad in uw cloudtenant waartoe deze externe locatie toegang verleent. Bijvoorbeeld abfss://my-container-name@my-storage-account.dfs.core.windows.net/<path> of r2://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

Belangrijk

Deze functie is beschikbaar als openbare preview.

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 uitgevoerd. 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 de externe locatie gebonden 'abfss://my-container-name@storage-account-name.dfs.core.windows.net/finance' aan myWorkspace?
  • Is de catalogus myCat gebonden aan myWorkspace toegangsniveau Read & 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 of externe locatie-eigenaar.

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

  1. Meld u aan bij een werkruimte die is gekoppeld aan de metastore.

  2. Klik in de zijbalk op Cataloguspictogram Catalogus.

  3. Klik op de pagina Snelle toegang op de knop Externe gegevens > om naar het tabblad Externe locaties te gaan.

  4. Selecteer de externe locatie en ga naar het tabblad Werkruimten .

  5. Schakel op het tabblad Werkruimten het selectievakje Alle werkruimten toegang hebben .

    Als uw externe locatie al is gebonden aan een of meer werkruimten, is dit selectievakje al uitgeschakeld.

  6. 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. Als u toegang wilt toestaan vanuit alle werkruimten, schakelt u het selectievakje Alle werkruimten toegang hebben .

CLI

Er zijn twee Databricks CLI-opdrachtgroepen en twee stappen vereist om een externe locatie toe te wijzen aan een werkruimte.

Vervang in de volgende voorbeelden door <profile-name> de naam van uw Azure Databricks-verificatieconfiguratieprofiel. 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.

  1. Gebruik de opdracht van de external-locations opdrachtgroep update om de externe locatie isolation mode ISOLATEDin te stellen op:

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

    De standaardwaarde isolation-mode is OPEN voor alle werkruimten die zijn gekoppeld aan de metastore.

  2. Gebruik de opdracht van de workspace-bindings opdrachtgroep update-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-lezenbinding (BINDING_TYPE_READ_ONLY) is niet beschikbaar voor externe locaties. Daarom is er geen reden om in te stellen binding_type voor de binding van externe locaties.

Als u alle werkruimtetoewijzingen voor een externe locatie wilt weergeven, gebruikt u de opdracht van get-bindings de workspace-bindings opdrachtgroep:

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 werkruimtetoegang tot een externe locatie met Behulp van Catalog Explorer of de workspace-bindings CLI-opdrachtgroep zijn opgenomen in Een externe locatie binden aan een of meer werkruimten.

Volgende stappen