Delen via


Wat is Unity Catalog?

In dit artikel maakt u kennis met Unity Catalog, een geïntegreerde governanceoplossing voor gegevens en AI-assets in Azure Databricks.

Notitie

Unity Catalog is ook beschikbaar als een opensource-implementatie. Zie de aankondigingsblog en de openbare GitHub-opslagplaats voor Unity Catalog.

Overzicht van Unity Catalog

Unity Catalog biedt gecentraliseerd toegangsbeheer, controle, herkomst en mogelijkheden voor gegevensdetectie in Azure Databricks-werkruimten.

Unity Catalog-diagram

Belangrijke functies van Unity Catalog zijn:

  • Eenmaal definiëren, veilig overal: Unity Catalog biedt één locatie voor het beheren van beleidsregels voor gegevenstoegang die van toepassing zijn op alle werkruimten.
  • Met standaarden compatibel beveiligingsmodel: het beveiligingsmodel van Unity Catalog is gebaseerd op standaard ANSI SQL en stelt beheerders in staat om machtigingen te verlenen in hun bestaande data lake met behulp van vertrouwde syntaxis, op het niveau van catalogi, schema's (ook wel databases), tabellen en weergaven genoemd.
  • Ingebouwde controle en herkomst: Unity Catalog legt automatisch auditlogboeken op gebruikersniveau vast waarmee toegang tot uw gegevens wordt vastgelegd. Unity Catalog legt ook herkomstgegevens vast die bijhoudt hoe gegevensassets in alle talen worden gemaakt en gebruikt.
  • Gegevensdetectie: Met Unity Catalog kunt u gegevensassets taggen en documenteren en een zoekinterface bieden waarmee gegevensgebruikers gegevens kunnen vinden.
  • Systeemtabellen (openbare preview): Met Unity Catalog kunt u eenvoudig de operationele gegevens van uw account openen en er query's op uitvoeren, zoals auditlogboeken, factureerbare gebruik en herkomst.

Het Unity Catalog-objectmodel

In Unity Catalog worden alle metagegevens geregistreerd in een metastore. De hiërarchie van databaseobjecten in een Unity Catalog-metastore is onderverdeeld in drie niveaus, vertegenwoordigd als een naamruimte op drie niveaus (catalog.schema.table-etc) wanneer u verwijst naar tabellen, weergaven, volumes, modellen en functies.

Diagram van unity-catalogusobjectmodel

Metastores

De metastore is de container op het hoogste niveau voor metagegevens in Unity Catalog. Het registreert metagegevens over gegevens en AI-assets en de machtigingen die toegang tot deze assets beheren. Voor een werkruimte die Unity Catalog kan gebruiken, moet er een Unity Catalog-metastore zijn gekoppeld.

U moet één metastore hebben voor elke regio waarin u werkruimten hebt. Hoe wordt een werkruimte gekoppeld aan een metastore? Zie Hoe kan ik Unity Catalog instellen voor mijn organisatie?

Objecthiërarchie in de metastore

In een Unity Catalog-metastore bestaat de databaseobjecthiërarchie op drie niveaus uit catalogi die schema's bevatten, die op hun beurt gegevens- en AI-objecten bevatten, zoals tabellen en modellen.

Niveau één:

  • Catalogi worden gebruikt om uw gegevensassets te organiseren en worden meestal gebruikt als het hoogste niveau in uw gegevensisolatieschema. Catalogi spiegelen vaak organisatie-eenheden of levenscyclusbereiken voor softwareontwikkeling. Bekijk wat zijn catalogi in Azure Databricks?
  • Niet-gegevens beveiligbare objecten, zoals opslagreferenties en externe locaties, worden gebruikt voor het beheren van uw gegevensbeheermodel in Unity Catalog. Deze wonen ook rechtstreeks onder de metastore. Ze worden in meer detail beschreven in Andere beveiligbare objecten.

Niveau 2:

  • Schema's (ook wel databases genoemd) bevatten tabellen, weergaven, volumes, AI-modellen en functies. Schema's organiseren gegevens en AI-assets in logische categorieën die gedetailleerder zijn dan catalogi. Normaal gesproken vertegenwoordigt een schema één use-case, project of team-sandbox. Zie Wat zijn schema's in Azure Databricks?

