Verbinding maken met een externe locatie van Azure Data Lake Storage Gen2 (ADLS Gen2)

Op deze pagina wordt beschreven hoe u verbinding maakt met een externe locatie van Azure Data Lake Storage Gen2 (ADLS Gen2). Nadat u deze verbinding hebt voltooid, kunt u de toegang tot deze ADLS Gen2-objecten beheren met behulp van Unity Catalog.

Als u verbinding wilt maken met een ADLS Gen2-containerpad, hebt u twee beveiligbare objecten voor Unity Catalog nodig. De eerste is een opslagreferentie, waarmee een Azure beheerde identiteit wordt opgegeven die toegang tot de ADLS Gen2-container toestaat. U hebt deze opslagreferentie nodig voor het tweede vereiste object: een externe locatie, die het pad naar uw ADLS Gen2-opslaglocatie en de referenties definieert die nodig zijn voor toegang tot die locatie.

Requirements

In Azure Databricks:

  • Azure Databricks-werkruimte ingeschakeld voor Unity Catalog.
  • CREATE STORAGE CREDENTIAL privilege op de Unity Catalog-metastore gekoppeld aan de werkruimte. Accountbeheerders en metastore-beheerders hebben deze bevoegdheid standaard.
  • CREATE EXTERNAL LOCATION machtiging op zowel de Unity Catalog-metastore als de opslagreferentie waarnaar de externe locatie verwijst. Metastore-beheerders en werkruimtebeheerders hebben deze bevoegdheid standaard.

In uw Azure-account:

  • Een ADLS Gen2-opslagaccount en -container. Om uitgaande kosten te voorkomen, moet dit zich in dezelfde regio bevinden als de werkruimte waaruit u toegang wilt krijgen tot de gegevens.

    • Externe locatiepaden mogen alleen standaard ASCII-tekens bevatten (lettersA–Z, a–zcijfers 0–9en algemene symbolen, zoals /, _). -

    • Azure Data Lake Storage-opslagaccounts die u als externe locaties gebruikt, moeten een hiërarchische naamruimte hebben.

    • U kunt geen Azure-opslagcontainers met onveranderbaarheid (WORM - Write Once, Read Many-beleid) als externe locaties gebruiken. Unity Catalog vereist DELETE-machtigingen voor opslagcontainers, die door onveranderbaarheidsbeleid worden voorkomen. Zie Onveranderbaarheidsbeleid configureren voor containers voor meer informatie over beleid voor onveranderbaarheid.

    • Als openbare netwerktoegang is uitgeschakeld in het opslagaccount, moet u de optie Vertrouwde Azure-services toestaan om Azure Databricks verbinding te laten maken met het opslagaccount. U kunt deze instelling configureren met behulp van de Azure CLI:

      # Check current network rule set
      az storage account show --name <storage_account_name> --resource-group <resource_group_name> --query "networkRuleSet"
      
      # Set bypass for Azure Services
      az storage account update \
        --name <storage_account_name> \
        --resource-group <resource_group_name> \
        --bypass AzureServices
      
  • Machtiging voor het maken van een toegangsconnector voor Azure Databricks in uw Azure-abonnement. Hiervoor moet u een Contributor of Owner van een Azure resourcegroep zijn.

  • Machtiging voor het wijzigen van het toegangsbeleid voor het opslagaccount. Hiervoor moet u de eigenaar of een gebruiker zijn met de rol User Access Administrator Azure RBAC in uw opslagaccount.

Een opslagreferentie maken die toegang heeft tot ADLS Gen2

Als u een opslagreferentie wilt maken voor toegang tot een ADLS Gen2-container, maakt u eerst een toegangsconnector voor Azure Databricks met een beheerde identiteit en verleent u vervolgens de beheerde identiteit toegang tot uw opslagaccount.

Stap 1: Een toegangsconnector maken voor Azure Databricks

