Dela via


Vad är Unity Catalog?

Den här artikeln introducerar Unity Catalog, en enhetlig styrningslösning för data och AI-tillgångar i Azure Databricks.

Kommentar

Unity Catalog är också tillgängligt som en implementering med öppen källkod. Se meddelandebloggen och den offentliga GitHub-lagringsplatsen för Unity Catalog.

Översikt över Unity Catalog

Unity Catalog tillhandahåller centraliserade funktioner för åtkomstkontroll, granskning, ursprung och dataidentifiering i Azure Databricks-arbetsytor.

Diagram över Unity-katalog

Viktiga funktioner i Unity Catalog är:

  • Definiera en gång, säkert överallt: Unity Catalog erbjuder en enda plats för att administrera principer för dataåtkomst som gäller för alla arbetsytor.
  • Standardkompatibel säkerhetsmodell: Unity Catalogs säkerhetsmodell baseras på ansi-standard-SQL och tillåter administratörer att bevilja behörigheter i sin befintliga datasjö med hjälp av välbekant syntax, på katalognivå, scheman (kallas även databaser), tabeller och vyer.
  • Inbyggd granskning och ursprung: Unity Catalog samlar automatiskt in granskningsloggar på användarnivå som registrerar åtkomst till dina data. Unity Catalog samlar också in ursprungsdata som spårar hur datatillgångar skapas och används på alla språk.
  • Dataidentifiering: Med Unity Catalog kan du tagga och dokumentera datatillgångar och tillhandahåller ett sökgränssnitt som hjälper datakonsumenter att hitta data.
  • Systemtabeller (offentlig förhandsversion): Med Unity Catalog kan du enkelt komma åt och fråga efter ditt kontos driftdata, inklusive granskningsloggar, fakturerbar användning och ursprung.

Objektmodellen för Unity Catalog

I Unity Catalog registreras alla metadata i ett metaarkiv. Hierarkin för databasobjekt i ett Unity Catalog-metaarkiv är indelat i tre nivåer, som representeras som ett namnområde på tre nivåer (catalog.schema.table-etc) när du refererar till tabeller, vyer, volymer, modeller och funktioner.

Objektmodelldiagram för Unity Catalog

Metaarkiv

Metaarkivet är den översta containern för metadata i Unity Catalog. Den registrerar metadata om data och AI-tillgångar och de behörigheter som styr åtkomsten till dem. För att en arbetsyta ska kunna använda Unity Catalog måste den ha ett Unity Catalog-metaarkiv kopplat.

Du bör ha ett metaarkiv för varje region där du har arbetsytor. Vanligtvis skapas ett metaarkiv automatiskt när du skapar en Azure Databricks-arbetsyta i en region för första gången. För vissa äldre konton måste en kontoadministratör skapa metaarkivet och tilldela arbetsytorna i den regionen till metaarkivet.

Se Skapa ett Unity Catalog-metaarkiv.

Objekthierarki i metaarkivet

I ett metaarkiv i Unity Catalog består databasobjekthierarkin på tre nivåer av kataloger som innehåller scheman, som i sin tur innehåller data och AI-objekt, till exempel tabeller och modeller.

Nivå ett:

  • Kataloger används för att organisera dina datatillgångar och används vanligtvis som den översta nivån i dataisoleringsschemat. Kataloger speglar ofta organisationsenheter eller livscykelomfattningar för programvaruutveckling. Se Vad är kataloger i Azure Databricks?.
  • Icke-dataskyddbara objekt, till exempel autentiseringsuppgifter för lagring och externa platser, används för att hantera din datastyrningsmodell i Unity Catalog. Dessa lever också direkt under metaarkivet. De beskrivs mer detaljerat i Andra skyddsbara objekt.

Nivå två:

  • Scheman (även kallade databaser) innehåller tabeller, vyer, volymer, AI-modeller och funktioner. Scheman organiserar data och AI-tillgångar i logiska kategorier som är mer detaljerade än kataloger. Vanligtvis representerar ett schema ett enskilt användningsfall, ett projekt eller en sandbox-miljö för teamet. Se Vad är scheman i Azure Databricks?.

Nivå tre:

Arbeta med databasobjekt i Unity Catalog

Att arbeta med databasobjekt i Unity Catalog liknar mycket att arbeta med databasobjekt som är registrerade i ett Hive-metaarkiv, med undantag för att ett Hive-metaarkiv inte innehåller kataloger i objektnamnområdet. Du kan använda välbekant ANSI-syntax för att skapa databasobjekt, hantera databasobjekt, hantera behörigheter och arbeta med data i Unity Catalog. Du kan också skapa databasobjekt, hantera databasobjekt och hantera behörigheter för databasobjekt med hjälp av katalogutforskarens användargränssnitt.