Niveau drie:

Werken met databaseobjecten in Unity Catalog

Werken met databaseobjecten in Unity Catalog is vergelijkbaar met het werken met databaseobjecten die zijn geregistreerd in een Hive-metastore, met uitzondering dat een Hive-metastore geen catalogi bevat in de objectnaamruimte. U kunt vertrouwde ANSI-syntaxis gebruiken om databaseobjecten te maken, databaseobjecten te beheren, machtigingen te beheren en met gegevens te werken in Unity Catalog. U kunt ook databaseobjecten maken, databaseobjecten beheren en machtigingen voor databaseobjecten beheren met behulp van de gebruikersinterface van Catalog Explorer.

Zie Databaseobjecten in Azure Databricks en werken met Unity Catalog en de verouderde Hive-metastore voor meer informatie.

Andere beveiligbare objecten

Naast de databaseobjecten en AI-assets die zijn opgenomen in schema's, beheert Unity Catalog ook de toegang tot gegevens met behulp van de volgende beveiligbare objecten:

Zie Wat is Delta Sharing?voor meer informatie over de beveiligbare objecten voor Delta Delen.

Toegang verlenen en intrekken tot databaseobjecten en andere beveiligbare objecten in Unity Catalog

U kunt op elk niveau in de hiërarchie toegang verlenen en intrekken tot beveiligbare objecten, inclusief de metastore zelf. Toegang tot een object verleent impliciet dezelfde toegang tot alle onderliggende objecten van dat object, tenzij de toegang wordt ingetrokken.

U kunt typische ANSI SQL-opdrachten gebruiken om toegang tot objecten in Unity Catalog te verlenen en in te trekken. Voorbeeld:

GRANT CREATE TABLE ON SCHEMA mycatalog.myschema TO `finance-team`;

U kunt ook Catalog Explorer, de Databricks CLI en REST API's gebruiken om objectmachtigingen te beheren.

Bevoegdheden verlenen met Behulp van Catalog Explorer

Zie Bevoegdheden beheren in Unity Catalog voor meer informatie over het beheren van bevoegdheden in Unity Catalog.

Standaardtoegang tot databaseobjecten in Unity Catalog

Unity Catalog werkt op basis van het principe van minimale bevoegdheden, waarbij gebruikers de minimale toegang hebben die ze nodig hebben om hun vereiste taken uit te voeren. Wanneer een werkruimte wordt gemaakt, hebben niet-beheerders alleen toegang tot de automatisch ingerichte werkruimtecatalogus, waardoor deze catalogus een handige plek is voor gebruikers om het proces voor het maken en openen van databaseobjecten in Unity Catalog uit te proberen. Bekijk de bevoegdheden van de werkruimtecatalogus.

Beheerdersrollen

Werkruimtebeheerders en accountbeheerders hebben standaard extra bevoegdheden. Metastore-beheerder is een optionele rol, vereist als u tabel- en volumeopslag wilt beheren op metastoreniveau en handig als u gegevens centraal wilt beheren in meerdere werkruimten in een regio. Zie Beheerdersbevoegdheden in Unity Catalog en (optioneel) Wijs de beheerdersrol metastore toe voor meer informatie.

Beheerd versus externe tabellen en volumes

