{"id":43970,"date":"2023-07-10T12:51:55","date_gmt":"2023-07-10T10:51:55","guid":{"rendered":"https:\/\/www.inovex.de\/?p=43970"},"modified":"2023-08-04T15:38:14","modified_gmt":"2023-08-04T13:38:14","slug":"unity-catalog-migration-erfahrungen","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/","title":{"rendered":"Unity Catalog Migration: Trade-Offs, Erfahrungen &#038; Empfehlungen"},"content":{"rendered":"<p>Erstmalig vorgestellt im Mai <a href=\"https:\/\/www.databricks.com\/blog\/2021\/05\/26\/introducing-databricks-unity-catalog-fine-grained-governance-for-data-and-ai-on-the-lakehouse.html\">2021<\/a>, mit allgemeiner Verf\u00fcgbarkeit seit August 2022 und stetiger Weiterentwicklung ist der Unity Catalog nun ein zentraler Bestandteil in <a title=\"databricks\" href=\"https:\/\/www.inovex.de\/de\/ueber-uns\/technologie-partner\/databricks\/\">Databricks<\/a>. Dieser verspricht eine zentrale Governance von Datenobjekten wie Tabellen und Views, aber auch Machine-Learning Modellen, und bietet eine Suchfunktionalit\u00e4t und Lineage f\u00fcr Datenfl\u00fcsse. Vor allem die zentral verwaltete Zugriffskontrolle und das Teilen von Daten innerhalb, aber auch \u00fcber eine Organisation hinaus steht im Mittelpunkt. Auf technischer Ebene stehen die Abl\u00f6sung des Hive-Metastores sowie die Verlagerung von administrativen T\u00e4tigkeiten in die Databricks Account Konsole im Fokus.<!--more--><div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Initialer-Setup\" >Initialer Setup<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Signifikante-Unterschiede\" >Signifikante Unterschiede<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Gruppen-User-Administration\" >Gruppen &amp; User Administration<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Datenautorisierung\" >Datenautorisierung<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Lineage\" >Lineage<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Delta-Share\" >Delta Share<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Metadatenkatalog\" >Metadatenkatalog<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Weitere-Features\" >Weitere Features<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Limitierungen\" >Limitierungen<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Cluster\" >Cluster<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Weitere-Einschraenkungen\" >Weitere Einschr\u00e4nkungen<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Wann-umsteigen\" >Wann umsteigen<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Parallelbetrieb\" >Parallelbetrieb<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#Fazit\" >Fazit<\/a><\/li><\/ul><\/nav><\/div>\n<\/p>\n<p>Aufgrund der teilweise tiefgreifenden Ver\u00e4nderungen, neuer Features und Produkte stellt sich die Frage, welche Funktionalit\u00e4ten wegfallen, welche Features noch nicht in der \u201eneuen Welt\u201c vorhanden sind und welcher Aufwand hinter einer Migration steht. Besonders davon betroffen sind verteilte Setups mit mehreren Workspaces, wo es bislang aufwendig war eine \u00fcbergreifende Metadatenschicht und Berechtigungsmodell zu etablieren.<\/p>\n<p>Dieser Blogpost beleuchtet jene Fragen und gibt Empfehlungen f\u00fcr den Umstieg. Zun\u00e4chst beschrieben wir kurz, wie der Unity Catalog aktiviert wird, mit dem Fokus auf m\u00f6glichen Stolpersteinen. Danach gehen wir auf die wichtigsten Neuerungen im Vorher-\/Nachher Vergleich ein. Im zweiten Teil teilen wir Erfahrungen und Empfehlungen im Hinblick auf eine Migration zum Unity Catalog und zur Frage, in welchen F\u00e4llen von dessen Einsatz derzeit abzuraten ist bzw. mit welchen Einschr\u00e4nkungen (noch) zu rechnen ist.<\/p>\n<p>Der Fokus liegt dabei auf Problemen und Erfahrungen sowie Entscheidungs- und L\u00f6sungsszenarien, die bei der Umstellung auf Unity Catalog auftreten k\u00f6nnen, und nicht darauf, eine Anleitung zur konkreten Implementierung zu geben. Im Mittelpunkt steht die kritische Auseinandersetzung mit der Thematik und dem Ziel, eine Entscheidungsgrundlage zu schaffen, ob und in welcher Auspr\u00e4gung Unity Catalog eingesetzt werden soll. F\u00fcr die konkreten technischen Schritte sei auf die offizielle Dokumentation verwiesen.<\/p>\n<p>Alle beschriebenen Vorg\u00e4nge in diesem Blogpost basieren auf dem Verhalten von Databricks in der Microsoft Azure Cloud. Der Feature-Stand sowie die Konfiguration und verwendete Infrastruktur-Service-Komponenten k\u00f6nnen sich im Vergleich zu Databricks auf AWS und GCP unterscheiden. Unserer Erfahrung nach sind neue Features zuerst auf AWS verf\u00fcgbar und als letztes auf GCP. Die meisten der angesprochenen Limitierungen treffen auf alle Cloud-Umgebungen zu.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Initialer-Setup\"><\/span>Initialer Setup<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Der Ausgangspunkt der Unity-Catalog-Installation ist das Erstellen eines <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/create-metastore\">Metastores<\/a>, der den zentralen, logischen Container f\u00fcr alle <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/manage-privileges\/privileges#--securable-objects-in-unity-catalog\">Objekte<\/a> (Tabellen, Views, aber auch externe Storage Locations oder Data Shares) bildet und Berechtigungen auf diese steuert.<\/p>\n<p>Die Erstellung erfordert bereits bestimmte Voraussetzungen, die Implikationen mit sich bringen:<\/p>\n<p><strong>1. Azure Databricks mit Premium Plan<\/strong><\/p>\n<p><strong>2. Azure Databricks Account Admin Berechtigung<\/strong><\/p>\n<p>Initial ist ein Azure Active Directory Global Administrator entsprechend berechtigt und kann die <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/administration-guide\/account-settings\/\">Databricks Account Admin <\/a> Berechtigung vergeben. Der Zugriff liegt vor, wenn der Aufruf von <a href=\"https:\/\/accounts.azuredatabricks.net\">https:\/\/accounts.azuredatabricks.net<\/a> nicht eine \u00dcbersicht der Workspaces des angemeldeten Nutzers zeigt.<\/p>\n<p><u>Sicherheitsbedenken:<\/u><br \/>\nAls Databricks Account Admin ist es theoretisch m\u00f6glich, sich Zugang zu allen Databricks Workspaces eines Tenants zu verschaffen. Die Notwendigkeit der Rolle kann aber u.U. auf die Erstellung des Metastores zeitlich limitiert werden. Gruppenverwaltung innerhalb Databricks (externe Active Directory (AD) Gruppen k\u00f6nnen via SCIM synchronisiert werden) bleibt aber nur Accounts Admins vorbehalten.<\/p>\n<p><strong>3. Azure Data Lake Storage Gen2 (ADLS) Account mit aktiviertem hierarchischen Namespace<\/strong><\/p>\n<p>Dieser Storage ist der Ort f\u00fcr die Speicherung von Databricks <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/create-tables#--managed-tables\">Managed Tabellen<\/a>. Hier gilt es zu bedenken, dass jegliche erstellen Tabellen an diesem Ort gespeichert werden, egal in welchem Workspace sie angelegt werden. D.h. es k\u00f6nnen Sicherheitsbedenken bzgl. Datenzugriff auftreten und die Verantwortlichkeiten f\u00fcr diesen Storage m\u00fcssen klar geregelt sein. Je nach potenziellen Datenvolumen und Nutzervolumen k\u00f6nnen <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/storage\/common\/scalability-targets-standard-account\">Skalierungsgrenzen<\/a> erreicht werden.<\/p>\n<p><u>Empfehlung:<\/u><br \/>\nDie Verwendung von Managed Tabellen f\u00fcr produktive Daten sollte hinterfragt werden. Sie haben zwar den Vorteil des deutlich geringeren Verwaltungsaufwandes, sorgen aber auch f\u00fcr eine gewissen Lock-in auf Databricks. Die erstellten Dateien sind zwar weiterhin \u00fcber den hinterlegten Storage verf\u00fcgbar, aber die Pfade sind automatisch generiert und Tabellennamen werden durch UUIDS ersetzt. Ein praktikabler Zugriff ist nur noch \u00fcber den Unity Catalog m\u00f6glich.<\/p>\n<p>Im Fall des Verzichts auf Managed Tabellen stellen sich geringere Anforderungen an die Verwaltung des dem Metastore zugewiesenen Storage Accounts; er existiert dann, weil es fest Voraussetzung ist, wird jedoch nicht verwendet.<\/p>\n<p>Falls die Verwendung von Managed Tabellen gew\u00fcnscht ist, ist auf jeden Fall eine weitere Konfiguration des Ortes von managed Tabellen auf <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/create-catalogs#sql\">Catalog<\/a>&#8211; oder <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/create-schemas#sql\">Schema-<\/a>Ebene (es wird immer die Konfiguration der tiefsten Schicht verwendet) empfohlen. Voraussetzung daf\u00fcr ist die Einbindung der alternativen Storage Accounts als <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/manage-external-locations-and-credentials\">External Location<\/a>. Dies ist z.B. relevant f\u00fcr Szenarien, wo die Daten auf Storages einzelner Verwaltungsgruppen (bspw. Fachabteilungen) voneinander abgegrenzt werden m\u00fcssen.<\/p>\n<p><strong>4. Berechtigung zur Anlage von system-assigned Managed Identities<\/strong><\/p>\n<p>Konkret bedeutet dies die Anlage des Databricks <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/azure-managed-identities\">Access Connector<\/a>, welcher als managed identity agiert und wor\u00fcber die Berechtigungen auf Storage Ressourcen gesetzt werden.<\/p>\n<p><u>Empfehlung:<\/u><br \/>\nAnlage in selber Ressourcen-Gruppe\/Subscription wie Storage aus Punkt 3.<\/p>\n<p>All die genannten Objekte und Konfigurationen dieses und teilweise des n\u00e4chsten Abschnittes k\u00f6nnen auch mittels <a href=\"https:\/\/registry.terraform.io\/providers\/databricks\/databricks\/latest\/docs\/guides\/unity-catalog-azure\">Terraform<\/a> aufgesetzt und verwaltet werden.<\/p>\n<p>Ebenfalls existiert eine <a href=\"https:\/\/docs.databricks.com\/api\/workspace\/catalogs\">CRUD API<\/a> \u00fcber welche die verschiedenen Elemente des Unity Catalogs, u.a. Permissions und Delta Shares, verwaltet werden k\u00f6nnen. Ein vollst\u00e4ndige Evaluierung dieser steht aber noch aus.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Signifikante-Unterschiede\"><\/span>Signifikante Unterschiede<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Nach der initialen Einrichtung stehen neue Features zur Verf\u00fcgung, die wichtigsten stellen wir im Folgenden kurz vor und bewerten sie.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Gruppen-User-Administration\"><\/span>Gruppen &amp; User Administration<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Bisher: <\/strong><br \/>\nDie Verwaltung der Gruppen und User Accounts erfolgt pro Workspace. Es existiert eine Azure AD Enterprise Application f\u00fcr den Sync der Gruppen mit Azure AD, die auch pro Workspace einzurichten ist. Damit ist eine effiziente Verwaltung von mehreren Workspaces nur mit einer eigenen Automatisierungsl\u00f6sung m\u00f6glich.<\/p>\n<p><strong>Mit Unity Catalog:<\/strong><br \/>\nMit dem <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/administration-guide\/users-groups\/best-practices#--enable-identity-federation\">Identity Federation Feature<\/a> ist Unity Catalog in der Lage, die Definition der Gruppen zentral zu verwalten und an angeschlossene Workspaces zu verteilen. Die Einrichtung und Pflege einer Synchronisierung mit dem Azure AD ist damit nur einmalig notwendig.<\/p>\n<p><strong>Einschr\u00e4nkung:<\/strong><br \/>\nVerschachtelte Gruppen und Service Principals werden nicht synchronisiert. Verwendung von verschachtelten Gruppen erfordert eigene L\u00f6sungen \u00fcber Terraform oder Skripte und SCIM API, um die gew\u00fcnschte Struktur der Gruppen in der Admin Console abzubilden.<\/p>\n<p>Wenn ein Nutzer aus einer Gruppe entfernt wird und somit auch auch nicht mehr Teil der Synchronisierung ist, werden all seine pers\u00f6nlichen Ressourcen wie z.B. Notebooks aus den Workspaces entfernt.<\/p>\n<p><strong>Empfehlung:<\/strong><br \/>\nZur Zeit ist genau ein Unity Catalog Account pro Azure Tenant vorgesehen. Im Gegensatz zu vorher k\u00f6nnen damit verschiedene Unternehmenseinheiten nicht unabh\u00e4ngig voneinander Databricks nutzen. Die Verwaltung des Databricks Accounts muss damit von einem zentralen Team erfolgen. Dieses Team sorgt f\u00fcr zentrale Konfiguration der Metastores und die Verwaltung der physikalischen Zug\u00e4nge zum Azure Datalake Storage.<\/p>\n<p>Als allgemeine Autorisierungs Good Practice sollten Dateiberechtigungen stets an Gruppen gebunden sein, anstatt an einzelne User.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Datenautorisierung\"><\/span>Datenautorisierung<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Bisher:<\/strong><br \/>\nMit ADLS Passthrough und Table ACLs standen dem Administrator zwei unterschiedliche Autorisierungsm\u00f6glichkeiten zur Verf\u00fcgung. Das Table ACL Feature erm\u00f6glichte feingranulare Autorisierung auf Ebene der SQL Objekte, musste allerdings in jedem Workspace einzeln gepflegt werden. Die ADLS-Passthrough-Methode verlagerte Autorisierung auf dem Storage Layer und war somit zentral, allerdings lediglich grobgranular auf Ebene von Dateien.<\/p>\n<p><strong>Mit UC: <\/strong><br \/>\nUnity Catalog verwaltet Autorisierungen auf Daten (Tabellen, Views, Schemata, Catalogs) und weiteren Entit\u00e4ten wie Machine Learning Modellen oder externen Pfaden (sprich: externer Storage). Cluster und SQL Warehouses der angeschlossenen Workspaces erhalten die Autorisierung f\u00fcr den Zugriff auf die Storage Accounts durch den Unity Catalog.<\/p>\n<p><strong>Einschr\u00e4nkung:<\/strong><br \/>\nDas feingranulare Autorisierungsregelwerk verbleibt im Unity Catalog. Es existiert eine REST API, die eine Abfrage erm\u00f6glicht; es ist aber keine direkte Verwendung aus umliegenden Komponenten m\u00f6glich. Databricks-Partner wie <a href=\"https:\/\/www.youtube.com\/watch?v=NWS2TLvC-4A\">Immuta<\/a> erm\u00f6glichen externe Verwaltung der Berechtigungen.<\/p>\n<p><strong>Empfehlung:<\/strong><br \/>\nWie in der Zeit vor Unity Catalog empfehlen wir die Verwaltung von Berechtigungen mittels CI\/CD zu versionieren und zu automatisieren. Der von Databricks bereitgestellte Terraform Provider beinhaltet bereits alle notwendigen Ressourcen und wird kontinuierlich weiter ausgebaut.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Lineage\"><\/span>Lineage<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Bisher: <\/strong><br \/>\nNicht m\u00f6glich, nur \u00fcber externe Tools wie zum Beispiel <a href=\"https:\/\/datahubproject.io\">Datahub<\/a> oder <a href=\"https:\/\/www.amundsen.io\">Amundsen<\/a>.<\/p>\n<p><strong>Mit Unity Catalog:<\/strong><br \/>\n\u00dcbersichtliche Darstellung der kompletten Lineage \u00fcber alle Objekte, welche Databricks bekannt sind. Dies sind Tabellen und Notebooks, aber auch Workflows, Dashboards, Queries und Dateipfade. Es kann zwischen einer Up- und Downstream Ansicht unterschieden werden.<\/p>\n<p><strong>Einschr\u00e4nkung:<\/strong><br \/>\nF\u00fcr einen vollst\u00e4ndigen \u00dcberblick sei auf die offizielle <a href=\"https:\/\/docs.databricks.com\/data-governance\/unity-catalog\/data-lineage.html\">Dokumentation<\/a> verwiesen. Wie bereits erw\u00e4hnt, ist die Ansicht auf Objekte innerhalb von Databricks beschr\u00e4nkt, m\u00f6gliche vorangehende oder anschlie\u00dfende Schritte des Datenflusses k\u00f6nnen nicht dargestellt werden. Daf\u00fcr m\u00fcsste wiederum auf externe Tools zur\u00fcckgegriffen werden. Lineage-Informationen k\u00f6nnen mittels <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/data-lineage#data-lineage-api\">API<\/a> als JSON abgegriffen werden. Diese Information dann auch darzustellen bedarf weiterer Implementation.<\/p>\n<p>Da alle Objekte gescannt werden, kann es in Workspaces mit viel aktiver Entwicklung, sprich: Erstellung von Notebooks und Queries, zu Un\u00fcbersichtlichkeiten kommen.<\/p>\n<p><strong>Empfehlung:<\/strong><br \/>\nFunktionalit\u00e4t kommt on-top, es muss nichts extra eingerichtet werden. Falls ein bestehendes externes Tool vorliegt, ist zu \u00fcberpr\u00fcfen, ob dieses die neuen Informationen ebenfalls integrieren kann.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Delta-Share\"><\/span>Delta Share<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Bisher: <\/strong><br \/>\nDas Teilen von Daten, im Allgemeinen sind das in Databricks aufbereitete Tabellen oder Analyseergebnisse, mit anderen Services oder Konsumenten ist m\u00f6glich \u00fcber entsprechende Connectoren und Protokolle, wie z.B. ODBC. Dies setzt normalerweise einen Zugriff auf den Workspace \u00fcber ein pers\u00f6nliches Access Token voraus.<\/p>\n<p>Sollen Dateien direkt aus dem Storage geteilt werden, muss ein geeignetes Interface zum Zugriff auf ADLS entwickelt werden, die konsumierende Partei muss ADLS als Endpunkt unterst\u00fctzen.<br \/>\nBeim Teilen au\u00dferhalb der Organisation ergeben sich zus\u00e4tzliche Aufw\u00e4nde f\u00fcr die Sicherstellung der Autorisierung, die das Szenario sehr aufw\u00e4ndig zum Umsetzen machen.<\/p>\n<p><strong>Mit Unity Catalog:<\/strong><br \/>\nUnity Catalog bietet unter dem Namen <a href=\"https:\/\/docs.databricks.com\/data-sharing\/index.html\">Delta Sharing<\/a> zwei M\u00f6glichkeiten, um Daten au\u00dferhalb der zugeordneten Workspaces Nutzern zug\u00e4nglich zu machen.<\/p>\n<p>Mittels <a href=\"https:\/\/docs.databricks.com\/data-sharing\/share-data-databricks.html\">Databricks-to-Databricks Sharing<\/a> k\u00f6nnen Daten mit Usern anderer Databricks Workspaces mit aktivem Unity Catalog geteilt werden, dabei ist es egal, ob sich der User im selben Tenant befindet oder sogar derselben Cloud (gilt f\u00fcr AWS &amp; Azure).<\/p>\n<p>Mit <a href=\"https:\/\/docs.databricks.com\/data-sharing\/read-data-open.html\">Open Delta Sharing<\/a> kann der Zugriff auch beliebigen Nutzer:innen au\u00dferhalb des Databricks Universums gew\u00e4hrt werden, solange der Zugriff \u00fcber das Delta-Protokoll stattfindet. F\u00fcr Client-Anwendungen stehen <a href=\"https:\/\/delta.io\/integrations\">SDKs<\/a> f\u00fcr bekannte Technologien bereit, viele Anwendungen (z.B. <a href=\"https:\/\/learn.microsoft.com\/en-us\/power-query\/connectors\/delta-sharing\">PowerBI<\/a>) weisen aber bereits einen integrierten Connector auf.<\/p>\n<p>\u00dcber das Konzept von Data Shares kann genau festgelegt werden, welche Tabellen und Partitionen am Ende geteilt werden.<\/p>\n<p><strong>Einschr\u00e4nkung:<\/strong><br \/>\nDerzeit ist es nur m\u00f6glich, Delta-Tabellen zu teilen, keine Views oder andere Objekte wie Machine Learning Modelle. Durch die Einschr\u00e4nkung von Views ist es somit auch nicht m\u00f6glich, nur bestimmte Subsets (Row-Level-Security) auszuw\u00e4hlen, es muss eine extra Tabelle angelegt werden.<\/p>\n<p><strong>Empfehlung:<\/strong><br \/>\nIn den Szenarien, dass Daten mit externen Partnern oder getrennten Parteien innerhalb einer Organisation geteilt werden sollen, wird nun erstmals eine M\u00f6glichkeit geboten, dies direkt in Databricks abzubilden.<\/p>\n<p>Delta Sharing kann dazu verwendet werden, Daten zwischen zwei Regionen zu teilen (es ist nur ein Metastore pro Region erlaubt).<\/p>\n<p>Allgemein empfiehlt es sich, m\u00f6gliche anfallende Transfer-Kosten des Cloud Providers im Blick zu behalten.<\/p>\n<p>Seitens der Autoren hat noch keine tiefergehende technische Evaluation stattgefunden, es sei auf das <a href=\"https:\/\/github.com\/delta-io\/delta-sharing\">Open Source Projekt<\/a> als m\u00f6glicher weiterer Einstiegspunkt verwiesen.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Metadatenkatalog\"><\/span>Metadatenkatalog<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p><strong>Bisher:<\/strong><br \/>\nMit den SQL Warehouses bot Databricks bereits ein elegantes User Interface, um Metadaten einzusehen. Zum einen erforderte dieses Feature laufendes Compute und verursachte damit Kosten und zum anderen war keine Suche eingebaut.<\/p>\n<p><strong>Mit UC:<\/strong><br \/>\nDie Metadaten werden nun von der Databricks Control Plane (von Databricks bereitgestellte und gemanagte Ressourcen f\u00fcrs Bereitstellen des Dienstes) bereitgestellt und k\u00f6nnen betrachtet werden, ohne dass ein Cluster oder SQL Warehouse im eigenen Workspace l\u00e4uft.<\/p>\n<p>Weiterhin steht mit <em>information_schema<\/em> ein dediziertes Schema zur Verf\u00fcgung, um Metadaten per SQL direkt zug\u00e4nglich zu machen. Dieses Feature hat sich in relationalen Datenbanken bew\u00e4hrt und vereinfacht nun das Management von Data Lakes.<\/p>\n<p>Die bereits bekannte Suchfunktion erfasst mit dem Unity Catalog auch Metadaten wie Kommentare und durchsucht Tabellen und Spaltendefinitionen. Die Suche ber\u00fccksichtigt die Autorisierung des Users.<\/p>\n<p><strong>Einschr\u00e4nkung:<\/strong><br \/>\nAktuell ist die Pflege der Metadaten auf die aus Hive bekannten Kommentare auf Schema-, Tabellen- und Spaltenebene begrenzt.<\/p>\n<p>Es wird <a href=\"https:\/\/www.databricks.com\/blog\/whats-new-unity-catalog-data-and-ai-summit-2023\">in Zukunft<\/a> eine Unterst\u00fctzung weiterer Elemente wie Modele (Model Registry &amp; Feature Store) sowie von Dateisystemen geben. Auch eine Erweiterung von Tagging- und Dokumentationsm\u00f6glichkeiten ist vorgesehen.<\/p>\n<p><strong>Empfehlung:<\/strong><br \/>\nFalls unternehmensweit noch kein Datenkatalog vorhanden ist, kann man auf Unity Catalog zur\u00fcckgreifen, um grundlegende Funktionalit\u00e4ten zur Verf\u00fcgung zu stellen.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Weitere-Features\"><\/span>Weitere Features<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Neben den oben beschriebenen Verbesserungen stellt Unity Catalog eine Voraussetzung f\u00fcr weitere Features der Plattform dar, wie beispielsweise:<\/p>\n<ul>\n<li>serverless SQL warehouses<\/li>\n<li>ACLs f\u00fcr Machine Learning Modelle<\/li>\n<li>deskriptive Constraints bei Delta-Tabellen wie <em>primary key<\/em> und <em>foreign key<\/em><\/li>\n<li><a href=\"https:\/\/learn.microsoft.com\/en-gb\/azure\/databricks\/workflows\/jobs\/file-arrival-triggers\">Job Scheduling<\/a> Features f\u00fcr Delta-Tabellen<\/li>\n<li>Row-Level Security Erweiterung in native SQL<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Limitierungen\"><\/span>Limitierungen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Databricks selbst gibt eine lange Liste an <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/#limitations\">aktuellen Limitierungen<\/a> an. Es ist davon auszugehen, dass viele der Punkte durch kommende Releases wegfallen. Einige der Limitierungen k\u00f6nnen den Umstieg derzeit schwierig gestalten, f\u00fcr andere kann es je nach Use Case Workarounds geben. Am Ende k\u00f6nnen nat\u00fcrlich trotzdem die positiven Neuerungen das ausschlaggebende sein, um einen Umstieg in Angriff zu nehmen.<\/p>\n<p>An dieser Stelle sollen die Limitierungen einerseits nochmal konsolidiert dargestellt, aber auch bewertet bzw. Empfehlungen zur Verwendung gegeben werden.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Cluster\"><\/span>Cluster<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Ein gro\u00dfer Teil von Limitierungen offenbart sich bei den M\u00f6glichkeiten der Verwendung von <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/compute\">Clustern<\/a>. Es ist wichtig zu betonen, dass <strong>SQL Warehouses<\/strong> nicht betroffen sind. Diese weisen grunds\u00e4tzlich keine Einschr\u00e4nkungen mit Unity Catalog auf, sie sind lediglich durch ihr konkretes Einsatzgebiet, vergleichbar mit einem klassischen SQL Data Warehouse, beschr\u00e4nkt.<\/p>\n<p>Wir empfehlen f\u00fcr Unity Catalog nur Cluster mit Databricks Runtime 11.3 LTS oder neuer zu verwenden, ansonsten k\u00f6nnen weitere Einschr\u00e4nkungen auftreten. Mit Version 13.1 und 13.2 fallen weiter Einschr\u00e4nkungen weg.<\/p>\n<table>\n<thead>\n<tr>\n<th><\/th>\n<th style=\"border-right: 2px dashed;\" colspan=\"2\">Mit Unity Catalog<\/th>\n<th colspan=\"2\">Ohne Unity Catalog<\/th>\n<\/tr>\n<tr style=\"border-bottom: 2px solid;\">\n<td style=\"font-weight: bold; text-transform: none;\">Cluster Typ (Access mode):<\/td>\n<td style=\"font-weight: bold; text-transform: none;\">Single User<\/td>\n<td style=\"border-right: 2px dashed; font-weight: bold; text-transform: none;\">Shared<\/td>\n<td style=\"font-weight: bold; text-transform: none;\">Shared mit Table ACL<\/td>\n<td style=\"font-weight: bold; text-transform: none;\">Shared mit ADLS passthrough<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Python<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>SQL<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>Scala<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u274c<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td>R<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u274c<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td>Python UDF<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f (&gt;13.2)<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>SQL object authorization<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td>init-scripts<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>third-party libraries<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f (&gt;13.1)<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>JARS<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>Spark-submit jobs<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>Credential passthrough<\/td>\n<td>\u274c<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u274c<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>Databricks Runtime ML<\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u274c<\/td>\n<td>\u274c<\/td>\n<td>\u2714\ufe0f<\/td>\n<\/tr>\n<tr>\n<td>Dynamic Views<\/td>\n<td>\u274c<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<tr>\n<td><a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/#--structured-streaming-support\">Streaming<\/a><\/td>\n<td>\u2714\ufe0f<\/td>\n<td style=\"border-right: 2px dashed;\">\u2714\ufe0f (12.2 LTS)<\/td>\n<td>\u2714\ufe0f<\/td>\n<td>\u274c<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Es zeigt sich, dass v.a. <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/compute#--shared-access-mode-limitations\">Shared Workloads<\/a> betroffen sind. Andererseits ist es durch Unity Catalog auch erstmals m\u00f6glich, Zugriffskontrolle bei Machine Learning Workloads sicherzustellen.<\/p>\n<p>F\u00fcr Shared-Workload-Szenarien ergeben sich folgende \u00dcberlegungen:<\/p>\n<ul>\n<li>Wenn ausschlie\u00dflich SQL verwendet wird, wie es es bei den meisten traditionellen BI-Analyse Szenarien der Fall ist, k\u00f6nnen SQL Warehouses den Use-Case bereits vollst\u00e4ndig abdecken<\/li>\n<li>Job-Cluster-Funktionalit\u00e4t bleibt unver\u00e4ndert<\/li>\n<li>Wenn shared Cluster haupts\u00e4chlich zum Lesen von Daten verwendet werden und z.B. nicht zur Entwicklung mit Libraries, kommt man kaum mit den Limitierungen in Kontakt<\/li>\n<li>F\u00fcr Softwareentwicklung werden dedizierte Cluster f\u00fcr Entwickler notwendig, was u.U. erh\u00f6hten Kosten- und Administrationsaufwand bedeutet<\/li>\n<li>Der Fokus von Databricks liegt darauf Einschr\u00e4nkungen in Verbindung mit Python zu beseitigen, wie es bereits bei einigen der Fall ist wenn die neueste Databricks Runtime benutzt wird<\/li>\n<\/ul>\n<p>Insgesamt wird man aber die gemeinsame Arbeit auf einem Cluster fr\u00fcher oder sp\u00e4ter in bestimmten Aspekten als eingeschr\u00e4nkt wahrnehmen.<\/p>\n<p>Da Dynamic Views verwendet werden um Data Masking und Row Level Security <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/create-views#--create-a-dynamic-view\" rel=\"\">abzubilden<\/a>, die nur auf Shared Clustern verf\u00fcgbar sind, k\u00f6nnen Nutzer:innen auf Single User Clustern in ihrer Sicht auf die Inhalte einer Tabelle nicht beschr\u00e4nkt werden. Es ist eine verbesserte M\u00f6glichkeit um Row &amp; Column Level Security umzusetzen <a href=\"https:\/\/www.databricks.com\/blog\/whats-new-unity-catalog-data-and-ai-summit-2023\">angek\u00fcndigt<\/a>.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Weitere-Einschraenkungen\"><\/span>Weitere Einschr\u00e4nkungen<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Relevante Einschr\u00e4nkungen liegen noch bei der Partitionierung vor, wenn es sich nicht um Delta-Tabellen (z.B. auf JSON oder CSV Dateien basierend) handelt. Ein \u00dcberschreiben der Daten im Filesystem (Dataframe overwrite) ist nicht m\u00f6glich. Auch k\u00f6nnen nur Tabellen ausgelesen werden, die einer \u201edirectory-style\u201c Partitionierung folgen, nicht aber benutzerdefinierter Partitionierungsschemata.<\/p>\n<p>Zur Vollst\u00e4ndigkeit sind hier noch kurz weitere Einschr\u00e4nkungen genannt, die aber nur spezifische Anwendung finden:<\/p>\n<ul>\n<li>keine <a href=\"https:\/\/docs.databricks.com\/optimizations\/clone.html\">shallow clones<\/a> als Quelle oder Ziel im Unity Catalog (ab Version 13.1 nur f\u00fcr Managed Tabellen)<\/li>\n<li>kein Support von <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/kb\/data\/bucketing\">Bucketing<\/a> bei Abfragen aus Unity Catalog Tabellen<\/li>\n<li>kein Support von standard Scala thread pools bei Abfragen<\/li>\n<li>Einsatz der neuen <a href=\"https:\/\/docs.databricks.com\/query-federation\/index.html\">Query Federation<\/a> Features, angek\u00fcndigt f\u00fcr <a href=\"https:\/\/www.databricks.com\/blog\/introducing-lakehouse-federation-capabilities-unity-catalog\">Public Preview<\/a> in Juli 2023<\/li>\n<\/ul>\n<p>F\u00fcr Einschr\u00e4nkungen bei Streaming sei auf die <a href=\"https:\/\/learn.microsoft.com\/en-us\/azure\/databricks\/data-governance\/unity-catalog\/#limitations\">offizielle Dokumentation<\/a> verwiesen.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Wann-umsteigen\"><\/span>Wann umsteigen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Bei einer Neueinf\u00fchrung von Databricks liegt es nahe, sich von Anfang an am Unity Catalog auszurichten. In Anbetracht der aufgef\u00fchrten Einschr\u00e4nkungen ist der Umstieg m\u00f6glich bzw. sollte er aufgrund der Verf\u00fcgbarkeit von neuen Features in Betracht gezogen werden, wenn folgende Punkte in einem bestehen Databricks Setup zutreffen:<\/p>\n<ul>\n<li>Daten\/Tabellen liegen im Delta-Format vor<\/li>\n<li>Verwendung von SQL und Python<\/li>\n<li>Organisatorische H\u00fcrden f\u00fcr Account Console Administration inkl. Gruppenverwaltung k\u00f6nnen ausgeschlossen werden, z.B. ein Team kann die Administration f\u00fcr den Tenant \u00fcbernehmen<\/li>\n<li>Workspaces liegen in einer Region (f\u00fcr Sharing zwischen Regionen ist Delta Sharing m\u00f6glich)<\/li>\n<li>Langfristiges Commitment auf Unity Catalog ist geplant und Akzeptanz von Parallelbetrieb mit lokalen Hive-Metastore ist vertretbar<\/li>\n<li>Vorrangiges Ziel ist die Zugriffssteuerung und das Teilen von aufbereiteten Tabellen, die sich eher am Ende einer Datenpipeline befinden.<\/li>\n<li>Databricks als prim\u00e4re Engine und Plattform<\/li>\n<\/ul>\n<p>Wenn einer der folgenden Punkte zutrifft ist ein Umstieg und notwendige Migrationen genauer zu pr\u00fcfen:<\/p>\n<ul>\n<li>Scala- &amp; Java-Projekte<\/li>\n<li>Streaming-Projekte<\/li>\n<li>Machine-Learning-Projekte<\/li>\n<li>Intensive Verwendung von 3rd Party Libraries und init-Skripten<\/li>\n<li>Arbeitsweise sieht zeitgleiche Zusammenarbeit auf einem Cluster vor<\/li>\n<li>Lakehouse-Architektur, die auch Nutzung durch andere Azure Tools (AzureML, Azure Functions) auf dem Data Lake und ein weiteres Zugriffskonzept der Verwaltung au\u00dferhalb von Databricks vorsieht. Definierte Autorisierungen sind zwar \u00fcber eine API verf\u00fcgbar aber nicht ohne weiteres mit anderen Tools nutzbar. In Zukunft kann dieser Punkt durch die k\u00fcrzlich angek\u00fcndigte <a href=\"https:\/\/www.databricks.com\/blog\/extending-databricks-unity-catalog-open-apache-hive-metastore-api\">Open Apache Hive Metastore<\/a> API g\u00e4nzlich wegfallen. Diese soll eine Schnittstelle zu anderen Platformen, wie Apache Spark, Presto, Trino etc. bereitstellen und eine einheitliche Gouvernance \u00fcber jene gew\u00e4hrleisten, befindet sich derzeit aber noch in Private Preview.<\/li>\n<\/ul>\n<h3><span class=\"ez-toc-section\" id=\"Parallelbetrieb\"><\/span>Parallelbetrieb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Grunds\u00e4tzlich bietet sich ein Parallelbetrieb an, um neue Features zu evaluieren, n\u00f6tige Umstellungen festzustellen und H\u00fcrden zu identifizieren. Dabei gibt es zwei M\u00f6glichkeiten:<\/p>\n<p><strong>1. Parallelbetrieb in neuem Workspace<\/strong><\/p>\n<ul>\n<li>keine Einschr\u00e4nkungen f\u00fcr bestehendes Setup<\/li>\n<li>Verzicht auf Upgrade-M\u00f6glichkeiten (z.B. Umwandlung von Hive-Tabellen)<\/li>\n<li>zus\u00e4tzlicher infrastruktureller Aufwand<\/li>\n<\/ul>\n<p><strong>2. Parallelbetrieb in existierendem Workspace<\/strong><\/p>\n<ul>\n<li>Unity Catalog Rollout grunds\u00e4tzlich on top m\u00f6glich<\/li>\n<li>Hive-Metastore bleibt zug\u00e4nglich<\/li>\n<li>Wichtige Einschr\u00e4nkung: Benutzerverwaltung nur noch \u00fcber UC &amp; Account Console m\u00f6glich. Bestehende Workspace Gruppen &amp; ACLs bleiben zwar erhalten, aber es k\u00f6nnen keine Neuen angelegt werden.<\/li>\n<li>Unity Catalog pr\u00fcft Verwendung externer Pfade und unterbindet das Anlegen von mehreren externen Tabellen, die den selben Pfad referenzieren<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Fazit\"><\/span>Fazit<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Mit Unity Catalog macht Databricks einen gro\u00dfen Schritt hin zur zentralen Verwaltung der Metadaten und Autorisierungen, die vor allem im Enterprise-Umfeld eine Voraussetzung darstellt, konsolidierte Unternehmensdaten f\u00fcr unterschiedliche Use Cases zug\u00e4nglich zu machen. Aufgrund der Komplexit\u00e4t und Vielzahl der abgedeckten Aspekte kommt der Unity Catalog mit einigen Einschr\u00e4nkungen, sodass eine Einf\u00fchrung derzeit genau evaluiert werden sollte. Die aktuell \u00f6ffentlich angek\u00fcndigten Features von Databricks machen die Einf\u00fchrung des Unity Catalogs langfristig unumg\u00e4nglich, wenn Databricks als Core-Komponente zum Einsatz kommt.<\/p>\n<p>In diesem Artikel haben wir den aktuellen Stand zum Unity Catalog zusammengefasst und blicken gespannt in die Zukunft, ob <a title=\"databricks\" href=\"https:\/\/www.inovex.de\/de\/ueber-uns\/technologie-partner\/databricks\/\">Databricks<\/a> als Datenplattform so offen bleiben wird wie bisher oder den Weg in Richtung der geschlossenen Plattformen wie <a href=\"https:\/\/www.inovex.de\/de\/ueber-uns\/technologie-partner\/snowflake\/\">Snowflake<\/a> einschl\u00e4gt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Erstmalig vorgestellt im Mai 2021, mit allgemeiner Verf\u00fcgbarkeit seit August 2022 und stetiger Weiterentwicklung ist der Unity Catalog nun ein zentraler Bestandteil in Databricks. Dieser verspricht eine zentrale Governance von Datenobjekten wie Tabellen und Views, aber auch Machine-Learning Modellen, und bietet eine Suchfunktionalit\u00e4t und Lineage f\u00fcr Datenfl\u00fcsse. Vor allem die zentral verwaltete Zugriffskontrolle und das [&hellip;]<\/p>\n","protected":false},"author":343,"featured_media":46616,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[513,71,385,784],"service":[411],"coauthors":[{"id":343,"display_name":"Sebastian R\u00fchl","user_nicename":"sruehl"},{"id":344,"display_name":"Rostislaw Krassow","user_nicename":"rkrassow"}],"class_list":["post-43970","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-azure-2","tag-cloud","tag-data-engineering","tag-databricks","service-data-engineering"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Unity Catalog Migration: Trade-Offs, Erfahrungen &amp; Empfehlungen<\/title>\n<meta name=\"description\" content=\"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Unity Catalog Migration: Trade-Offs, Erfahrungen &amp; Empfehlungen\" \/>\n<meta property=\"og:description\" content=\"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2023-07-10T10:51:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-08-04T13:38:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Sebastian R\u00fchl, Rostislaw Krassow\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Sebastian R\u00fchl\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"16\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Sebastian R\u00fchl, Rostislaw Krassow\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/\"},\"author\":{\"name\":\"Sebastian R\u00fchl\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/24431c80994b7cd48130399e1857cff7\"},\"headline\":\"Unity Catalog Migration: Trade-Offs, Erfahrungen &#038; Empfehlungen\",\"datePublished\":\"2023-07-10T10:51:55+00:00\",\"dateModified\":\"2023-08-04T13:38:14+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/\"},\"wordCount\":3209,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/databricks-unity-catalog.png\",\"keywords\":[\"Azure\",\"Cloud\",\"Data Engineering\",\"Databricks\"],\"articleSection\":[\"Analytics\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/\",\"name\":\"Unity Catalog Migration: Trade-Offs, Erfahrungen & Empfehlungen\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/databricks-unity-catalog.png\",\"datePublished\":\"2023-07-10T10:51:55+00:00\",\"dateModified\":\"2023-08-04T13:38:14+00:00\",\"description\":\"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/databricks-unity-catalog.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/databricks-unity-catalog.png\",\"width\":1920,\"height\":1080,\"caption\":\"Ein Katalog mit einer Tabelle und dem Logo von Unity Catalog\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/unity-catalog-migration-erfahrungen\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Unity Catalog Migration: Trade-Offs, Erfahrungen &#038; Empfehlungen\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/24431c80994b7cd48130399e1857cff7\",\"name\":\"Sebastian R\u00fchl\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=gfc90fca54e8ad3a0d729bc8383830f7f\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=g\",\"caption\":\"Sebastian R\u00fchl\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/sruehl\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Unity Catalog Migration: Trade-Offs, Erfahrungen & Empfehlungen","description":"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/","og_locale":"de_DE","og_type":"article","og_title":"Unity Catalog Migration: Trade-Offs, Erfahrungen & Empfehlungen","og_description":"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.","og_url":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2023-07-10T10:51:55+00:00","article_modified_time":"2023-08-04T13:38:14+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png","type":"image\/png"}],"author":"Sebastian R\u00fchl, Rostislaw Krassow","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Sebastian R\u00fchl","Gesch\u00e4tzte Lesezeit":"16\u00a0Minuten","Written by":"Sebastian R\u00fchl, Rostislaw Krassow"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/"},"author":{"name":"Sebastian R\u00fchl","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/24431c80994b7cd48130399e1857cff7"},"headline":"Unity Catalog Migration: Trade-Offs, Erfahrungen &#038; Empfehlungen","datePublished":"2023-07-10T10:51:55+00:00","dateModified":"2023-08-04T13:38:14+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/"},"wordCount":3209,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png","keywords":["Azure","Cloud","Data Engineering","Databricks"],"articleSection":["Analytics"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/","url":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/","name":"Unity Catalog Migration: Trade-Offs, Erfahrungen & Empfehlungen","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png","datePublished":"2023-07-10T10:51:55+00:00","dateModified":"2023-08-04T13:38:14+00:00","description":"Wir beleuchten die Herausforderungen bei Konsolidierung von Metadatenmanagement und Autorisierungen im Lakehouse durch Databricks Unity Catalog.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/databricks-unity-catalog.png","width":1920,"height":1080,"caption":"Ein Katalog mit einer Tabelle und dem Logo von Unity Catalog"},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/unity-catalog-migration-erfahrungen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"Unity Catalog Migration: Trade-Offs, Erfahrungen &#038; Empfehlungen"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/24431c80994b7cd48130399e1857cff7","name":"Sebastian R\u00fchl","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=gfc90fca54e8ad3a0d729bc8383830f7f","url":"https:\/\/secure.gravatar.com\/avatar\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5611c6bbcca11c2da51b5ba33d12fb4048062dfa54335e979ca2582250911b9e?s=96&d=retro&r=g","caption":"Sebastian R\u00fchl"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/sruehl\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/43970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/343"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=43970"}],"version-history":[{"count":6,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/43970\/revisions"}],"predecessor-version":[{"id":47688,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/43970\/revisions\/47688"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/46616"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=43970"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=43970"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=43970"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=43970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}