Mer information finns i Databasobjekt i Azure Databricks och Arbeta med Unity Catalog och det äldre Hive-metaarkivet.

Andra skyddsbara objekt

Utöver de databasobjekt och AI-tillgångar som finns i scheman styr Unity Catalog även åtkomsten till data med hjälp av följande skyddsbara objekt:

Mer information om objekt som kan skyddas med deltadelning finns i Dela data och AI-tillgångar på ett säkert sätt med deltadelning.

Bevilja och återkalla åtkomst till databasobjekt och andra skyddsbara objekt i Unity Catalog

Du kan bevilja och återkalla åtkomst till skyddsbara objekt på valfri nivå i hierarkin, inklusive själva metaarkivet. Åtkomst till ett objekt ger implicit samma åtkomst till alla underordnade objekt, såvida inte åtkomsten återkallas.

Du kan använda vanliga ANSI SQL-kommandon för att bevilja och återkalla åtkomst till objekt i Unity Catalog. Till exempel:

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

Du kan också använda Catalog Explorer, Databricks CLI och REST API:er för att hantera objektbehörigheter.

Bevilja behörighet med Hjälp av Katalogutforskaren

Information om hur du hanterar privilegier i Unity Catalog finns i Hantera privilegier i Unity Catalog.

Standardåtkomst till databasobjekt i Unity Catalog

Unity Catalog fungerar enligt principen om lägsta behörighet, där användarna har den lägsta åtkomst de behöver för att utföra sina nödvändiga uppgifter. När en arbetsyta skapas har icke-administratörsanvändare endast åtkomst till den automatiskt etablerade arbetsytekatalogen, vilket gör den här katalogen till en lämplig plats för användare att prova processen med att skapa och komma åt databasobjekt i Unity Catalog. Se Katalogbehörigheter för arbetsytor.

Administratörsroller

Arbetsyteadministratörer och kontoadministratörer har ytterligare behörigheter som standard. Metaarkivadministratör är en valfri roll som krävs om du vill hantera tabell- och volymlagring på metaarkivnivå och bekvämt om du vill hantera data centralt över flera arbetsytor i en region. Mer information finns i Administratörsbehörigheter i Unity Catalog och (valfritt) Tilldela administratörsrollen metaarkiv.

Hanterade kontra externa tabeller och volymer

Tabeller och volymer kan hanteras eller externt.

  • Hanterade tabeller hanteras helt av Unity Catalog, vilket innebär att Unity Catalog hanterar både styrningen och de underliggande datafilerna för varje hanterad tabell. Hanterade tabeller lagras på en Enhet kataloghanterad plats i molnlagringen. Hanterade tabeller använder alltid Delta Lake-formatet. Du kan lagra hanterade tabeller på metaarkiv-, katalog- eller schemanivåer.
  • Externa tabeller är tabeller vars åtkomst från Azure Databricks hanteras av Unity Catalog, men vars datalivscykel och fillayout hanteras med hjälp av din molnleverantör och andra dataplattformar. Vanligtvis använder du externa tabeller för att registrera stora mängder av dina befintliga data i Azure Databricks, eller om du också behöver skrivåtkomst till data med hjälp av verktyg utanför Azure Databricks. Externa tabeller stöds i flera dataformat. När en extern tabell har registrerats i ett Unity Catalog-metaarkiv kan du hantera och granska Åtkomsten till Azure Databricks – och arbeta med den – precis som med hanterade tabeller.
  • Hanterade volymer hanteras helt av Unity Catalog, vilket innebär att Unity Catalog hanterar åtkomsten till volymens lagringsplats i ditt molnleverantörskonto. När du skapar en hanterad volym lagras den automatiskt på den hanterade lagringsplats som tilldelats till det innehållande schemat.
  • Externa volymer representerar befintliga data på lagringsplatser som hanteras utanför Azure Databricks, men som registrerats i Unity Catalog för att styra och granska åtkomst inifrån Azure Databricks. När du skapar en extern volym i Azure Databricks anger du dess plats, som måste finnas på en sökväg som definieras på en extern plats i Unity Catalog.

Databricks rekommenderar hanterade tabeller och volymer för att dra full nytta av styrningsfunktionerna i Unity Catalog och prestandaoptimeringar.