Een toegangsconnector voor Azure Databricks is een externe Azure resource waarmee u beheerde identiteiten kunt verbinden met een Azure Databricks-account. Elke toegangsconnector voor Azure Databricks kan een door het systeem toegewezen beheerde identiteit, een of meer door de gebruiker toegewezen beheerde identiteiten of beide bevatten.

  1. Meld u aan bij Azure Portal als inzender of eigenaar van een resourcegroep.

  2. Klik op + Maken of Een resource maken.

  3. Zoek naar Access Connector voor Azure Databricks en selecteer deze.

  4. Klik op Create.

  5. Accepteer, selecteer of voer waarden in voor de volgende velden op het tabblad Basisbeginselen :

    • Abonnement: Dit is het Azure-abonnement waarin de toegangsconnector wordt gemaakt. De standaardwaarde is het Azure-abonnement dat u momenteel gebruikt. Het kan elk abonnement binnen de tenant zijn.
    • Resourcegroep: dit is de Azure-resourcegroep waarin de toegangsconnector wordt gemaakt.
    • Naam: Voer een naam in die het doel van de connector aangeeft.
    • Regio: Dit moet dezelfde regio zijn als het opslagaccount waarmee u verbinding maakt.
  6. Klik op Volgende, voer tags in en klik op Volgende.

  7. Maak op het tabblad Managed Identity de beheerde identiteiten als volgt:

    • Als u een door het systeem toegewezen beheerde identiteit wilt gebruiken, stelt u Status in op Aan.
    • Als u door de gebruiker toegewezen beheerde identiteiten wilt toevoegen, klikt u op + toevoegen en selecteert u een of meer door de gebruiker toegewezen beheerde identiteiten.

    Beheerde identiteiten configureren voor een toegangsconnector.

  8. Klik op Beoordelen en maken.

  9. Controleer de configuratie-instellingen en klik vervolgens op Maken.

  10. Nadat de implementatie is voltooid, klikt u op Ga naar resource.

  11. Noteer de Resource ID.

    De resource-id heeft de volgende indeling:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    

Stap 2: De beheerde identiteit toegang verlenen tot het opslagaccount

Als u de machtigingen in deze stap wilt verlenen, moet u de Owner Azure RBAC-rol of User Access Administrator op uw opslagaccount hebben.

U hebt de volgende opties wanneer u de beheerde identiteit toegang verleent tot het opslagaccount en de container:

  • Lees- en schrijftoegang verlenen aan het hele opslagaccount met behulp van de Storage Blob Data Contributor rol.
  • Ververleent een beperktere rol voor het opslagaccount met behulp van de Storage Blob Delegator rol en lees- en schrijftoegang tot een specifieke container met behulp van de Storage Blob Data Contributor rol.

In de volgende instructies wordt ervan uitgegaan dat u de Storage Blob Data Contributor rol in het opslagaccount verleent, maar u kunt de andere opties indien nodig vervangen:

  1. Meld u aan bij uw Azure Data Lake Storage-account.
  2. Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.
  3. Selecteer de Storage Blob Data Contributor-rol en klik op Volgende.
  4. Selecteer beheerde identiteit onder Toegang toewijzen aan.
  5. Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.
  6. Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.

Stap 3: Geef de beheerde identiteit toegang tot bestandsgebeurtenissen

Door uw beheerde identiteit toegang te verlenen tot bestandsevenementen, kan Azure Databricks zich abonneren op meldingen van bestandsevenementen die worden verzonden door cloudproviders. Dit maakt bestandsverwerking efficiënter. Zie Bestandsevenementen instellen voor een externe locatie voor meer informatie.

Als u de machtigingen in deze stap wilt verlenen, moet u de Azure RBAC-rol Eigenaar of Gebruikertoegangsbeheerder voor uw opslagaccount hebben.

  1. Meld u aan bij uw Azure Data Lake Storage-account.
  2. Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.
  3. Selecteer de rol Inzender van opslagwachtrijgegevens en klik op Volgende.
  4. Selecteer beheerde identiteit onder Toegang toewijzen aan.
  5. Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.
  6. Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.

Step 4: Ververleent Azure Databricks toegang om bestandsevenementen namens u te configureren

Note

