Der Databricks Unity Catalog einfach erklärt      

Databricks Unity Catalog Überblick

Der von Databricks angebotene Unity-Catalog ist ein Governance-Tool, mit dem verschiedene Ressourcen innerhalb der Databricks-Plattform verwaltet werden können. 

Mit seinen umfangreichen Funktionen ermöglicht Unity Catalog die Verwaltung zahlreicher Databricks-Ressourcen, darunter Meta-Storage, Schemata, Tabellen und Views und vereinfacht das Arbeiten im Team durch sein Workspace-übergreifendes Design.

In diesem Beitrag erklären wir Ihnen etwas über die Funktionen, die Möglichkeiten und Vorteile des Unity Catalogs und seine Architektur. Lassen Sie uns starten:

  1. Was ist der Unity Catalog?
  2. Warum hat Databricks den Unity Catalog entwickelt?
  3. Was sind die Funktionen und Möglichkeiten des Databricks Unity Catalog?
  4. Was sind die einzelnen Komponenten des Catalogs?
  5. Fragen rund um den Unity Catalog
  6. Was sind die Vorteile des Unity Catalogs?
  7. Fazit
  8. FAQ – Die wichtigsten Fragen schnell beantwortet

Was ist der Databricks Unity Catalog?

Der Unity Catalog ist eine einheitliche Governance-Lösung für alle Daten und KI-Assets wie Dateien, Tabellen, Machine-Learning-Modelle und Dashboards in einem Lakehouse in Databricks und das in einer beliebigen Cloud. 

Unity Catalog ermöglicht die Verwaltung von Datenbeständen als zentrales Repository, gekoppelt an ein Data-Governance-Framework. Zudem verfügt es über ein umfassendes Audit-Protokoll aller Aktionen der gespeicherten Daten eines Databricks-Kontos.

In Bezug auf Metastores hat Unity Catalog das Potenzial, bestehende Lösungen wie Hive Metastore oder Glue Catalog zu ersetzen. Er kann aber auch mit diesen bestehenden Metastores zusammenarbeiten und zusätzliche Funktionalität und Governance bieten. Dank dieser Flexibilität können Unternehmen Unity Catalog entsprechend ihren spezifischen Anforderungen und ihrer Infrastruktur einsetzen.

Sehen wir uns nun an, was die Beweggründe hinter der Entwicklung des Catalogs sind.

Warum hat Databricks den Unity Catalog entwickelt?

Nach dem Erfolg von Databricks im Bereich der Datenspeicherung und -verarbeitung einer Datenplattform begann das Unternehmen, Zeit in die Entwicklung von Komponenten für zwei vernachlässigte Bereiche zu investieren: Discovery und Governance.

Mitte 2021 wurde der Catalog eingeführt, um das Problem der Data Governance zu lösen. Davor wurden die Katalogisierung und Verwaltung von Daten in der Regel an ein Unternehmen oder ein Open-Source-Tool ausgelagert.

Obwohl es viele Optionen auf dem Markt gab, bestand die Idee darin, eine Lösung für 

  • Datenkatalogisierung, 
  • Discovery 
  • und Governance 

zu entwickeln, die sich nahtlos in das Databricks-Ökosystem einfügen lässt.

Die Lösung wollte Databricks insbesondere in Bezug auf die Verwaltung der verschiedenen Asset-Typen entwickeln, die Teil der Lakehouse-Architektur sind und den Kunden von Databricks einen enormen Mehrwert bieten.

Databricks erwähnt in seinem Blogpost zur ersten Version, dass sie einen Mangel an granularen Sicherheitskontrollen für Data Lakes in bestehenden Tools festgestellt haben. Darüber hinaus wurde festgestellt, dass die bestehenden Tools Cloud-Plattform-spezifisch sind. Das heißt, dass AWS Glue Catalog für AWS-basierte Plattformen und Azure Data Catalog für Azure-basierte Plattformen exklusiv sind.

