Delen via


Externe toegang tot gegevens in Unity Catalog beheren

Belangrijk

Deze functie is beschikbaar als openbare preview.

Tip

Zie Microsoft Fabric gebruiken om gegevens te lezen die zijn geregistreerd in Unity Catalog voor meer informatie over het lezen van Azure Databricks-gegevens met Behulp van Microsoft Fabric.

In dit artikel wordt beschreven hoe u de toegang tot gegevens in Azure Databricks beheert wanneer externe verwerkingsengines unity catalog open API's of Iceberg-API's gebruiken om toegang te krijgen tot die gegevens, met name wanneer engines de functionaliteit voor referentieverkoop van Unity Catalog gebruiken om toegang te krijgen.

De toegangsbeheer die in dit artikel worden beschreven, hebben betrekking op scenario's waarin tijdelijke referenties worden gebruikt voor het lezen van gegevens uit uw Unity Catalog-catalogussen met behulp van externe engines en interfaces, zoals:

  • Iceberg REST API's
  • Microsoft Fabric
  • duckDB
  • Apache Spark en Trino

Notitie

Unity Catalog implementeert Iceberg REST API's via Delta Lake UniForm, een alternatieve manier om Iceberg-clients alleen-lezentoegang te bieden tot Delta-tabellen in Unity Catalog. Zie UniForm gebruiken om Delta-tabellen te lezen met Iceberg-clients.

Overzicht van referentieverkoop en het verlenen van externe enginetoegang

Wanneer u een externe engine wilt gebruiken voor toegang tot gegevens die zijn geregistreerd in uw Unity Catalog-metastore, moet u een kortstondige referentie aanvragen met behulp van de REST API van Unity Catalog. Het proces waarmee Unity Catalog die referentie verleent, wordt referentieverkoop genoemd.

Als u een tijdelijke referentie wilt krijgen, moet de Azure Databricks-principal (gebruiker, groep of service-principal) die de aanvraag doet, over de EXTERNAL USE SCHEMA bevoegdheid beschikken in het schema dat de tabel bevat waartoe ze toegang willen hebben vanuit de externe engine. De Unity Catalog-metastore die het schema bevat, moet ook expliciet worden ingeschakeld voor externe toegang.

Wanneer de bevoegde principal de tijdelijke referentie heeft gekregen, ontvangen ze een kortdurende toegangstokenreeks en url voor cloudopslaglocatie die gebruikers van de externe engine kunnen gebruiken om toegang te krijgen tot het gegevensobject (tabel) vanaf de opslaglocatie in de cloud. Hoe de referentie en het token door de externe engine worden gebruikt, is specifiek voor de externe engine en wordt hier niet behandeld.

De externe engine en de azure Databricks Unity Catalog-configuratie moeten ook voldoen aan specifieke netwerkvereisten die zijn opgesomd in de volgende secties.

Vereisten

In deze sectie vindt u een overzicht van netwerkconfiguraties, opties voor de Unity Catalog-metastore, tabeltypen en machtigingen die zijn vereist voor beveiligde toegang tot Unity Catalog-gegevensobjecten van externe engines met behulp van de open API's van Unity Catalog of Iceberg REST API's.

Netwerkvereisten

  • Voor toegang tot de Azure Databricks-werkruimte met behulp van Unity Catalog Open API's of Iceberg REST API's moet de WERKRUIMTE-URL toegankelijk zijn voor de engine die de aanvraag uitvoert. Dit omvat werkruimten die gebruikmaken van IP-toegangslijsten of Azure Private Link.
  • Voor toegang tot de onderliggende cloudopslaglocatie voor geregistreerde Unity Catalog-gegevensobjecten, moeten de opslag-URL's die zijn gegenereerd door de tijdelijke referentie-API van Unity Catalog, toegankelijk zijn voor de engine die de aanvraag uitvoert. Dit betekent dat de engine moet worden toegestaan op de lijsten voor firewall- en netwerktoegangsbeheer voor de onderliggende cloudopslagaccounts.

Vereisten voor Unity Catalog-metastore en gegevensobjecten

  • De metastore moet zijn ingeschakeld voor Externe gegevenstoegang.
  • Alleen tabellen worden ondersteund tijdens de openbare preview.
    • Externe tabellen ondersteunen lezen en schrijven.
    • Beheerde tabellen kunnen alleen worden gelezen.
  • De volgende tabeltypen worden niet ondersteund:
    • Tabellen met rijfilters of kolommaskers.
    • Tabellen die worden gedeeld met Delta Sharing.
    • Federatieve tabellen van Lakehouse (refererende tabellen).
    • Weergaven
    • Gerealiseerde weergaven
    • Delta Live Tables-streamingtabellen
    • Onlinetabellen
    • Vector Search-indexen

Machtigingsvereisten

De principal die de tijdelijke referentie aanvraagt, moet beschikken over:

  • De EXTERNAL USE SCHEMA bevoegdheid voor het betreffende schema of de bovenliggende catalogus.

    Deze bevoegdheid moet altijd expliciet worden verleend. Alleen de eigenaar van de bovenliggende catalogus kan deze verlenen. Als u onbedoelde exfiltratie wilt voorkomen, ALL PRIVILEGES neemt u de EXTERNAL USE SCHEMA bevoegdheid niet op en hebben schema-eigenaren deze bevoegdheid niet standaard.

  • SELECT machtiging voor de tabel, USE CATALOG de bovenliggende catalogus en USE SCHEMA het bovenliggende schema.

Externe gegevenstoegang inschakelen in de metastore

Als u externe engines toegang wilt geven tot gegevens in een metastore, moet een metastore-beheerder externe gegevenstoegang inschakelen voor de metastore. Deze optie is standaard uitgeschakeld om onbevoegde externe toegang te voorkomen.

  1. Klik in een Azure Databricks-werkruimte die is gekoppeld aan de metastore op Cataloguspictogram Catalogus.
  2. Klik op het Tandwielpictogram tandwielpictogram boven aan het deelvenster Catalogus en selecteer Metastore.
  3. Schakel op het tabblad Details externe gegevenstoegang in.

Een tijdelijke referentie aanvragen voor toegang tot externe gegevens

Als u een tijdelijke referentie wilt aanvragen voor externe gegevenstoegang, moet een werkruimtegebruiker die voldoet aan de bovenstaande vereisten de /api/2.1/unity-catalog/temporary-table-credentials API gebruiken.

Notitie

U kunt een lijst met tabellen ophalen die referentieverkoop ondersteunen door de ListTables-API aan te roepen met de include_manifest_capabilities optie ingeschakeld. Alleen tabellen die zijn gemarkeerd HAS_DIRECT_EXTERNAL_ENGINE_READ_SUPPORT of HAS_DIRECT_EXTERNAL_ENGINE_WRITE_SUPPORT die in aanmerking komen voor verwijzing in de API voor tijdelijke tabelreferenties. Zie GET /api/2.1/unity-catalog/tables.

Voorbeeld:

curl -X POST -H "Authentication: Bearer $OAUTH_TOKEN" \
https://<workspace-instance>/api/2.1/unity-catalog/temporary-table-credentials \
-d '{"table_id": "<string>", "operation_name": "<READ|READ_WRITE>"}'

Zie POST /api/2.1/unity-catalog/temporary-table-credentials in de Azure Databricks REST API-naslaginformatie voor meer informatie.