Se Arbeta med hanterade tabeller, Arbeta med externa tabeller och Hanterade kontra externa volymer.

Dataisolering med hanterad lagring

Din organisation kan kräva att data av vissa typer lagras i specifika konton eller bucketar i din molnklientorganisation.

Unity Catalog ger möjlighet att konfigurera lagringsplatser på metaarkiv-, katalog- eller schemanivå för att uppfylla sådana krav. Systemet utvärderar hierarkin för lagringsplatser från schema till katalog till metaarkiv.

Anta till exempel att din organisation har en efterlevnadsprincip för företaget som kräver att produktionsdata som rör personal finns i containern abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net. I Unity Catalog kan du uppnå det här kravet genom att ange en plats på katalognivå, skapa en katalog med namnet, till exempel hr_prod, och tilldela platsen abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog till den. Det innebär att hanterade tabeller eller volymer som skapats i hr_prod katalogen (till exempel med hjälp av CREATE TABLE hr_prod.default.table …) lagrar sina data i abfss://mycompany-hr-prod@storage-account.dfs.core.windows.net/unity-catalog. Du kan också välja att ange platser på schemanivå för att organisera data på hr_prod catalog en mer detaljerad nivå.

Om lagringsisolering inte krävs för vissa kataloger kan du ange en lagringsplats på metaarkivnivå. Den här platsen fungerar som standardplats för hanterade tabeller och volymer i kataloger och scheman som inte har tilldelats lagring. Databricks rekommenderar dock vanligtvis att du tilldelar separata hanterade lagringsplatser för varje katalog.

Mer information finns i Ange en hanterad lagringsplats i Unity Catalog och Data är fysiskt avgränsade i lagring.

Bindning av arbetsytekatalog

Som standard kan katalogägare (och metaarkivadministratörer, om de har definierats för kontot) göra en katalog tillgänglig för användare på flera arbetsytor som är kopplade till samma Unity Catalog-metaarkiv. Om du använder arbetsytor för att isolera åtkomst till användardata kanske du vill begränsa katalogåtkomsten till specifika arbetsytor i ditt konto för att säkerställa att vissa typer av data endast bearbetas på dessa arbetsytor. Du kanske vill ha separata arbetsytor för produktion och utveckling, till exempel eller en separat arbetsyta för bearbetning av personliga data. Detta kallas bindning för arbetsytekatalog. Se Begränsa katalogåtkomst till specifika arbetsytor.

Kommentar

För ökad dataisolering kan du också binda åtkomst till molnlagring till specifika arbetsytor. Se (Valfritt) Tilldela en lagringsautentiseringsuppgift till specifika arbetsytor och (valfritt) Tilldela en extern plats till specifika arbetsytor.

Granska dataåtkomst

Unity Catalog samlar in en granskningslogg med åtgärder som utförts mot metaarkivet, vilket gör det möjligt för administratörer att komma åt detaljerad information om vem som har använt en viss datauppsättning och vilka åtgärder de utförde.

Du kan komma åt ditt kontos granskningsloggar med hjälp av systemtabeller som hanteras av Unity Catalog.

Se Granska Unity Catalog-händelser, Unity Catalog-händelser och Övervaka användning med systemtabeller.

Spåra data härstamning

Du kan använda Unity Catalog för att samla in körningsdata härstamning mellan frågor på valfritt språk som körs i ett Azure Databricks-kluster eller SQL-lager. Ursprunget avbildas ned till kolumnnivån och innehåller notebook-filer, arbetsflöden och instrumentpaneler relaterade till frågan. Mer information finns i Avbilda och visa data härstamning med hjälp av Unity Catalog.

Lakehouse Federation och Unity Catalog

Lakehouse Federation är frågefederationsplattformen för Azure Databricks. Termen frågefederation beskriver en samling funktioner som gör det möjligt för användare och system att köra frågor mot flera siloade datakällor utan att behöva migrera alla data till ett enhetligt system.

Azure Databricks använder Unity Catalog för att hantera frågefederation. Du använder Unity Catalog för att konfigurera skrivskyddade anslutningar till populära externa databassystem och skapa externa kataloger som speglar externa databaser. Unity Catalogs verktyg för datastyrning och dataursprung säkerställer att dataåtkomst hanteras och granskas för alla federerade frågor som görs av användarna på dina Azure Databricks-arbetsytor.

Se Vad är Lakehouse Federation.

Deltadelning, Databricks Marketplace och Unity Catalog