Als u Azure Databricks geen toegang verleent om bestandsevenementen namens u te configureren, moet u bestandsevenementen handmatig configureren voor elke locatie. Als u deze handmatige configuratie overslaat, beperkt u de toegang tot verschillende Databricks-functies. Zie Bestandsevenementen instellen voor een externe locatie voor meer informatie over bestandsevenementen.

Met deze stap kan Azure Databricks bestandsevenementen automatisch instellen. Als u de machtigingen in deze stap wilt verlenen, moet u de Azure RBAC-rollen Eigenaar of Gebruikertoegangsbeheerder hebben voor uw beheerde identiteit en de resourcegroep waarin uw Azure Data Lake Storage-account zich bevindt.

  1. Volg de instructies in Stap 3: Geef de beheerde identiteit toegang tot bestandsevenementen en wijs de rol Storage Account Contributor toe aan uw beheerde identiteit.

    Deze rol vervangt niet de rollen die zijn verleend in stap 2 of 3 op deze pagina, maar is naast deze.

  2. Navigeer naar de Azure-resourcegroep waarin uw Azure Data Lake Storage-account zich bevindt.

  3. Ga naar Toegangsbeheer (IAM), klik op + Toevoegen en selecteer Roltoewijzing toevoegen.

  4. Selecteer de rol EventGrid EventSubscription-inzender en klik op Volgende.

  5. Selecteer beheerde identiteit onder Toegang toewijzen aan.

  6. Klik op +Leden selecteren en selecteer toegangsconnector voor Azure Databricks of door de gebruiker toegewezen beheerde identiteit.

  7. Zoek de naam van uw connector of door de gebruiker toegewezen identiteit, selecteer deze en klik op Controleren en toewijzen.

Stap 5: De opslagreferentie maken in Databricks

Nu u een toegangsconnector hebt gemaakt met een beheerde identiteit en deze machtigingen hebt verleend voor uw opslagaccount, kunt u de opslagreferentie maken in Azure Databricks.

  1. Meld u aan bij uw Azure Databricks-werkruimte waarvoor Unity Catalog is ingeschakeld als gebruiker met het recht CREATE STORAGE CREDENTIAL op de metastore.

  2. Klik in de zijbalk op het pictogram Gegevens.Catalogus.

  3. Klik op het pictogram Toevoegen of het pluspictogram en klik vervolgens op Een aanmeldingsgegeven maken.

  4. Selecteer een Credential Type van Azure Managed Identity.

  5. Voer een opslagreferentienaam en een optionele opmerking in.

  6. Voer de connector-id van Access in (de resource-id die u hebt genoteerd in stap 1).

    De resource-id heeft de volgende indeling:

    /subscriptions/12f34567-8ace-9c10-111c-aea8eba12345c/resourceGroups/<resource-group>/providers/Microsoft.Databricks/accessConnectors/<connector-name>
    
  7. (Optioneel) Als u de toegangsconnector hebt gemaakt met een door de gebruiker toegewezen beheerde identiteit, voert u de beheerde identiteit-id (de resource-id van de beheerde identiteit) in.

  8. (Optioneel) Als u wilt dat gebruikers alleen-lezentoegang hebben tot de externe locaties die gebruikmaken van deze opslagreferentie, klikt u op Geavanceerde opties en selecteert u Beperken tot alleen-lezengebruik. Zie Een opslagreferentie markeren als alleen-lezen voor meer informatie.

  9. Klik op Create.

  10. (Optioneel) Koppel de opslagreferentie aan specifieke werkruimten.

    Standaard kan elke bevoegde gebruiker de opslagreferentie gebruiken voor 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 Een opslagreferentie toewijzen aan specifieke werkruimten.

U kunt nu een externe locatie maken die verwijst naar uw opslagreferenties.

Een externe locatie maken voor een ADLS Gen2-container

In deze sectie wordt beschreven hoe u een externe locatie maakt met Behulp van Catalog Explorer of SQL. Hierbij wordt ervan uitgegaan dat u al een opslagreferentie hebt die toegang biedt tot uw ADLS Gen2-container. Als u geen opslagreferentie hebt, volgt u de stappen in Een opslagreferentie maken die toegang heeft tot ADLS Gen2.