Tabellen en volumes kunnen worden beheerd of extern.

  • Beheerde tabellen worden volledig beheerd door Unity Catalog, wat betekent dat Unity Catalog zowel de governance als de onderliggende gegevensbestanden voor elke beheerde tabel beheert. Beheerde tabellen worden opgeslagen op een door Unity Catalog beheerde locatie in uw cloudopslag. Beheerde tabellen gebruiken altijd de Delta Lake-indeling. U kunt beheerde tabellen opslaan op de niveaus metastore, catalogus of schema.
  • Externe tabellen zijn tabellen waarvan de toegang vanuit Azure Databricks wordt beheerd door Unity Catalog, maar waarvan de levenscyclus en bestandsindeling worden beheerd met behulp van uw cloudprovider en andere gegevensplatforms. Normaal gesproken gebruikt u externe tabellen om grote hoeveelheden bestaande gegevens in Azure Databricks te registreren, of als u ook schrijftoegang tot de gegevens nodig hebt met behulp van hulpprogramma's buiten Azure Databricks. Externe tabellen worden ondersteund in meerdere gegevensindelingen. Zodra een externe tabel is geregistreerd in een Unity Catalog-metastore, kunt u Azure Databricks-toegang beheren en controleren, net zoals bij beheerde tabellen.
  • Beheerde volumes worden volledig beheerd door Unity Catalog, wat betekent dat Unity Catalog de toegang tot de opslaglocatie van het volume in uw cloudprovideraccount beheert. Wanneer u een beheerd volume maakt, wordt het automatisch opgeslagen in de beheerde opslaglocatie die is toegewezen aan het schema dat het bevat.
  • Externe volumes vertegenwoordigen bestaande gegevens in opslaglocaties die buiten Azure Databricks worden beheerd, maar zijn geregistreerd in Unity Catalog voor het beheren en controleren van toegang vanuit Azure Databricks. Wanneer u een extern volume maakt in Azure Databricks, geeft u de locatie op. Deze moet zich bevinden op een pad dat is gedefinieerd in een externe locatie van de Unity Catalog.

Databricks raadt beheerde tabellen en volumes aan om optimaal te profiteren van governancemogelijkheden en prestatieoptimalisaties van Unity Catalog.

Zie Werken met beheerde tabellen, Werken met externe tabellen en Beheerde versus externe volumes.

Gegevensisolatie met beheerde opslag

Uw organisatie kan vereisen dat gegevens van bepaalde typen worden opgeslagen in specifieke accounts of buckets in uw cloudtenant.

Unity Catalog biedt de mogelijkheid om opslaglocaties op metastore-, catalogus- of schemaniveau te configureren om aan dergelijke vereisten te voldoen. Het systeem evalueert de hiërarchie van opslaglocaties van schema naar catalogus naar metastore.

Stel dat uw organisatie een nalevingsbeleid voor bedrijven heeft waarvoor productiegegevens met betrekking tot human resources moeten worden opgeslagen in de container abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. In Unity Catalog kunt u deze vereiste bereiken door een locatie op catalogusniveau in te stellen, een catalogus te maken die bijvoorbeeld hr_prodwordt aangeroepen en de locatie toe te wijzen abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Dit betekent dat beheerde tabellen of volumes die zijn gemaakt in de hr_prod catalogus (bijvoorbeeld met behulp van CREATE TABLE hr_prod.default.table …) hun gegevens opslaan in abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. U kunt er desgewenst voor kiezen om locaties op schemaniveau op te geven om gegevens op hr_prod catalog een gedetailleerder niveau te ordenen.

Als opslagisolatie niet vereist is voor sommige catalogi, kunt u desgewenst een opslaglocatie instellen op metastoreniveau. Deze locatie fungeert als een standaardlocatie voor beheerde tabellen en volumes in catalogi en schema's waaraan geen opslag is toegewezen. Databricks raadt echter aan afzonderlijke beheerde opslaglocaties toe te wijzen voor elke catalogus.

Zie Een beheerde opslaglocatie opgeven in Unity Catalog en Gegevens worden fysiek gescheiden in de opslag voor meer informatie.

Werkruimtecatalogusbinding

Cataloguseigenaren (en metastore-beheerders, als ze zijn gedefinieerd voor het account) kunnen standaard een catalogus toegankelijk maken voor gebruikers in meerdere werkruimten die zijn gekoppeld aan dezelfde Unity Catalog-metastore. Als u werkruimten gebruikt om de toegang tot gebruikersgegevens te isoleren, kunt u de catalogustoegang tot specifieke werkruimten in uw account beperken om ervoor te zorgen dat bepaalde soorten gegevens alleen in die werkruimten worden verwerkt. Mogelijk wilt u afzonderlijke productie- en ontwikkelingswerkruimten, bijvoorbeeld een afzonderlijke werkruimte voor het verwerken van persoonlijke gegevens. Dit staat bekend als binding tussen werkruimtecatalogussen. Zie Catalogustoegang beperken tot specifieke werkruimten.

Notitie

Voor meer gegevensisolatie kunt u ook toegang tot cloudopslag en cloudservicetoegang tot specifieke werkruimten binden. Zie (Optioneel) Wijs een opslagreferentie toe aan specifieke werkruimten, (optioneel) Wijs een externe locatie toe aan specifieke werkruimten en (optioneel) Wijs een servicereferentie toe aan specifieke werkruimten.