Deltadelning är en säker datadelningsplattform som gör att du kan dela data och AI-tillgångar med användare utanför organisationen, oavsett om dessa användare använder Databricks eller inte. Deltadelning är tillgängligt som en implementering med öppen källkod, men i Databricks krävs det att Unity Catalog drar full nytta av utökade funktioner. Se Dela data och AI-tillgångar på ett säkert sätt med deltadelning.

Databricks Marketplace, ett öppet forum för utbyte av dataprodukter, bygger på deltadelning, och därför måste du ha en Unity Catalog-aktiverad arbetsyta för att vara marketplace-leverantör. Se Vad är Databricks Marketplace?.

Hur konfigurerar jag Unity Catalog för min organisation?

Om du vill använda Unity Catalog måste din Azure Databricks-arbetsyta vara aktiverad för Unity Catalog, vilket innebär att arbetsytan är kopplad till ett Unity Catalog-metaarkiv. Alla nya arbetsytor aktiveras automatiskt för Unity Catalog när de skapas, men äldre arbetsytor kan kräva att kontoadministratören aktiverar Unity Catalog manuellt. Oavsett om din arbetsyta har aktiverats för Unity Catalog automatiskt eller inte krävs även följande steg för att komma igång med Unity Catalog:

  • Skapa kataloger och scheman som ska innehålla databasobjekt som tabeller och volymer.
  • Skapa hanterade lagringsplatser för att lagra de hanterade tabellerna och volymerna i dessa kataloger och scheman.
  • Ge användare åtkomst till kataloger, scheman och databasobjekt.

Arbetsytor som aktiveras automatiskt för Unity Catalog etablerar en arbetsytekatalog med breda behörigheter som beviljas alla arbetsyteanvändare. Den här katalogen är en praktisk startpunkt för att testa Unity Catalog.

Detaljerade installationsinstruktioner finns i Konfigurera och hantera Unity Catalog.

Migrera en befintlig arbetsyta till Unity Catalog

Om du har en äldre arbetsyta som du nyligen har aktiverat för Unity Catalog har du förmodligen data som hanteras av det äldre Hive-metaarkivet. Du kan arbeta med dessa data tillsammans med data som är registrerade i Unity Catalog, men det äldre Hive-metaarkivet är inaktuellt och du bör migrera data i hive-metaarkivet till Unity Catalog så snart som möjligt för att dra nytta av Unity Catalogs överlägsna styrningsfunktioner och prestanda.

Migreringen omfattar följande:

  1. Konvertera alla lokala arbetsytegrupper till grupper på kontonivå. Unity Catalog centraliserar identitetshantering på kontonivå.
  2. Migrera tabeller och vyer som hanteras i Hive-metaarkivet till Unity Catalog.
  3. Uppdatera frågor och arbetsflöden för att referera till de nya Unity Catalog-tabellerna i stället för de gamla Hive-metaarkivtabellerna.

Följande kan hjälpa dig att hantera en migrering:

Krav och begränsningar för Unity-katalogen

Unity Catalog kräver specifika typer av beräknings- och filformat, som beskrivs nedan. Nedan visas även några Azure Databricks-funktioner som inte stöds fullt ut i Unity Catalog på alla Databricks Runtime-versioner.

Regionstöd

Alla regioner stöder Unity Catalog. Mer information finns i Azure Databricks-regioner.

Beräkningskrav

Unity Catalog stöds på kluster som kör Databricks Runtime 11.3 LTS eller senare. Unity Catalog stöds som standard i alla SQL Warehouse-beräkningsversioner .

Kluster som körs på tidigare versioner av Databricks Runtime har inte stöd för alla unity catalog GA-funktioner.

För att få åtkomst till data i Unity Catalog måste kluster konfigureras med rätt åtkomstläge. Unity Catalog är säker som standard. Om ett kluster inte har konfigurerats med åtkomstläge för delad eller enskild användare kan klustret inte komma åt data i Unity Catalog. Se Åtkomstlägen.

Detaljerad information om funktionsändringar i Unity Catalog i varje Databricks Runtime-version finns i viktig information.

Begränsningarna för Unity Catalog varierar beroende på åtkomstläge och Databricks Runtime-version. Se Begränsningar för beräkningsåtkomstläge för Unity Catalog.

Stöd för filformat

Unity Catalog stöder följande tabellformat:

Begränsningar

Unity Catalog har följande begränsningar. Vissa av dessa är specifika för äldre Databricks Runtime-versioner och beräkningsåtkomstlägen.

