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 deEXTERNAL USE SCHEMA
bevoegdheid niet op en hebben schema-eigenaren deze bevoegdheid niet standaard.SELECT
machtiging voor de tabel,USE CATALOG
de bovenliggende catalogus enUSE 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.
- Klik in een Azure Databricks-werkruimte die is gekoppeld aan de metastore op Catalogus.
- Klik op het tandwielpictogram boven aan het deelvenster Catalogus en selecteer Metastore.
- 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.