Azure Databricks verbinden met een externe OneLake-locatie

Important

Deze functie bevindt zich in openbare preview-versie. Workspace-beheerders kunnen de toegang tot externe locatieondersteuning voor OneLake regelen via de Previews-pagina . Zie Azure Databricks previews beheren.

Op deze pagina wordt uitgelegd hoe u verbinding maakt met OneLake via een externe locatie. Met de verbinding kun je Unity Catalog-beheerde objecten aanmaken (zoals tabellen, volumes en views) en je gegevens beheren volgens governanceregels via Unity Catalog. Als u bestaande OneLake-gegevens wilt lezen uit Azure Databricks zonder te schrijven, raadpleegt u Federatie van OneLake-catalogus inschakelen.

Als u verbinding wilt maken met een OneLake-pad, moet u twee beveiligbare objecten voor Unity Catalog hebben:

  • Een opslagreferentie, waarmee een beheerde identiteit of service-principal wordt opgegeven die toegang verleent tot uw OneLake-opslag.
  • Een externe locatie, die het op id gebaseerde ABFSS-pad naar uw OneLake-opslag definieert en verwijst naar de opslagreferentie.

Requirements

In Azure Databricks:

  • Je Azure Databricks-werkruimte moet ingeschakeld zijn voor Unity Catalog.
  • Je moet serverless compute of een klassieke rekenresource gebruiken op Databricks Runtime 18.1 of hoger.
  • Je moet beschikken over de machtiging CREATE STORAGE CREDENTIAL op de Unity Catalog-metastore en over de machtiging CREATE EXTERNAL LOCATION op zowel de metastore als de storage credential.

In Microsoft Fabric:

  • Je moet een actieve Fabric-werkruimte hebben met toegewezen capaciteit.
  • De beheerde identiteit of service principal moet de Viewer-rol hebben op de doel-Fabric-werkruimte en lid zijn van een OneLake-beveiligingsrol op het Azure Databricks-opslagitem.
  • Een Fabric-beheerder moet het mogelijk maken dat gebruikers Azure Databricks Storage items kunnen aanmaken in Admin Portal > Tenant Settings.
  • De doelwerkruimte van Fabric moet Authenticate with OneLake-gebruikersgedelegeerde SAS-tokens ingeschakeld hebben in Workspace-instellingen > Gedelegeerde instellingen > OneLake Settings.

Beveiligingsmodel

OneLake-beveiliging is standaard ingeschakeld voor het Azure Databricks opslagitem, dus het item is vergrendeld. Fabric-workspacerollen (Administrator, Lid, Bijdrager en Viewer) verlenen geen toegang tot de gegevens. Alleen leden van de OneLake-beveiligingsrol van het opslagitem kunnen het lezen of schrijven.

Om uw gegevens veilig te houden:

  • Voeg alleen de beheerde identiteit van de access connector (of je service principal) toe aan de OneLake-beveiligingsrol.
  • Voeg geen gebruikers, groepen of andere service-principals toe. Iedereen in deze functie kan de data direct lezen en schrijven, buiten de governance van Unity Catalog.
  • Fabric-gebruikers moeten de data lezen via een gespiegeld Azure Databricks catalogusitem, niet via het opslagitem zelf.

Stap 1: identiteit en toegang configureren in Azure en Fabric

  1. Maak of identificeer in de Azure-portal een Access-connector voor Azure Databricks met een beheerde identiteit of een service-principal.
  2. Ga in Microsoft Fabric naar uw doelwerkruimte.
  3. Klik op de knop Tandwiel voor werkruimte-instellingen en klik vervolgens op Toegang beheren.
  4. Klik op Personen of groepen toevoegen en zoek naar uw beheerde identiteit of service-principal.
  5. Wijs de beheerde identiteit of service-principal de rol Viewer toe.

Stap 2: Opslag inrichten in Fabric en het pad ophalen

  1. Maak in uw Fabric werkruimte een Azure Databricks Storage-item.

  2. Open Beheer OneLake-beveiliging voor het opslagitem. Maak een OneLake-beveiligingsrol aan met de machtiging ReadWrite en voeg de beheerde identiteit of service-principal toe als enig lid.

  3. Stel het ID-gebaseerde ABFSS-pad samen:

    abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/
    

    De workspace-ID en de Azure Databricks opslagitem-ID zijn beschikbaar in de browser-URL wanneer het item geopend is in Fabric.

    Note

    De externe locatie vereist de op ID gebaseerde padindeling (GUID's), niet weergavenamen. Op naam gebaseerde paden worden bij het aanmaken afgewezen.

    Sla dit pad op. U gebruikt deze in stap 4.

Stap 3: Een Opslagreferentie voor Unity Catalog maken

  1. Meld u aan bij uw Azure Databricks-werkruimte met Unity Catalog.

  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 van de toegangsconnector die is gekoppeld aan uw beheerde identiteit).

    De resource-id heeft de volgende indeling:

    /subscriptions/<subscription-id>/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 in.

  8. Klik op Create.