Strukturerade strömningsarbetsbelastningar har ytterligare begränsningar, beroende på Databricks Runtime och åtkomstläge. Se Begränsningar för beräkningsåtkomstläge för Unity Catalog.

Databricks släpper nya funktioner som krymper listan regelbundet.

  • Grupper som tidigare har skapats i en arbetsyta (dvs. grupper på arbetsytenivå) kan inte användas i Unity Catalog-instruktioner GRANT . Detta är för att säkerställa en konsekvent vy över grupper som kan sträcka sig över arbetsytor. Om du vill använda grupper i GRANT-instruktioner skapar du dina grupper på kontonivå och uppdaterar all automatisering för huvud- eller grupphantering (till exempel SCIM-, Okta- och Microsoft Entra-ID-anslutningsappar (tidigare Azure Active Directory) och Terraform) för att referera till kontoslutpunkter i stället för arbetsyteslutpunkter. Se Skillnaden mellan kontogrupper och arbetsytelokala grupper.

  • Arbetsbelastningar i R stöder inte användning av dynamiska vyer för säkerhet på radnivå eller kolumnnivå.

  • Grunda kloner stöds inte i Unity Catalog vid beräkning som kör Databricks Runtime 12.2 LTS och nedan. Du kan använda grunda kloner för att skapa hanterade tabeller på Databricks Runtime 13.3 LTS och senare. Du kan inte använda dem för att skapa externa tabeller, oavsett Databricks Runtime-version. Se Ytlig klon för Unity Catalog-tabeller.

  • Bucketing stöds inte för Unity Catalog-tabeller. Om du kör kommandon som försöker skapa en bucketad tabell i Unity Catalog utlöser det ett undantag.

  • Att skriva till samma sökväg eller Delta Lake-tabell från arbetsytor i flera regioner kan leda till otillförlitliga prestanda om vissa kluster har åtkomst till Unity Catalog och andra inte.

  • Anpassade partitionsscheman som skapats med kommandon som ALTER TABLE ADD PARTITION inte stöds för tabeller i Unity Catalog. Unity Catalog kan komma åt tabeller som använder partitionering i katalogformat.

  • Skriv över läge för DataFrame-skrivåtgärder till Unity Catalog stöds endast för Delta-tabeller, inte för andra filformat. Användaren måste ha behörigheten CREATE för det överordnade schemat och måste vara ägare till det befintliga objektet eller ha behörigheten MODIFY för objektet.

  • Python-UDF:er stöds inte i Databricks Runtime 12.2 LTS och nedan. Detta inkluderar UDAFs, UDF:er och Pandas på Spark (applyInPandas och mapInPandas). Python-skalära UDF:er stöds i Databricks Runtime 13.3 LTS och senare.

  • Scala-UDF:er stöds inte i Databricks Runtime 14.1 och nedan i delade kluster. Scala scalar UDF:er stöds i Databricks Runtime 14.2 och senare i delade kluster.

  • Standard Scala-trådpooler stöds inte. Använd i stället de särskilda trådpoolerna i org.apache.spark.util.ThreadUtils, till exempel org.apache.spark.util.ThreadUtils.newDaemonFixedThreadPool. Följande trådpooler i ThreadUtils stöds dock inte: ThreadUtils.newForkJoinPool och alla ScheduledExecutorService trådpooler.

  • Granskningsloggning stöds endast för Unity Catalog-händelser på arbetsytenivå. Händelser som äger rum på kontonivå utan referens till en arbetsyta, till exempel att skapa ett metaarkiv, loggas inte.

Modeller som är registrerade i Unity Catalog har ytterligare begränsningar. Se Begränsningar.

Resurskvoter

Unity Catalog tillämpar resurskvoter på alla skyddbara objekt. Om du förväntar dig att överskrida dessa resursgränser kontaktar du ditt Azure Databricks-kontoteam.

Kvotvärdena nedan är uttryckta i förhållande till det överordnade (eller huvudordnade) objektet i Unity Catalog.

Objekt Parent Värde
table schema 10000
table metaarkiv 1 000 000
volym schema 10000
function schema 10000
Registrerad modell schema 1000
Registrerad modell metaarkiv 5000
modellversion Registrerad modell 10000
modellversion metaarkiv 100000
schema katalog 10000
katalog metaarkiv 1000
anslutning metaarkiv 1000
autentiseringsuppgift för lagring metaarkiv 200
extern plats metaarkiv 10000

Information om deltadelningsgränser finns i Resurskvoter.