Der Unity Catalog ermöglicht die Zusammenarbeit verschiedener Analysten und Engineers an den Selben Daten.
Der Unity Catalog verbindet die verschiedenen Workspaces miteinander.

Das sind die Hauptgründe, warum Databricks schließlich den Unity Catalog im April 2022 veröffentlichte. Nun sehen wir uns an, welche Funktionen und Möglichkeiten der Unity Catalog bietet.

Was sind die Funktionen des Databricks Unity Catalog?

Die Funktionen von Databricks Unity Catalog lassen sich grob in vier Kategorien einteilen: 

  1. Data Discovery, 
  2. Governance,
  3. Lineage
  4. und Sharing. 

Lassen Sie uns die einzelnen Kategorien genauer betrachten.

1.     Datenermittlung (Data Discovery)

Unity Catalog verbindet die Vorteile einer gut strukturierten Metadatenorganisation mit einer leistungsfähigen Suchoberfläche. Er macht die Metadaten für die Suche zugänglich, schränkt aber den Zugriff auf diese Metadaten entsprechend den Privilegien und Berechtigungen des angemeldeten Users ein. Dadurch wird die Sicherheit auf Metadatenebene gewährleistet. Wir können Datenbestände kennzeichnen und dokumentieren und diese durch eine Schnittstelle mit anderen Datennutzern teilen.

2.     Data Governance im Databricks Unity Catalog

Der Databricks Unity Catalog wurde entwickelt, um durch ein zentrales Repository für alle Datenbestände wie Dateien, Tabellen, Ansichten, Dashboards usw. eine Such- und Entdeckungserfahrung zu bieten. In Verbindung mit einem Data-Governance-Framework und einem umfassenden Audit-Protokoll aller Aktionen, die mit den in einem Databricks-Konto gespeicherten Daten durchgeführt werden, macht dies den Unity Catalog für Unternehmen sehr attraktiv.

Aus Sicht des Identitäts- und Zugriffsmanagements können Databricks-Benutzer gleichzeitig Service-Principals, Benutzer und Gruppen sein. So gewährleistet Databricks eine Vertrauensbasis für die Nutzer des Catalogs. Durch diese Vertrauensbeziehung erhalten sie eine Identity Federation (Identitätsföderation).

Mit Unity Catalog können wir SQL verwenden, um den Zugriff auf Basis von Zeilen und Spalten zu steuern. Die nächste Granularitätsstufe wird die attributbasierte Zugriffskontrolle sein, die sich derzeit in der Entwicklung befindet, aber noch nicht veröffentlicht wurde.

3.     Datenabfolge (Data Lineage) im Databricks Unity Catalog

Wir können Data Lineage für verschiedene Anwendungsfälle im Data Engineering verwenden, wie zum Beispiel für

  • die Verfolgung und Überwachung von Aufträgen, 
  • die Fehlersuche, 
  • das Verständnis komplexer Workflows, 
  • die Verfolgung von Transformationsregeln 

und vieles mehr. Der Catalog nutzt den SQL-Parser, um Lineage-Metadaten aus Abfragen zu extrahieren, sowie externe Tools wie dbt und Airflow. Lineage im Unity Catalog ist nicht auf SQL beschränkt, sondern ist für jeden Code verfügbar, den wir in unserem Arbeitsbereich schreiben.

Lineage-Daten enthalten sensible Informationen über den Datenfluss in Ihrem Unternehmen. Deswegen setzt Databricks auch hier das Governance-Modell ein, das den Zugriff auf die Daten-Lineage auf der Grundlage der Berechtigungen der angemeldeten Benutzer einschränkt. 

4.     Gemeinsame Nutzung von Daten (Data sharing)

Mit der Delta-Sharing-Funktion des Unity-Katalogs können Sie die gemeinsame Nutzung von Daten wesentlich einfacher und transparenter gestalten. Mit dieser Funktion entfällt die Notwendigkeit, Daten zu replizieren oder zusätzliche Prozesse zu entwickeln. 