Optie 1: Handmatig een externe locatie maken met behulp van Catalog Explorer

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

De externe locatie maken:

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

  2. Klik in de zijbalk op het pictogram Gegevens.Catalogus.

  3. Klik op het pictogram Toevoegen of plus en klik vervolgens op Een externe locatie maken.

  4. Voer een externe locatienaam in.

  5. Selecteer onder Opslagtype de optie Azure.

  6. Voer onder URL het ADLS Gen2-containerpad in. Bijvoorbeeld: abfss://mycontainer@mystorageaccount.dfs.core.windows.net/<path>.

  7. Selecteer onder Opslagreferentie 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 Limiet voor alleen-lezengebruik. Zie Een externe locatie markeren als alleen-lezen voor meer informatie.

  9. (Optioneel) Als de externe locatie is bedoeld voor een federatieve Hive-metastore-catalogus, klikt u op Geavanceerde opties en schakelt u terugvalmodus in.

    Zie Terugvalmodus inschakelen op externe locaties.

  10. (Optioneel) Als u de mogelijkheid wilt inschakelen om u te abonneren op wijzigingsmeldingen op de externe locatie, klikt u op Geavanceerde opties en selecteert u Bestandsevenementen inschakelen.

    Zie Bestandsevenementen instellen voor een externe locatie voor meer informatie.

  11. Klik op Create.

  12. (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 Een externe locatie toewijzen aan specifieke werkruimten.

  13. Ga naar het tabblad Machtigingen om toestemming te verlenen voor het gebruik van de externe locatie.

    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, moet u CREATE EXTERNAL TABLE of CREATE EXTERNAL VOLUME verlenen.

    Volg deze stappen:

    1. Klik op Toestaan.
    2. In het dialoogvenster Verlenen<external location> selecteert u in het veld Principals de gebruikers, groepen of service-principals en kiest u de bevoegdheid die u wilt verlenen.
    3. Klik op Toestaan.

Optie 2: 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 Vereisten voor vereiste machtigingen en vereisten.

  • <location-name>: Een naam voor de externe locatie. Als location_name speciale tekens bevat, zoals afbreekstreepjes (-), moeten ze worden omgeven door backticks (` `). Zie Namen.
  • <container-path>: het pad in uw cloudtenant waartoe deze externe locatie toegang verleent. Bijvoorbeeld: abfss://mycontainer@mystorageaccount.dfs.core.windows.net/.
  • <storage-credential-name>: De naam van de opslagreferentie die het lezen van en schrijven naar de container autoriseert. 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 '<container-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 Een externe locatie toewijzen aan specifieke werkruimten.

De verbinding controleren

Als u wilt controleren of u de externe locatie hebt gemaakt, probeert u een bestand te lezen vanaf de externe locatie. Stel dat u een externe locatie abfss://mycontainer@mystorageaccount.dfs.core.windows.net/ hebt met een CSV-bestand met de naam example.csv. Voer de volgende stappen uit om het abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv bestand te lezen:

  1. Klik in de zijbalk op het pictogram Notitieblok.Werkruimte.

  2. Klik op Aanmaken en selecteer vervolgens Notitieboek.

  3. Voer het volgende Python codefragment uit:

    display(dbutils.fs.ls('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/'))
    

    Hiermee wordt een lijst met bestandspaden op de externe locatie weergegeven. In dit voorbeeld wordt het abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv bestand weergegeven in de uitvoer.

  4. Als u een specifiek bestand op de externe locatie wilt lezen, voert u het volgende Python codefragment uit:

    spark.read.format("csv") \
       .option("header", "true") \
       .option("delimiter", ";") \
       .load('abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv') \
       .display()
    

    Hiermee worden de gegevens in het abfss://mycontainer@mystorageaccount.dfs.core.windows.net/example.csv bestand weergegeven.

Volgende stappen