Toegang tot gegevens controleren

Unity Catalog legt een auditlogboek vast van acties die worden uitgevoerd op de metastore, zodat beheerders toegang hebben tot gedetailleerde details over wie toegang heeft gekregen tot een bepaalde gegevensset en de acties die ze hebben uitgevoerd.

U hebt toegang tot de auditlogboeken van uw account met behulp van systeemtabellen die worden beheerd door Unity Catalog.

Zie Gebeurtenissen van unity-catalogus controleren, Unity Catalog-gebeurtenissen en accountactiviteit bewaken met systeemtabellen.

Gegevensherkomst bijhouden

U kunt Unity Catalog gebruiken om runtimegegevensherkomst vast te leggen in query's in elke taal die wordt uitgevoerd op een Azure Databricks-cluster of SQL Warehouse. Herkomst wordt vastgelegd op kolomniveau en bevat notebooks, taken en dashboards die betrekking hebben op de query. Zie Gegevensherkomst vastleggen en weergeven met behulp van Unity Catalog voor meer informatie.

Lakehouse Federation en Unity Catalog

Lakehouse Federation is het queryfederatieplatform voor Azure Databricks. De termenqueryfederatie beschrijft een verzameling functies waarmee gebruikers en systemen query's kunnen uitvoeren op meerdere gesilode gegevensbronnen zonder dat alle gegevens naar een geïntegreerd systeem hoeven te worden gemigreerd.

Azure Databricks maakt gebruik van Unity Catalog om queryfederatie te beheren. U gebruikt Unity Catalog om alleen-lezenverbindingen met populaire externe databasesystemen te configureren en refererende catalogi te maken die externe databases spiegelen. De hulpprogramma's voor gegevensbeheer en gegevensherkomst van Unity Catalog zorgen ervoor dat gegevenstoegang wordt beheerd en gecontroleerd voor alle federatieve query's die zijn gemaakt door de gebruikers in uw Azure Databricks-werkruimten.

Zie Wat is Lakehouse Federation?

Delta Sharing, Databricks Marketplace en Unity Catalog

Delta Sharing is een beveiligd platform voor het delen van gegevens waarmee u gegevens en AI-assets kunt delen met gebruikers buiten uw organisatie, ongeacht of deze gebruikers Databricks gebruiken. Hoewel Delta Sharing beschikbaar is als een opensource-implementatie, moet Unity Catalog in Databricks volledig profiteren van uitgebreide functionaliteit. Zie Wat is Delta Sharing?

Databricks Marketplace, een open forum voor het uitwisselen van gegevensproducten, is gebouwd op Delta Sharing. Als zodanig moet u een werkruimte met Unity Catalog hebben om een Marketplace-provider te zijn. Zie Wat is Databricks Marketplace?

Hoe kan ik Unity Catalog instellen voor mijn organisatie?

Als u Unity Catalog wilt gebruiken, moet uw Azure Databricks-werkruimte zijn ingeschakeld voor Unity Catalog. Dit betekent dat de werkruimte is gekoppeld aan een Unity Catalog-metastore.

Hoe wordt een werkruimte gekoppeld aan een metastore? Dit is afhankelijk van het account en de werkruimte:

  • Wanneer u voor het eerst een Azure Databricks-werkruimte in een regio maakt, wordt de metastore automatisch gemaakt en gekoppeld aan de werkruimte.
  • Voor sommige oudere accounts moet een accountbeheerder de metastore maken en de werkruimten in die regio toewijzen aan de metastore. Zie Een Unity Catalog-metastore maken voor instructies.
  • Als een account al een metastore heeft toegewezen voor een regio, kan een accountbeheerder beslissen of de metastore automatisch moet worden gekoppeld aan alle nieuwe werkruimten in die regio. Zie Een metastore inschakelen om automatisch toe te wijzen aan nieuwe werkruimten.