Delta Sharing ermöglicht die effiziente gemeinsame Nutzung von Daten mit anderen Organisationen ohne die Komplexität herkömmlicher Methoden. Darüber hinaus unterstützt Delta Sharing von Unity Catalog offene, plattformunabhängige Protokolle, die mit verschiedenen Systemen kompatibel sind und die Interoperabilität für einen optimierten Datenaustausch verbessern. 

Wir haben den Vorteilen von Databricks Unity Catalog einen ganzen Blog-Beitrag gewidmet.

Was sind die einzelnen Komponenten des Databricks Unity Catalog? 

Im Unity Catalog verläuft die Hierarchie der Primärdatenobjekte vom Metastore zur Tabelle (Table) oder zum Schema:

Metaspeicher (Metastore)Der Top-Level-Container für Metadaten. Jeder Metastore verfügt über einen dreistufigen Namensraum (catalog.schema.table), in dem Ihre Daten organisiert sind.
Katalog (Catalog)Die erste Ebene der Objekthierarchie, die zur Organisation Ihrer Datenbestände dient.
Schema (Schema)Schemas, auch Datenbanken genannt, bilden die zweite Ebene der Objekthierarchie und enthalten Tabellen und Ansichten.
Volumen (Volumes)Volumes befinden sich neben Tabellen und Ansichten auf der untersten Ebene der Objekthierarchie und dienen der Verwaltung von nicht tabellarischen Daten.
Tabelle (Table)Auf der untersten Ebene der Objekthierarchie befinden sich Tabellen und Ansichten.
Die einzelnen Komponenten des Catalogs und ihre Funktion.

Sehen wir uns die drei Ebenen des Namespace von Databricks Unity Catalog genauer an.

Metaspeicher (Metastore) im Databricks Unity Catalog

Der Metastore dient als Container für alle Ihre Datenbestände, die zunächst in mehrere Kataloge (Catalogs), dann in Schemata und schließlich in Entitäten wie Tabellen (Tables), Ansichten (Views), Funktionen (Functions) usw. kategorisiert werden. Unity Catalog verwendet einen eigenen Metastore, der jedoch weitgehend mit Apache Hive kompatibel ist.

Der Speicher-Backend variiert dabei, je nachdem, an welcher Stelle wir Databricks einsetzen, z.B. auf AWS oder Azure. Auf AWS wird unser Metastore beispielsweise in einem S3-Bucket gespeichert. Wir können auch einen externen Hive-Metaspeicher anstelle des nativen Unity Catalog-Metaspeichers verwenden, wenn wir die volle Funktionalität von Apache Hive nutzen möchten.

Der Metaspeicher besteht aus drei Ebenen und dient als Container für alle Datenbestände.
Der Metaspeicher besteht aus drei Ebenen und dient als Container für alle Datenbestände.

Ebene 1: Katalog (Catalog)

Ein Katalog ist die erste Ebene des dreistufigen Namespace von Unity Catalog. Er dient der Organisation unserer Datenbestände und gewährleistet Benutzern die Einsicht in alle Kataloge, für die sie jeweils Zugriffsrechte verfügen. 

Alle Benutzer haben das Recht USE CATALOG für den Hauptkatalog. Der Hauptkatalog ist für Organisationen gedacht, die gerade erst mit Unity Catalog beginnen. Wenn wir Benutzer und Daten hinzufügen, sollten wir Kataloge hinzufügen, um eine Datenhierarchie zu erhalten, die eine effiziente Zugriffskontrolle ermöglicht.

Ebene 2: Schema

Ein Schema (auch Datenbank genannt) ist die zweite Ebene des dreistufigen Namespace von Unity Catalog und ist für die Organisation von Tabellen und Views zuständig. Benutzer können alle Schemas sehen, für die sie das Recht USE SCHEMA zusammen mit dem Recht USE CATALOG für den übergeordneten Katalog des Schemas haben. Um auf eine Tabelle oder eine View in einem Schema zuzugreifen oder diese aufzulisten, muss der Benutzer auch das Recht SELECT für die Tabelle oder den View haben.

