Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Auf dieser Seite finden Sie eine Übersicht über das Upgrade eines Nicht-Unity-Katalogarbeitsbereichs auf den Unity-Katalog. Außerdem erhalten Sie Anweisungen zum Migrieren vom veralteten Hive-Metastore, von DBFS und von nicht unterstützten Databricks-Runtime-Versionen.
Übersicht über Upgradeschritte
Um auf den Unity-Katalog zu aktualisieren, müssen Sie:
- Stellen Sie Identitäten (Benutzer, Gruppen und Dienstprinzipale) direkt in Ihrem Azure Databricks-Konto bereit, wenn Sie dies noch nicht tun. Deaktivieren Sie die Identitätsbereitstellung auf Arbeitsbereichsebene.
- Konvertieren Sie alle arbeitsbereichslokalen Gruppen in Gruppen auf Kontoebene. Unity Catalog zentralisiert die Identitätsverwaltung auf Kontoebene.
- Fügen Sie den Arbeitsbereich an einen Unity-Katalogmetaspeicher an. Wenn kein Metastore für Ihre Arbeitsbereichsregion vorhanden ist, muss ein Kontoadministrator einen erstellen.
- Aktualisieren Von Tabellen und Ansichten, die im Hive-Metastore verwaltet werden, auf den Unity-Katalog.
- Gewähren Sie Benutzern, Gruppen oder Dienstprinzipalen Zugriff auf die aktualisierten Tabellen auf Kontoebene.
- Aktualisieren von Abfragen und Aufträgen, sodass sie nicht mehr auf die alten Hive-Metastore-Tabellen verweisen, sondern auf Unity Catalog-Tabellen.
- Migrieren Sie Dateien, Notizbücher und Skripts aus DBFS.
- Aktualisieren Sie aktive Computeressourcen auf unterstützte Databricks-Runtime-Versionen.
- Deaktivieren Sie den Zugriff auf legacy-Features in Ihren Arbeitsbereichen. Weitere Informationen finden Sie unter "Deaktivieren des Zugriffs auf ältere Features in Ihren Arbeitsbereichen".
UCX (ein Databricks Labs-Projekt) bietet Tools, mit denen Sie Ihren Unity Catalog-fremden Arbeitsbereich auf Unity Catalog upgraden können. UCX ist eine gute Wahl für größere Migrationen. Siehe Verwenden der UCX-Hilfsprogramme zum Upgrade Ihres Arbeitsbereichs auf Unity Catalog.
Vorbemerkungen
Bevor Sie beginnen, sollten Sie sich mit den grundlegenden Unity-Catalog-Konzepten, einschließlich Metastores und verwaltetem Speicher, vertraut machen. Siehe Was ist Unity Catalog?.
Sie sollten auch bestätigen, dass Sie die folgenden Anforderungen erfüllen:
Für die meisten Setupschritte müssen Sie ein Azure Databricks-Kontoadministrator sein. Für alle aufgabenspezifischen Aufgaben, für die weitere Berechtigungsanforderungen gelten, werden sie in der aufgabenspezifischen Dokumentation aufgeführt.
Der erste Azure Databricks-Kontoadministrator muss ein globaler Microsoft Entra ID-Administrator sein, wenn er sich zum ersten Mal bei der Azure Databricks-Kontokonsole anmeldet. Bei der ersten Anmeldung wird dieser Benutzer zu einem Azure Databricks-Kontoadministrator und benötigt nicht mehr die Rolle „Globaler Microsoft Entra ID-Administrator“, um auf das Azure Databricks-Konto zuzugreifen. Der erste Kontoadministrator kann Benutzer im Microsoft Entra ID-Mandanten als zusätzliche Kontoadministratoren zuweisen (die ihrerseits weitere Kontoadministratoren zuweisen können). Für zusätzliche Kontoadministratoren sind keine speziellen Rollen in Microsoft Entra ID erforderlich.
Die Arbeitsbereiche, die Sie dem Metastore anfügen, müssen sich im Azure Databricks Premium-Tarif befinden.
Upgrade auf Unity-Katalog-Demos
Sehen Sie sich die folgenden kurzen geführten Demos an, um wichtige Upgradeaufgaben in Aktion zu sehen. Jede Demo befasst sich mit einem bestimmten Schritt und Links zu detaillierten Dokumentationen, sofern zutreffend.
- Konvertiere arbeitsbereich-lokale Gruppen in Kontoebene-Gruppen
- Aktualisieren von Tabellen in Ihrem Hive-Metaspeicher auf Unity-Katalogtabellen
- Aktualisierung der Rechenressourcen für Unity Catalog
- Aktualisieren Sie Abfragen und Aufträge, um mit Ihren aktualisierten Tabellen zu arbeiten
Alternativ können Sie der Demo "UCX verwenden" folgen, um auf den Unity-Katalog zu aktualisieren.
Bereitstellung von Benutzern, Gruppen und Dienstprinzipalen für Ihr Konto
Unity Catalog verweist auf Identitäten auf Kontoebene. Bevor Sie einen Metaspeicher an Ihren Arbeitsbereich anfügen, sollten Sie die folgenden Schritte ausführen:
Wenn Sie SCIM verwenden, um Benutzer, Gruppen und Dienstprinzipale von Ihrem IdP in Ihren Arbeitsbereich bereitzustellen, deaktivieren Sie es, und richten Sie stattdessen die Bereitstellung für Ihr Azure Databricks-Konto ein. Siehe „Synchronisieren Sie Identitäten Ihres Identitätsanbieters“ und „Identitäten“.
Aktualisieren Sie alle Automatisierungen, die zur Verwaltung von Benutzern, Gruppen und Dienstprinzipalen konfiguriert wurden (z. B. SCIM-Bereitstellungs-Connectors und Terraform-Automatisierungen), damit sie auf Account-Endpunkte anstelle von Workspace-Endpunkten verweisen. Siehe SCIM-Bereitstellung auf Konto- und Arbeitsbereichsebene.
Arbeitsbereich-lokale Gruppen in Gruppen auf Kontoebene umwandeln
Siehe Migrieren arbeitsbereichslokaler Gruppen zu Kontogruppen.
Verbinden Ihres Arbeitsbereichs mit einem Metastore
Wenn Ihr Arbeitsbereich nicht für Unity Catalog aktiviert (an einen Metastore angefügt) ist, hängt der nächste Schritt davon ab, ob Sie bereits einen Unity-Catalog-Metastore für Ihre Arbeitsbereichsregion definiert haben:
- Wenn Ihr Konto bereits einen Unity-Catalog-Metastore für Ihre Arbeitsbereichsregion definiert hat, können Sie Ihren Arbeitsbereich einfach an den vorhandenen Metastore anfügen. Wechseln Sie zu "Arbeitsbereich aktivieren" für den Unity-Katalog.
- Wenn kein Unity-Katalogmetastore für die Region Ihres Arbeitsbereichs definiert ist, müssen Sie einen Metaspeicher erstellen und dann den Arbeitsbereich anfügen. Gehen Sie zu Erstellen eines Unity Catalog-Metaspeichers.
Aktualisieren Sie Tabellen in Ihrem Hive-Metastore zu Unity Catalog Tabellen
Wenn Sich Ihr Arbeitsbereich vor der Aktivierung für den Unity-Katalog in Dienst befand, verfügt er über einen Hive-Metaspeicher, der wahrscheinlich Daten enthält, die Sie weiterhin verwenden möchten. Databricks empfiehlt, die vom Hive-Metastore verwalteten Tabellen auf den Unity-Katalog-Metastore zu aktualisieren.
Option 1: Föderieren und anschließend externe Tabellen aktualisieren
Der empfohlene Ansatz besteht darin, zuerst den Hive-Metastore als externen Katalog zu verbinden und dann die fremden Tabellen vor Ort zu aktualisieren. Mit diesem zweistufigen Prozess können Sie Tabellen ohne Datenverschiebung migrieren und gleichzeitig den Tabellenverlauf, die Konfiguration, Berechtigungen und Ansichten beibehalten.
Verbinden Sie zuerst Ihren Hive-Metaspeicher als externer Katalog im Unity-Katalog. Auf diese Weise können Sie über den Unity-Katalog auf Ihre vorhandenen Tabellen zugreifen und sie für das Upgrade vorbereiten.
Anweisungen zum Verbund Ihres Hive-Metastores finden Sie unter Hive-Metastore-Partnerverbund: Aktivieren Sie Unity-Katalog zum Steuern von Tabellen, die in einem Hive-Metaspeicher registriert sind.
Hinweis
Wenn Sie sich dafür entscheiden, ihre Tabellen nicht zu aktualisieren und die Arbeit mit dem Verbundkatalog dauerhaft fortzusetzen, können Sie dies tun. Databricks empfiehlt jedoch, das Upgrade abzuschließen, um die Features des Unity-Katalogs vollständig nutzen zu können.
Nachdem Sie den Hive-Metaspeicher verbunden haben, können Sie die Fremdtabellen ohne Datenverschiebung auf Unity-Katalogtabellen aktualisieren. Dieser Workflow aktualisiert Tabellen an Ort und Stelle, wobei Tabellenverlauf, Konfiguration, Berechtigungen und Ansichten beibehalten werden.
Führen Sie den folgenden Befehl aus, um eine Fremdtabelle auf eine verwaltete Unity-Katalogtabelle zu aktualisieren:
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET MANAGED;
Databricks empfiehlt ein Upgrade auf eine verwaltete Tabelle, um die Optimierung des Unity-Katalogs freizuschalten, die automatische Wartung (Komprimierung, Clustering, Bereinigung) und Leistungsverbesserungen umfasst. Führen Sie den folgenden Befehl aus, um stattdessen eine Fremdtabelle auf eine externe Tabelle im Unity-Katalog zu aktualisieren:
ALTER TABLE <foreign_catalog>.<schema>.<table_name> SET EXTERNAL;
Nachdem Ihre Tabellen migriert wurden und Sie nicht mehr auf die Verknüpfung zu Ihrem externen Katalog angewiesen sind, können Sie die Verbindung entfernen.
ALTER CATALOG <foreign_catalog> DROP CONNECTION;
Weitere Informationen zu diesem Workflow finden Sie unter Konvertieren einer Fremdtabelle in eine verwaltete Unity-Katalogtabelle.
Option 2: Direktes Upgrade von Tabellen
Wenn Sie den föderationsbasierten Upgradeworkflow nicht verwenden möchten, können Sie Tabellen direkt mithilfe von SYNC oder CREATE TABLE AS SELECT. Weitere Informationen finden Sie unter Upgrade von Hive-Tabellen und Sichten für Unity Catalog.
Gewähren des Zugriffs auf aktualisierte oder Verbundtabellen
Gewähren Sie Benutzern, Gruppen oder Dienstprinzipalen Zugriff auf die neuen Tabellen auf Kontoebene. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.
Aktualisieren von Abfragen und Aufträgen für die Arbeit mit aktualisierten Tabellen und Pfaden zu Daten
Während Sie vom metastore "workspace-local Hive" zum Unity-Katalog wechseln, können Sie weiterhin Abfragen und Aufträge verwenden, die auf die im Hive-Metaspeicher registrierten Daten verweisen, indem Sie den Hive-Metastore-Partnerverbund verwenden (empfohlen) oder die unter "Arbeiten mit dem Legacy-Hive-Metastore" beschriebene Syntax zusammen mit Dem Unity-Katalog. Schließlich sollten Sie jedoch alle Abfragen und Aufträge aktualisieren, um Unity Catalog-Tabellen und -Syntax zu verwenden.
Aktualisieren Sie ebenso Abfragen und Aufträge, die den pfadbasierten Zugriff auf Dateien verwenden, um stattdessen Unity-Katalogvolumes zu verwenden.
Ausführliche Empfehlungen finden Sie unter Aktualisieren von Aufträgen, wenn Sie legacy-Arbeitsbereiche auf den Unity-Katalog aktualisieren.
Zugriff auf DBFS deaktivieren
Im Rahmen der Unity-Katalogmigration empfiehlt Databricks, den Zugriff auf DBFS in Ihren Arbeitsbereichen zu deaktivieren. Dadurch wird sichergestellt, dass alle Daten und Workflows vom Unity-Katalog gesteuert werden und dass Sie die Unity-Katalogfeatures vollständig nutzen.
Sie können die DBFS-Scannerskripts von Databricks Labs verwenden, um Ihre aktuelle DBFS-Verwendung zu überprüfen und zu entscheiden, ob die Ressource an Ort und Stelle (mithilfe eines externen Speicherorts), zum Unity-Katalog migriert oder archiviert werden soll, wenn Sie es nicht mehr benötigen. Databricks Labs ist ein öffentliches GitHub-Repository, das nicht direkt von Databricks unterstützt wird.
In den folgenden Abschnitten wird beschrieben, wie verschiedene Ressourcen von DBFS zu Unity-Katalog migriert werden.
Migrieren von dateien, die in DBFS gespeichert sind
Wenn Sie Rohdateien wie Parkett, CSV, JSON oder Bilder haben, die im DBFS-Stammverzeichnis (z. B. unter /FileStore oder anderen DBFS-Stammverzeichnissen) oder im Cloudspeicher in DBFS (unter/mnt/...) gespeichert sind, migrieren Sie sie mithilfe von Unity-Katalogvolumes, und greifen Sie mithilfe externer Speicherorte darauf zu.
In den folgenden Schritten wird beschrieben, wie Dateien von DBFS zu Unity Catalog-Volumes migriert werden. Weitere Informationen dazu, wann Volumes im Vergleich zu Arbeitsbereichsdateien verwendet werden sollen, finden Sie unter Empfehlungen für Dateien in Volumes und Arbeitsbereichsdateien.
Schritt 1: Einrichten eines externen Speicherorts
Um die Objekte im Unity-Katalog zu registrieren, richten Sie einen externen Unity-Katalogspeicherort für den Cloudspeichercontainer oder Pfad ein, in dem sich die Dateien befinden. Dazu können Sie den Katalog-Explorer, SQL-Befehle, Terraform oder die Azure Databricks CLI verwenden.
Ausführliche Anweisungen finden Sie unter Herstellen einer Verbindung mit dem Cloudobjektspeicher mithilfe des Unity-Katalogs.
Schritt 2: Erstellen eines Volumes
Unity-Katalogvolumes bieten eine geregelte Möglichkeit zum Organisieren von Dateien. Databricks empfiehlt die Verwendung von Volumes, um alle nicht tabellarischen Daten zu steuern. Sie können ein externes Volume in einem Schema erstellen, das sich auf einen Unterpfad Ihres externen Speicherorts bezieht. Beispiel:
USE CATALOG main;
USE SCHEMA data;
CREATE VOLUME IF NOT EXISTS raw_files
LOCATION 'my_data_loc/csv-files/';
Auf alle Dateien unter diesem Pfad kann jetzt über den externen Speicherort zugegriffen werden und unterliegen den Unity-Katalog-Berechtigungen.
Weitere Informationen finden Sie unter Was sind Unity Catalog-Volumes?.
Schritt 3: Kopieren von Dateien aus dbFS-Stamm
Wenn Ihre Dateien zuvor im DBFS-Stamm gespeichert wurden, kopieren Sie sie in den Cloudspeicherpfad. Zum Beispiel in einem Notizbuch:
dbutils.fs.cp(
"dbfs:/FileStore/tables/data.csv",
"/Volumes/main/data/raw_files/data.csv"
)
Tipp
Wenn Sie über eine große Anzahl von Dateien oder Dateien verfügen, die größer als ein paar GB sind, sollten Sie die Azure Databricks CLI oder eine verteilte Kopie mit Apache Spark verwenden, um die Verschiebung zu parallelisieren. Der Befehl Azure Databricks CLI fs cp kann Verzeichnisse rekursiv kopieren.
Schritt 4: Überprüfen migrierter Dateien
Nach der Migration können Sie Dateien aus Volumes mithilfe von Standardbefehlen auflisten und lesen:
# List files in the volume
dbutils.fs.ls("/Volumes/main/data/raw_files/")
# Read a CSV file into a DataFrame
df = spark.read.option("header", True).csv(
"/Volumes/main/data/raw_files/2024-01-01-data.csv"
)
Dieser Code erfordert geeignete Unity-Katalogberechtigungen für das Volume oder den externen Speicherort und eine Computeressource, die Unity-Katalog unterstützt. Der Unity Catalog erzwingt, dass der Benutzer, der die Datei liest, READ Berechtigungen für das Volume oder den externen Speicherort besitzt.
Schritt 5: Bereinigen der DBFS-Einhängepunkte
Nachdem Sie überprüft haben, ob auf die Dateien am neuen Speicherort zugegriffen werden kann, heben Sie die alten DBFS-Einhängepunkte auf, um Verwirrung oder versehentliche Verwendung zu verhindern:
dbutils.fs.unmount("/mnt/oldpath")
Erwägen Sie das Sperren oder Löschen von Daten im DBFS-Stamm, wenn sie verschoben wurde, da das Verlassen von Kopien zu inkonsistenten Updates oder Sicherheitsrisiken führen kann.
Migration von Arbeitsbereichs-Assets aus DBFS
Einige Arbeitsbereiche verfügen über Notizbücher, Codedateien oder Referenzskripts, die auf DBFS gespeichert sind. Dies kann Folgendes umfassen:
- Notizbücher, die als HTML- oder DBC-Dateien
/FileStorezur Freigabe gespeichert wurden - Python-Skripts oder JAR-Dateien, die in Azure Databricks-Aufträgen verwendet werden
- Init-Skripte im Compute-Bereich (z. B.
dbfs:/databricks/init/...)
Notizbücher und Code sollten als Arbeitsbereichsdateien oder in Git-Ordnern gespeichert werden, nicht in DBFS. DBFS bietet keine Zugriffssteuerung pro Datei und sollte nicht für Quellcode oder Notizbücher verwendet werden.
- Notizbücher: Wenn Sie Notizbücher als Dateien auf DBFS haben, importieren Sie sie in den Azure Databricks-Arbeitsbereich. Dazu können Sie die Importfunktion der Benutzeroberfläche oder die CLI manuell verwenden. Stellen Sie sicher, dass Notizbuchberechtigungen im Arbeitsbereich für den Teamzugriff entsprechend festgelegt sind. Speichern Sie Notizbücher in Zukunft als Arbeitsbereichsobjekte oder in Git-Ordnern, und verwenden Sie Git für die Versionssteuerung.
-
Auftragsskripts: Wenn Aufträge konfiguriert werden, um ein Python-Skript von DBFS auszuführen (z. B. ein Auftrag mit einem Aufgabentyp "Python-Skript" verweisend auf
dbfs:/mnt/scripts/my_etl.py), verschieben Sie diese Skripts in Arbeitsbereichsdateien. Verwalten Sie sie in einem Git-Ordner für die Versionssteuerung und die Änderungsnachverfolgung. - Erstellen von Artefakten und Bibliotheken: Objekte wie JAR-Dateien und Python-Räder sollten in Unity-Katalogvolumes gespeichert werden.
- Computebereichs-Initskripts: Initskripts im Computebereich sollten in Unity-Katalog-Volumes gespeichert werden. Weitere Informationen finden Sie unter Was sind Initskripts?.
Identifizieren und migrieren Sie Rechenressourcen zu unterstützten Databricks-Runtime-Versionen und Zugriffsmodi
Hinweis
Dieser Abschnitt enthält Abfragen, die auf die system.compute.clusters Tabelle zugreifen. Um auf diese Systemtabelle zuzugreifen, müssen Sie entweder ein Azure Databricks-Kontoadministrator sein oder USE- und SELECT-Berechtigungen für das compute-Systemschema erhalten haben. Siehe Gewähren des Zugriffs auf Systemtabellen.
Im Rahmen der Unity-Katalogmigration empfiehlt Databricks, alle Compute-Instanzen und Jobs auf Databricks Runtime 13.3 LTS oder höher zu aktualisieren und die Zugriffsmodi des Unity Catalog zu verwenden.
Um die Berechnung in Ihrem Arbeitsbereich manuell zu überprüfen, navigieren Sie zur Computeseite des Arbeitsbereichs. Überprüfen Sie im Abschnitt "All-purpose compute" die Databricks-Runtime-Version der einzelnen Computes. Sortieren oder filtern Sie nach Version, um Cluster mit Versionen unter 13.3 LTS zu identifizieren. Wiederholen Sie den Abschnitt " Auftragsberechnung ", da Aufträge auch für die Verwendung einer bestimmten Databricks-Runtime-Version konfiguriert werden können.
Um Programmversionen, die unter 13.3 LTS liegen, programmgesteuert zu finden, konsultieren Sie die system.compute.clusters-Tabelle. Beispiel:
SELECT
workspace_id,
cluster_id,
dbr_version
FROM system.compute.clusters
WHERE
TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) < 13
OR (
TRY_CAST(SPLIT(dbr_version, '\\.')[0] AS INT) = 13
AND TRY_CAST(SPLIT(dbr_version, '\\.')[1] AS INT) < 3
);
Dadurch wird eine Liste von allgemeinen Compute-Ressourcen und Auftrags-Computing-Ressourcen zurückgegeben, die in Versionen unter 13.3 LTS ausgeführt werden.
Rechenleistung auf unterstützte Zugriffsmodi aktualisieren
Wenn die Berechnung weiterhin im Modus ohne Isolation für gemeinsam genutzten Zugriff ausgeführt wird, können Sie sie auf unterstützte Zugriffsmodi aktualisieren. Siehe Zugriffsmodi. Um die Berechnung abzufragen, die im Modus für freigegebenen Zugriff ohne Isolation ausgeführt wird, fragen Sie die system.compute.clusters Tabelle ab. Beispiel:
SELECT
workspace_id,
cluster_id,
dbr_version,
data_security_mode
FROM system.compute.clusters
WHERE data_security_mode IN ('NONE','NO_ISOLATION')
LIMIT 100;
Deaktivieren des Zugriffs auf veraltete Funktionen in Ihren Arbeitsbereichen
Nachdem Sie die oben aufgeführten Migrationsschritte abgeschlossen haben, können Sie den Zugriff auf ältere Features in Ihren Arbeitsbereichen deaktivieren.
- DbFS-Stamm und -Bereitstellungen deaktivieren: Nachdem Sie alle Daten und Workflows migriert haben, die auf DBFS-Stamm- oder Bereitstellungen basieren, und alle Aufträge und Cluster auf Databricks Runtime 13.3 LTS oder höher aktualisiert haben, können Arbeitsbereichsadministratoren DBFS in vorhandenen Arbeitsbereichen deaktivieren. Siehe Deaktivieren des Zugriffs auf DBFS-Stamm- und Bereitstellungen in Ihrem vorhandenen Azure Databricks-Arbeitsbereich.
- Deaktivieren Sie den Hive-Metaspeicher: Wenn Sie Ihre Unity-Katalogmigration abgeschlossen oder Den Hive-Metaspeicher als fremder Katalog verknüpft haben, der vom Unity-Katalog gesteuert wird, können Arbeitsbereichsadministratoren verhindern, dass Benutzer Den Unity-Katalog umgehen und auf Tabellen zugreifen, die im Hive-Metastore registriert sind. Siehe Deaktivieren des Zugriffs auf den Hive-Metastore, der von Ihrem Azure Databricks-Arbeitsbereich verwendet wird.
- Deaktivieren Sie freigegebene Computeressourcen ohne Isolation: Um zu verhindern, dass Benutzer neue gemeinsam genutzte Computeressourcen ohne Isolation erstellen, können Arbeitsbereichsadministratoren freigegebene Computeressourcen in ihren Arbeitsbereichen ohne Isolation deaktivieren. Siehe "Administratorschutz für gemeinsam genutzte Cluster ohne Isolation in Ihrem Konto aktivieren".