Stap 4: de externe OneLake-locatie maken

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

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

  3. Voer een externe locatienaam in.

  4. Selecteer OneLake onder Opslagtype.

  5. Selecteer onder Opslagreferentie de referentie die u in stap 3 hebt gemaakt.

  6. Voer onder URL het ABFSS-pad op basis van id's in vanuit stap 2. Voorbeeld:

    abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/
    
  7. Klik op Create.

  8. Klik op Verbinding testen om de externe locatie te controleren.

Stap 5: Unity Catalog-objecten maken op de externe OneLake-locatie

Nadat u de externe locatie hebt gemaakt, kunt u een catalogus maken die deze als beheerde opslag gebruikt. OneLake slaat de data op voor de beheerde tabellen (Delta en Iceberg), volumes, gematerialiseerde weergaven en streamingtabellen die je in die catalogus maakt.

-- Create a catalog with the OneLake external location as managed storage
CREATE CATALOG my_onelake_catalog
MANAGED LOCATION '<onelake_external_location_path>';

-- Create a schema
CREATE SCHEMA my_onelake_catalog.sales;

-- Create a managed table
CREATE TABLE my_onelake_catalog.sales.orders (
  id INT,
  name STRING,
  created_at TIMESTAMP
);

-- Insert data
INSERT INTO my_onelake_catalog.sales.orders
VALUES (1, 'example', current_timestamp());

Vervang <onelake_external_location_path> door de URL van de externe locatie of een subpad erin.

Limitations

Deze functie heeft de volgende beperkingen:

  • Fabric Spark kan geen tabellen lezen met cataloguscommits

    Catalog-commits zijn standaard ingeschakeld voor door Unity Catalog beheerde tabellen in nieuwe catalogi en schema's via automatische upgrades. Catalog commits maken Unity Catalog de gezaghebbende bron voor de tabeltoestand. Delta-clients moeten de nieuwste tabelstatus uit Unity Catalog krijgen, wat Fabric Spark niet doet. Als gevolg hiervan kan Fabric Spark, inclusief Fabric-notebooks en Spark-jobdefinities, geen tabellen met cataloguscommits lezen via een gespiegelde Azure Databricks-catalogus.

    Als workaround zet je cataloguscommits uit op tabellen die Fabric Spark-workloads moeten lezen. Het uitschakelen van cataloguscommits schakelt ook de functies uit die voor die tabel afhankelijk zijn van cataloguscommits. Zie Cataloguscommits uitschakelen.

    ALTER TABLE <table-name> DROP FEATURE 'catalogManaged';
    
  • Databricks-to-Open sharing wordt niet ondersteund

    Je kunt Databricks-to-Open sharing niet gebruiken om beheerde tabellen te delen waarvan de opslag op OneLake staat. Databricks-to-Open sharing geeft ontvangers vooraf ondertekende URL's naar de databestanden van de tabel, en OneLake-opslagpaden ondersteunen geen vooraf ondertekende URL's.

  • Fabric toont geen FILE kolommen

    Fabric herkent het FILE type niet, dus laat FILE kolommen weg uit gespiegelde Azure Databricks-catalogi. Fabric weerspiegelt nog steeds de andere kolommen van de tabel, maar gebruikers van Fabric kunnen niet van een rij naar het bestand gaan.

Troubleshoot

Fout Resolutie / Besluit
403 Forbidden bij toegang tot OneLake-pad Controleer dat (1) de beheerde identiteit of service principal de Viewer-rol heeft op de Fabric-werkruimte, (2) het lid is van een OneLake-beveiligingsrol met ReadWrite-toestemming op het Azure Databricks-opslagitem, en (3) dat de Fabric-werkruimte een actieve capaciteitstoewijzing heeft.
Waarschuwing voor overgeslagen bestandsgebeurtenissen tijdens de verbindingstest Deze waarschuwing wordt verwacht. OneLake-paden ondersteunen geen meldingen van bestandsgebeurtenissen. De externe locatie werkt goed.
Het maken of testen van opslagreferenties mislukt Controleer dat: (1) de beheerde identiteitsresource-ID correct is; (2) de beheerde identiteit de Viewer-rol heeft op de doel-Fabric-werkruimte en lid is van de OneLake-beveiligingsrol van het opslagitem; en (3) het pad het juiste ID-gebaseerde formaat gebruikt (abfss://<WorkspaceID>@onelake.dfs.fabric.microsoft.com/<DatabricksStorageID>/Files/).

Aanvullende bronnen