Ebene 3: Volume

Ein Volume befindet sich auf der dritten Ebene des dreistufigen Namespace von Databricks Unity Catalog.

Volumes…

  • …sind Partner von Tabellen, Ansichten und anderen Objekten, die in einem Schema in Unity Catalog organisiert sind.
  • …enthalten Verzeichnisse und Dateien für Daten, die in einem beliebigen Format gespeichert sind. 
  • …bieten einen nicht-tabellarischen Zugriff auf Daten, d.h. Dateien in Volumes können nicht als Tabellen registriert werden.

Um ein Volume anlegen zu können, benötigt der Benutzer die Rechte CREATE VOLUME und USE SCHEMA für das Schema und das Recht USE CATALOG für den übergeordneten Katalog.

Damit der User Dateien und Verzeichnisse lesen kann, die auf einem Volume gespeichert sind, muss er die Rechte READ VOLUME und USE SCHEMA für das übergeordnete Schema und das Recht USE CATALOG für den übergeordneten Katalog haben.

Um Dateien und Verzeichnisse, die auf einem Volume gespeichert sind, hinzuzufügen, zu löschen oder zu ändern, müssen Benutzer das Recht WRITE VOLUME, das Recht USE SCHEMA für das übergeordnete Schema und das Recht USE CATALOG für den übergeordneten Katalog haben.

Ein Datenträger kann dabei verwaltet oder extern sein.

Ebene 3: Tabellen

Eine Tabelle befindet sich ebenfalls auf der dritten Ebene des dreistufigen Namespace des Unity Catalog. Sie enthält Zeilen mit Daten. Um eine Tabelle zu erstellen, benötigt der Benutzer die Rechte CREATE und USE SCHEMA für das Schema und das Recht USE CATALOG für den übergeordneten Katalog. Um eine Tabelle abzufragen, muss der Benutzer das Recht SELECT für die Tabelle, das Recht USE SCHEMA für das übergeordnete Schema und das Recht USE CATALOG für den übergeordneten Katalog haben.

Ebene 3: Ansichten (Views)

Eine Ansicht ist ein schreibgeschütztes Objekt, das aus einer oder mehreren Tabellen und Ansichten in einem Metaspeicher erstellt wird. Er befindet sich wie die Tables und das Volume auf der dritten Ebene des dreistufigen Namespace von Unity Catalog. Ein View kann aus Tabellen und anderen Views in mehreren Schemas und Katalogen erstellt werden. Sie können dynamische Views erstellen, um Berechtigungen auf Zeilen- und Spaltenebene zu aktivieren.

Ebene 3: Modelle

Auch Modelle befinden sich auf der dritten Ebene des dreistufigen Namespace des Unity Catalog. In diesem Zusammenhang bezieht sich der Begriff „Modell“ auf ein maschinelles Lernmodell, das in der MLflow Model Registry registriert ist. Um ein Modell im Unity Catalog zu erstellen, muss der Benutzer das Recht CREATE MODEL für den Katalog oder das Schema besitzen. Der Benutzer muss auch das Recht USE CATALOG für den übergeordneten Katalog und USE SCHEMA für das übergeordnete Schema haben.

Im Folgenden beantworten wir einige Fragen rund um den Unity Catalog.

Fragen rund um den Databricks Unity Catalog

Was sind verwaltete (Managed) Volumes?

Managed Volumes speichern Dateien am Standard-Speicherort des Unity-Katalogs für das Schema, in dem sie enthalten sind. Wir verwenden Managed Volumes, wenn wir einen kontrollierten Speicherort für die Arbeit mit Dateien zur Verfügung stellen möchten, ohne uns um die Erstellung und Verwaltung externer Speicherorte und Speicheranmeldeinformationen kümmern zu müssen.