Of uw werkruimte al dan niet automatisch is ingeschakeld voor Unity Catalog, de volgende stappen zijn ook vereist om aan de slag te gaan met Unity Catalog:

  • Maak catalogi en schema's die databaseobjecten, zoals tabellen en volumes, bevatten.
  • Maak beheerde opslaglocaties voor het opslaan van de beheerde tabellen en volumes in deze catalogi en schema's.
  • Gebruikers toegang verlenen tot catalogi, schema's en databaseobjecten.

Werkruimten die automatisch zijn ingeschakeld voor Unity Catalog, richten een werkruimtecatalogus in met brede bevoegdheden die zijn verleend aan alle werkruimtegebruikers. Deze catalogus is een handig startpunt voor het uitproberen van Unity Catalog.

Zie Unity Catalog instellen en beheren voor gedetailleerde installatie-instructies.

Een bestaande werkruimte migreren naar Unity Catalog

Als u een oudere werkruimte hebt die u onlangs hebt ingeschakeld voor Unity Catalog, hebt u waarschijnlijk gegevens die worden beheerd door de verouderde Hive-metastore. U kunt met deze gegevens werken naast gegevens die zijn geregistreerd in Unity Catalog, maar de verouderde Hive-metastore is afgeschaft en u moet de gegevens in uw Hive-metastore zo snel mogelijk migreren naar Unity Catalog om te profiteren van de superieure governancemogelijkheden en prestaties van Unity Catalog.

Migratie omvat het volgende:

  1. Converteer alle werkruimte-lokale groepen naar groepen op accountniveau. Unity Catalog centraliseert identiteitsbeheer op accountniveau.
  2. Tabellen en weergaven migreren die worden beheerd in hive-metastore naar Unity Catalog.
  3. Werk query's en taken bij om te verwijzen naar de nieuwe Unity Catalog-tabellen in plaats van de oude Hive-metastore-tabellen.

Het volgende kan u helpen bij het beheren van een migratie:

Vereisten en beperkingen voor Unity Catalog

Unity Catalog vereist specifieke typen reken- en bestandsindelingen, zoals hieronder wordt beschreven. Hieronder vindt u ook enkele Azure Databricks-functies die niet volledig worden ondersteund in Unity Catalog op alle Databricks Runtime-versies.

Regioondersteuning

Alle regio's ondersteunen Unity Catalog. Zie Azure Databricks-regio's voor meer informatie.

Rekenvereisten

Unity Catalog wordt ondersteund op clusters waarop Databricks Runtime 11.3 LTS of hoger wordt uitgevoerd. Unity Catalog wordt standaard ondersteund voor alle SQL Warehouse-rekenversies .

Clusters die worden uitgevoerd in eerdere versies van Databricks Runtime bieden geen ondersteuning voor alle ALGEMENE functies en functionaliteit van Unity Catalog.

Voor toegang tot gegevens in Unity Catalog moeten clusters worden geconfigureerd met de juiste toegangsmodus. Unity Catalog is standaard beveiligd. Als een cluster niet is geconfigureerd met de modus voor gedeelde of individuele gebruikerstoegang, heeft het cluster geen toegang tot gegevens in Unity Catalog. Zie Access-modi.

Zie de releaseopmerkingen voor gedetailleerde informatie over wijzigingen in de functionaliteit van Unity Catalog in elke Databricks Runtime-versie.

Beperkingen voor Unity Catalog variëren per toegangsmodus en Databricks Runtime-versie. Zie beperkingen voor de compute-toegangsmodus voor Unity Catalog.

Ondersteuning voor bestandsindelingen

Unity Catalog ondersteunt de volgende tabelindelingen:

Beperkingen

Unity Catalog heeft de volgende beperkingen. Sommige hiervan zijn specifiek voor oudere Databricks Runtime-versies en compute-toegangsmodi.

Workloads voor gestructureerd streamen hebben extra beperkingen, afhankelijk van Databricks Runtime en de toegangsmodus. Zie beperkingen voor de compute-toegangsmodus voor Unity Catalog.