Die folgende Hierarchie legt fest, welcher Speicherort für ein verwaltetes Volume verwendet wird:

  • Schema-Speicherort
  • Katalog-Speicherort
  • Unity-Katalog-Stammspeicherort

Wenn Sie ein verwaltetes Volume löschen, werden die auf diesem Volume gespeicherten Dateien innerhalb von 30 Tagen aus unserem Cloud-Tenant gelöscht.

Was sind Externe Volumes?

Ein externes Volume wird an einem externen Speicherort im Unity-Katalog registriert und bietet Zugriff auf vorhandene Dateien im Cloud-Speicher, ohne dass eine Datenmigration erforderlich ist. Benutzer benötigen die Berechtigung CREATE EXTERNAL VOLUME für den externen Speicherort, um ein externes Volume zu erstellen.

Externe Volumes unterstützen Szenarien, in denen Dateien von anderen Systemen erstellt und für den Zugriff von Databricks über Objektspeicher bereitgestellt werden oder in denen Tools außerhalb von Databricks direkten Zugriff auf Dateien benötigen.

Was sind Audit-Protokolle?

Die Audit-Protokolle erfassen alle Ereignisse im Zusammenhang mit dem Unity-Katalog. Dazu gehört das Erstellen, Löschen und Ändern aller Komponenten des Metaspeichers und des Metaspeichers selbst. Diese Ereignisse umfassen auch Aktivitäten im Zusammenhang mit dem Speichern und Abrufen von Berechtigungsnachweisen, Zugriffskontrolllisten, Anfragen zur gemeinsamen Nutzung von Daten und so weiter.

Was sind verwaltete Tabellen?

Verwaltete Tabellen sind die Standardmethode zum Erstellen von Tabellen in Unity Catalog. Unity Catalog verwaltet den Lebenszyklus und das Datei-Layout für diese Tabellen. 

Standardmäßig werden verwaltete Tabellen in dem Root-Speicherort gespeichert, den wir beim Erstellen eines Metastores konfigurieren. Optional können wir Speicherorte für verwaltete Tabellen auf der Katalog- oder Schemaebene angeben und damit den Root-Speicherort außer Kraft setzen. Verwaltete Tabellen verwenden immer das Delta-Tabellenformat.

Wenn eine verwaltete Tabelle gelöscht wird, werden die zugrunde liegenden Daten innerhalb von 30 Tagen aus Ihrem Cloud-Tenant gelöscht.

Was sind externe Tabellen?

Externe Tabellen sind Tabellen, deren Datenlebenszyklus und Dateilayout nicht von Databricks Unity Catalog verwaltet werden. Wir verwenden externe Tabellen, um große Mengen vorhandener Daten in Unity Catalog zu registrieren oder wenn wir direkten Zugriff auf die Daten mit Tools außerhalb der Databricks-Cluster oder Databricks-SQL-Warehouses benötigen.

Wenn wir eine externe Tabelle löschen, löscht Unity Catalog nicht die zugrunde liegenden Daten. Wir können Privilegien für externe Tabellen verwalten und sie in Abfragen genauso verwenden wie verwaltete Tabellen.

Externe Tabellen können folgende Dateiformate verwenden:

  • DELTA
  • CSV
  • JSON
  • AVRO
  • PARQUET
  • ORC
  • TEXT

Durch diese Eigenschaften bringt der Unity Catalog viele Vorteile mit sich. Wir halten die Vorteile für Sie nochmals fest. 

Was sind die Vorteile von Databricks Unity Catalog?

Die im Unity Catalog eingebaute, eng integrierte Methode zur gemeinsamen Nutzung von Daten verringert den Aufwand und die Schwierigkeiten bei der Verwaltung von Datenberechtigungen in Ihrem Unternehmen. Sie basiert auf dem plattformunabhängigen, offenen Protokoll für die gemeinsame Nutzung von Daten, namens Delta Sharing. Ohne den Catalog würde der Zugriff auf die Daten über den Workspace erfolgen. Durch den Catalog wird ein Workspace-übergreifendes Arbeiten ermöglich. 

Zu den wichtigsten Vorteilen von Unity Catalog gehören:

VorteilDefinition
Einmal definieren, überall sichernUnity Catalog bietet einen zentralen Ort zur Verwaltung von Datenzugriffsrichtlinien, die für alle Arbeitsbereiche und Personas gelten.
Standardkonformes SicherheitsmodellDas Sicherheitsmodell von Unity Catalog basiert auf dem ANSI SQL-Standard und ermöglicht es Administratoren, Berechtigungen in ihrem bestehenden Data Lake mit einer vertrauten Syntax auf der Ebene von Katalogen, Datenbanken (auch Schemata genannt), Tabellen und Ansichten zu vergeben.
Integriertes AuditingUnity Catalog erfasst automatisch Audit-Protokolle auf Benutzerebene, die den Zugriff auf unsere Daten aufzeichnen
Die drei wichtigsten Vorteile des Unity Catalog von Databricks.

Wir haben die Vorteile des Unity Catalogs in einem separaten Blog-Beitrag zusammengefasst.

Fazit zum Databricks Unity Catalog

In diesem Artikel wurden die wichtigsten Funktionen, Anwendungsfälle und die technische Architektur des Unity Catalogs vorgestellt. Der Unity Catalog von Databricks stellt einen großen Mehrwert für das Databricks-Ökosystem dar und bereichert dieses in den Punkten Governance, Datenkatalogisierung und Discovery. 

Sie wollen mehr zum Thema Unity Catalog erfahren? Dann sind Sie bei uns als Databricks-Partner richtig. Kontaktieren Sie uns!

FAQ – Die wichtigsten Fragen schnell beantwortet

Was ist der Databricks Unity Catalog?

Der Unity Catalog bietet zentralisierte Zugriffskontrolle, Auditing, Lineage und Datenermittlungsfunktionen für alle Databricks-Arbeitsbereiche. Mit Unity Catalog können wir alle Benutzer über mehrere Arbeitsbereiche hinweg an einem zentralen Ort verwalten. Außerdem ist die Funktion zur Datenabfolge sofort einsatzbereit und hilft uns, die nachgelagerten Abhängigkeiten ohne manuellen Aufwand zu ermitteln.

Woraus besteht der Databricks Unity Catalog?

Ein Metaspeicher ist der oberste Container für Objekte im Unity Catalog. Er speichert Metadaten über Datenbestände (Tabellen und Ansichten) und die Berechtigungen, die den Zugriff auf sie regeln. Sie müssen für jede Region, in der Ihre Organisation tätig ist, einen Metastore erstellen.

Wie implementiere ich den Databricks Unity Catalog in mein Datensystem?

1.     Konfigurieren Sie einen S3-Bucket und eine IAM-Rolle, die Unity Catalog zum Speichern und Zugreifen auf Daten in Ihrem AWS-Konto verwenden kann.
2.     Erstellen Sie einen Metastore für jede Region, in der Ihre Organisation tätig ist.
3.     Hängen Sie Workspaces an den Metastore an. Jeder Workspace wird die gleiche Ansicht der Daten haben, die Sie in Unity Catalog verwalten.
4.     Wenn Sie ein neues Konto haben, fügen Sie Benutzer, Gruppen und Dienstprinzipale zu Ihrem Databricks-Konto hinzu.
5.     Als Nächstes erstellen Sie Kataloge, Schemata und Tabellen und gewähren ihnen Zugriff darauf.

Ihr Kontakt: Vinzent Wuttke

Unternehmen sitzen auf einem ungenutzten Berg von Kundendaten. Wir von datasolut entwickeln KI, die Ihr Marketing optimiert. Damit Sie dem richtigen Kunden zur richtigen Zeit das richtige Angebot machen können.

Auch interessant für Sie