Databricks brengt nieuwe functionaliteit uit die deze lijst regelmatig verkleint.

  • Groepen die eerder zijn gemaakt in een werkruimte (dat wil gezegd groepen op werkruimteniveau) kunnen niet worden gebruikt in Unity Catalog-instructies GRANT . Dit is om een consistente weergave te garanderen van groepen die over meerdere werkruimten kunnen beschikken. Als u groepen in GRANT-instructies wilt gebruiken, maakt u uw groepen op accountniveau en werkt u automatisering bij voor principal- of groepsbeheer (zoals SCIM-, Okta- en Microsoft Entra ID-connectors en Terraform) om te verwijzen naar accounteindpunten in plaats van werkruimte-eindpunten. Zie Verschil tussen accountgroepen en werkruimte-lokale groepen.

  • Workloads in R bieden geen ondersteuning voor het gebruik van dynamische weergaven voor beveiliging op rij- of kolomniveau voor berekeningen met Databricks Runtime 15.3 en lager.

    Gebruik één rekenresource met Databricks Runtime 15.4 LTS of hoger voor workloads in R die dynamische weergaven uitvoeren. Voor dergelijke workloads is ook een werkruimte vereist die is ingeschakeld voor serverloze berekeningen. Zie Gedetailleerd toegangsbeheer voor rekenkracht van één gebruiker voor meer informatie.

  • Ondiepe klonen worden niet ondersteund in Unity Catalog op rekenkracht waarop Databricks Runtime 12.2 LTS en lager wordt uitgevoerd. U kunt ondiepe klonen gebruiken om beheerde tabellen te maken in Databricks Runtime 13.3 LTS en hoger. U kunt ze niet gebruiken om externe tabellen te maken, ongeacht de Databricks Runtime-versie. Zie Ondiepe kloon voor Unity Catalog-tabellen.

  • Bucketing wordt niet ondersteund voor Unity Catalog-tabellen. Als u opdrachten uitvoert die proberen een bucketed tabel te maken in Unity Catalog, wordt er een uitzondering gegenereerd.

  • Schrijven naar hetzelfde pad of Delta Lake-tabel vanuit werkruimten in meerdere regio's kan leiden tot onbetrouwbare prestaties als sommige clusters toegang hebben tot Unity Catalog en andere niet.

  • Het bewerken van partities voor externe tabellen met behulp van opdrachten zoals ALTER TABLE ADD PARTITION vereist dat logboekregistratie van partitiemetagegevens is ingeschakeld. Zie Partitiedetectie voor externe tabellen.

  • De overschrijfmodus voor DataFrame-schrijfbewerkingen in Unity Catalog wordt alleen ondersteund voor Delta-tabellen, niet voor andere bestandsindelingen. De gebruiker moet de CREATE bevoegdheid hebben voor het bovenliggende schema en moet de eigenaar van het bestaande object zijn of de MODIFY bevoegdheid voor het object hebben.

  • Python UDF's worden niet ondersteund in Databricks Runtime 12.2 LTS en hieronder. Dit omvat UDAF's, UDDF's en Pandas in Spark (applyInPandas en mapInPandas). Python scalaire UDF's worden ondersteund in Databricks Runtime 13.3 LTS en hoger.

  • Scala UDF's worden niet ondersteund in Databricks Runtime 14.1 en lager op gedeelde clusters. Scalaire UDF's worden ondersteund in Databricks Runtime 14.2 en hoger op gedeelde clusters.

  • Standaard-Scala-threadgroepen worden niet ondersteund. Gebruik in plaats daarvan de speciale threadgroepen in org.apache.spark.util.ThreadUtils, bijvoorbeeld org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. De volgende threadgroepen worden ThreadUtils echter niet ondersteund: ThreadUtils.newForkJoinPool en een ScheduledExecutorService threadpool.

  • Auditlogboekregistratie wordt alleen ondersteund voor Unity Catalog-gebeurtenissen op werkruimteniveau. Gebeurtenissen die plaatsvinden op accountniveau zonder verwijzing naar een werkruimte, zoals het maken van een metastore, worden niet geregistreerd.

Modellen die zijn geregistreerd in Unity Catalog, hebben extra beperkingen. Zie beperkingen.

Resourcequota

Unity Catalog dwingt resourcequota af voor alle beveiligbare objecten. Deze quota worden vermeld in resourcelimieten. Als u verwacht deze resourcelimieten te overschrijden, neemt u contact op met uw Azure Databricks-accountteam.

U kunt uw quotumgebruik bewaken met behulp van de quota-API's voor Unity Catalog-resources. Zie Monitor your usage of Unity Catalog resource quotas.