Freigeben über


Upgrade von Hive-Tabellen und Sichten für Unity Catalog

In diesem Artikel wird beschrieben, wie Sie Tabellen und Sichten, die in Ihrem vorhandenen Hive-Metastore im lokalen Arbeitsbereich registriert sind, auf Unity Catalog aktualisieren. Sie können eine Hive-Tabelle entweder auf eine verwaltete Tabelle oder eine externe Tabelle in Unity Catalog aktualisieren.

  • Verwaltete Tabellen sind die bevorzugte Methode zum Erstellen von Tabellen in Unity Catalog. Unity Catalog verwaltet den Lebenszyklus, das Dateilayout und den Speicher vollständig. Unity Catalog optimiert auch ihre Leistung automatisch. Verwaltete Tabellen verwenden immer das Delta-Tabellenformat.

    Verwaltete Tabellen befinden sich an einem verwalteten Speicherort, den Sie für Unity Catalog reservieren. Aufgrund dieser Speicheranforderung müssen Sie CLONE oder CREATE TABLE AS SELECT (CTAS) verwenden, wenn Sie vorhandene Hive-Tabellen als verwaltete Tabellen in Unity Catalog kopieren möchten.

  • Externe Tabellen sind Tabellen, deren Datenlebenszyklus, Dateilayout und Speicherort nicht von Unity Catalog verwaltet werden. Für externe Tabellen werden mehrere Datenformate unterstützt.

    In der Regel verwenden Sie externe Tabellen nur, wenn Sie auch direkten Zugriff auf Daten mit Nicht-Databricks-Compute benötigen (d. h. keine Databricks-Cluster oder Databricks SQL-Warehouses). Externe Tabellen sind auch in Migrationsszenarien praktisch, da Sie vorhandene Daten schnell in Unity Catalog registrieren können, ohne diese Daten kopieren zu müssen. Dies liegt daran, dass Daten in externen Tabellen nicht im reservierten verwalteten Speicher gespeichert werden müssen.

Weitere Informationen zu verwalteten und externen Tabellen in Unity Catalog finden Sie unter Tabellen.

Optionen für die Migration von Hive zu Unity

Wenn Sie bereit sind, Hive-Tabellen zu Unity Catalog zu migrieren, haben Sie je nach Ihrem Anwendungsfall mehrere Optionen:

Migrationstool Beschreibung Anforderungen an die Hive-Tabelle Unity Catalog-Tabelle erstellt Gründe für die Verwendung
UCX Eine umfassende Reihe von Befehlszeilenhilfsprogrammen und anderen Tools, die die Bereitschaft Ihres Arbeitsbereichs für die Migration zu Unity Catalog bewerten und Workflows ausführen, die Identitäten, Berechtigungen, Speicherorte und Tabellen zu Unity Catalog migrieren. UCX ist auf GitHub unter databrickslabs/ucx verfügbar. Verwaltete oder externe Hive-Tabellen Verwaltet oder extern Sie möchten ein umfassendes Tool für die Planung von Arbeitsbereichsupgrades, das über das Upgrade von Hive-Tabellen auf Unity Catalog hinausgeht. Sie möchten Arbeitsbereiche aktualisieren, die über große Datenmengen im Hive-Metastore verfügen. Sie sind mit dem Ausführen von Skripts vertraut. Wenn Sie ein Massenupgrade von Hive-Tabellen auf verwaltete Tabellen in Unity Catalog durchführen möchten, ist dies Ihre einzige Option. UCX ist, wie alle Databricks Labs-Projekte, ein öffentliches GitHub-Repository und wird nicht direkt von Databricks unterstützt.
Unity Catalog-Upgradeassistent Eine Funktion des Katalog-Explorers, mit dem Sie ganze Schemas (Datenbanken) und mehrere verwaltete und externe Tabellen aus Ihrem Hive-Metastore als externe Tabellen in den Unity Catalog-Metastore kopieren können. Der Upgradeassistent führt den SYNC-Befehl für die von Ihnen ausgewählten Tabellen aus, sodass die ursprünglichen Hive-Tabellen erhalten bleiben. Sie haben die Möglichkeit, regelmäßige Upgrades zu planen, um Änderungen an den Hive-Quelltabellen aufzunehmen. Verwaltete oder externe Hive-Tabellen Nur extern Sie möchten Ihre Hive-Tabellen schnell auf externe Tabellen in Unity Catalog upgraden, und Sie bevorzugen eine grafische Benutzeroberfläche. Die Möglichkeit, regelmäßige Synchronisierungen zu planen, wenn sich die Hive-Quelltabelle ändert, macht den Assistenten zu einem nützlichen Tool für die Verwaltung eines „hybriden“ Hive- und Unity Catalog-Arbeitsbereichs während des Übergangs zu Unity Catalog.
SYNC SQL-Befehl Mit SYNC können Sie externe Tabellen und verwaltete Tabellen (wenn die verwalteten Tabellen außerhalb des Databricks-Arbeitsbereichsspeichers, auch bekannt als DBFS-Stamm, gespeichert sind) in Ihrem Hive-Metastore in externe Tabellen in Unity Catalog kopieren. Sie können einzelne Tabellen oder ganze Schemas synchronisieren.

SYNC ist für die Ausführung nach einem Zeitplan konzipiert, um neue Änderungen im Hive-Metastore zu erfassen und mit Unity Catalog zu synchronisieren.
Verwaltete oder externe Hive-Tabellen Nur extern Sie möchten Ihre Hive-Tabellen schnell auf externe Tabellen in Unity Catalog upgraden, und Sie verwenden lieber SQL-Befehle als eine grafische Benutzeroberfläche.

Die Planung regelmäßiger SYNC-Ausführungen zur Aktualisierung vorhandener Unity Catalog-Tabellen, wenn sich die Hive-Quelltabelle ändert, macht den Assistenten zu einem nützlichen Tool für die Verwaltung eines „hybriden“ Hive- und Unity Catalog-Arbeitsbereichs während des Übergangs zu Unity Catalog.

Da Sie SYNC nicht verwenden können, um verwaltete Tabellen zu aktualisieren, die sich im Databricks-Arbeitsbereichspeicher befinden, verwenden Sie CREATE TABLE CLONE für diese Tabellen.
SQL-Befehl CREATE TABLE CLONE Mit CREATE TABLE CLONE können Sie verwaltete Tabellen in Ihrem Hive-Metastore auf verwaltete Tabellen in Unity Catalog upgraden. Sie können einzelne Tabellen klonen.

Tiefe Klone werden bevorzugt, da sie neben den vorhandenen Tabellenmetadaten auch Quelltabellendaten in das Klonziel kopieren.
Verwaltete Hive-Tabellen im Delta-, Parquet- oder Iceberg-Format. Beim Klonen von Parquet- und Iceberg-Quelltabellen gelten einige spezifische Anforderungen und Einschränkungen: siehe Anforderungen und Einschränkungen für das Klonen von Parquet- und Iceberg-Tabellen. Nur verwaltet Sie möchten verwaltete Hive-Tabellen zu verwalteten Unity Catalog-Tabellen migrieren, um die Datengovernance von Unity Catalog vollständig zu nutzen, und Ihre Hive-Tabellen erfüllen die in der Zelle „Anforderungen an die Hive-Tabelle“ aufgeführten Kriterien.

Wenn Ihre Hive-Tabellen die „Anforderungen an die Hive-Tabelle“ nicht erfüllen, können Sie den SQL-Befehl CREATE TABLE AS SELECT verwenden, um eine Hive-Tabelle zu auf eine verwaltete Unity Catalog-Tabelle upzugraden. CLONE wird jedoch fast immer bevorzugt. Klonen hat eine einfachere Syntax als CREATE TABLE AS SELECT: Sie müssen keine Partitionierung, kein Format, keine Invarianten, keine NULL-Zulässigkeit, keinen Stream, kein COPY INTO und keine anderen Metadaten angeben, da diese aus der Quelltabelle geklont werden.

In diesem Artikel wird die Durchführung aller Upgradeprozesse mit Ausnahme des UCX-gesteuerten Prozesses beschrieben. Databricks empfiehlt UCX für die meisten Upgradeszenarien für Arbeitsbereiche. Für einfachere Anwendungsfälle sollten Sie jedoch eines oder mehrere der hier beschriebenen Tools verwenden.

Vorbemerkungen

In diesem Abschnitt werden einige der Auswirkungen der Migration beschrieben, auf die Sie vorbereitet sein sollten, sowie Anforderungen und Computeberechtigungen.

Grundlegendes zu den Auswirkungen

Beachten Sie, dass Sie beim Anpassen Ihrer Workloads zur Verwendung der neuen Unity Catalog-Tabellen möglicherweise einige Verhaltensweisen ändern müssen:

  • Unity Catalog verwaltet Partitionen anders als Hive. Hive-Befehle, die Partitionen direkt bearbeiten, werden in von Unity Catalog verwalteten Tabellen nicht unterstützt.
  • Der Tabellenverlauf wird nicht migriert, wenn Sie CREATE TABLE CLONE ausführen. Alle Tabellen im Hive-Metastore, die Sie in Unity Catalog klonen, werden als neue Tabellen behandelt. Sie können keine Delta Lake-Zeitreisen oder andere Vorgänge durchführen, die auf dem Verlauf vor der Migration basieren.

Weitere Informationen finden Sie unter Arbeiten mit Unity Catalog und dem Legacy-Hive-Metastore.

Anforderungen

Zum Ausführen von Migrationen müssen Sie über Folgendes verfügen:

  • Einen Arbeitsbereich mit einem Unity Catalog-Metastore und mindestens einem Unity Catalog-Katalog. Siehe Einrichten und Verwalten von Unity Catalog.

  • Berechtigungen für die Unity Catalog-Kataloge, zu denen Sie Tabellen migrieren. Diese Berechtigungsanforderungen werden zu Beginn jeder in diesem Artikel behandelten Prozedur aufgezählt.

  • Für die Migration zu externen Unity Catalog-Tabellen: Speicheranmeldeinformationen und externe Speicherorte, die in Unity Catalog definiert sind, und die Berechtigung CREATE EXTERNAL TABLE für den externen Speicherort.

  • Zugriff auf Azure Databricks-Compute, der die beiden folgenden Anforderungen erfüllt:

    • Unterstützt Unity Catalog (SQL-Warehouses oder Computeressourcen, die den Einzelbenutzermodus oder den Zugriffsmodus „Freigegeben“ verwenden).
    • Ermöglicht den Zugriff auf die Tabellen im Hive-Metastore.

    Da Computeressourcen, die den Zugriffsmodus „Freigegeben“ verwenden, standardmäßig für die Legacy-Tabellenzugriffssteuerung aktiviert sind, bedeutet dies, dass Sie bei Verwendung dieses Zugriffsmodus über Berechtigungen für die Tabellenzugriffssteuerung für den Hive-Metastore verfügen müssen, von dem Sie migrieren. Mit dem folgenden SQL-Befehl können Sie sich selbst Zugriff gewähren:

    GRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`
    

    Alternativ können Sie eine Computeressource im Einzelbenutzerzugriffsmodus verwenden.

Weitere Informationen zum Verwalten von Berechtigungen für Objekte im Hive-Metastore finden Sie unter Hive-Metastore-Berechtigungen und sicherungsfähige Objekte (Legacy). Weitere Informationen zum Verwalten von Berechtigungen für Datenobjekte in Unity Catalog finden Sie unter Verwalten von Berechtigungen in Unity Catalog.

Identifizieren von Tabellen, die vom Hive-Metastore verwaltet werden

Überprüfen Sie den Katalognamen, um zu ermitteln, ob eine Tabelle derzeit in Unity Catalog registriert ist. Tabellen im Katalog hive_metastore sind im lokalen Hive-Metastore im Arbeitsbereich registriert. Alle anderen aufgeführten Kataloge werden von Unity Catalog verwaltet.

Anzeigen der Tabellen im Katalog hive_metastore mithilfe des Katalog-Explorers:

  1. Klicken Sie in der Seitenleiste auf Katalog-SymbolKatalog.
  2. Navigieren Sie im Katalogbereich zum Katalog hive_metastore, und erweitern Sie die Schemaknoten.

Sie können auch mithilfe des Filterfelds im Katalogbereich nach einer bestimmten Tabelle suchen.

Upgrade eines Schemas oder mehrerer Tabellen aus dem Hive-Metastore auf externe Unity Catalog-Tabellen mithilfe des Upgradeassistenten

Mit dem Upgradeassistenten des Katalog-Explorers können Sie vollständige Schemas (Datenbanken) und mehrere externe oder verwaltete Tabellen aus Ihrem Standard-Hive-Metastore von Azure Databricks in den Unity Catalog-Metastore kopieren. Die aktualisierten Tabellen sind externe Tabellen in Unity Catalog.

Hilfe bei der Entscheidung, wann der Upgradeassistent verwendet werden sollte, finden Sie unter Optionen für die Migration von Hive zu Unity.

Anforderungen

Anforderungen an das Datenformat:

Computeanforderungen:

  • Eine Computeressource, die Unity Catalog unterstützt. Weitere Informationen finden Sie unter Vorbereitung.

Objekt- und Berechtigungsanforderungen von Unity Catalog:

  • Speicheranmeldeinformationen für eine von Azure verwaltete Identität oder Dienstprinzipal, der Unity Catalog zum Zugriff auf den Speicherpfad der Tabellen berechtigt.
  • Einen externen Speicherort, der auf die soeben erstellten Anmeldeinformationen für den Speicher sowie auf den Pfad zu den Daten in Ihrem Cloudmandanten verweist
  • CREATE EXTERNAL TABLE-Berechtigung für die externen Standorte der Tabellen, für die das Upgrade durchgeführt werden soll.

Anforderungen für den Zugriff auf Hive-Tabellen:

  • Wenn Ihre Computeinstanz den Zugriffsmodus „Freigegeben“ verwendet, benötigen Sie Zugriff auf die Tabellen im Hive-Metastore, der über Legacy-Tabellenzugriffssteuerung gewährt wird. Weitere Informationen finden Sie unter Vorbereitung.

Upgradeprozess

  1. Klicken Sie in der Seitenleiste auf Katalog-SymbolKatalog, um den Katalog-Explorer zu öffnen.

  2. Wählen Sie hive_metastore als Ihren Katalog und dann das Schema (Datenbank) für das Upgrade aus.

    Datenbank auswählen

  3. Klicken Sie oben rechts in der Schemadetailansicht auf Upgrade.

  4. Wählen Sie alle Tabellen aus, für die Sie ein Upgrade durchführen möchten, und klicken Sie auf Weiter.

    Nur externe Tabellen in Formaten, die von Unity Catalog unterstützt werden, können mithilfe des Upgrade-Assistenten aktualisiert werden.

  5. Legen Sie den Zielkatalog, das Schema (Datenbank) und den Besitzer für jede Tabelle fest.

    Benutzer werden auf die neu erstellte Tabelle im Kontext Ihrer Berechtigungen für den Katalog und das Schema zugreifen können.

    Tabellenbesitzer verfügen über alle Berechtigungen für die Tabelle, einschließlich SELECT und MODIFY. Wenn Sie keinen Besitzer auswählen, werden die verwalteten Tabellen mit Ihnen als Besitzer erstellt. Databricks empfiehlt im Allgemeinen, Gruppen den Tabellenbesitz zu gewähren. Weitere Informationen zum Objektbesitz in Unity Catalog finden Sie unter Verwalten des Unity Catalog-Objektbesitzes.

    Um mehreren Tabellen denselben Katalog und dasselbe Schema zuzuweisen, wählen Sie die Tabellen aus, und klicken Sie auf die Schaltfläche Ziel festlegen.

    Um mehreren Tabellen denselben Besitzer zuzuweisen, wählen Sie die Tabellen aus, und klicken Sie auf die Schaltfläche Besitzer festlegen.

  6. Überprüfen Sie die Tabellenkonfigurationen. Klicken Sie auf die Schaltfläche Zurück, um sie zu ändern.

  7. Klicken Sie auf Abfrage für Upgrade erstellen.

    Ein Abfrage-Editor wird mit generierten SQL-Anweisungen angezeigt.

  8. Führen Sie die Abfrage aus.

    Wenn die Abfrage beendet ist, wurden die Metadaten jeder Tabelle vom Hive-Metastore nach Unity Catalog kopiert. Diese Tabellen werden im Upgrade-Assistenten als aktualisiert gekennzeichnet.

  9. Definieren Sie eine differenzierte Zugriffssteuerung mithilfe der Registerkarte Berechtigungen der einzelnen neuen Tabellen.

  10. (Optional) Fügen Sie zu jeder aktualisierten Hive-Tabelle Kommentare hinzu, die die Benutzer auf die neue Unity Catalog-Tabelle verweisen.

    Kehren Sie zur ursprünglichen Tabelle im Katalog hive.metastore zurück, um den Tabellenkommentar hinzuzufügen.

    Wenn Sie die folgende Syntax im Tabellenkommentar verwenden, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Siehe Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen.

  11. Ändern Sie Ihre Workloads so, dass die neuen Tabellen verwendet werden.

    Wenn Sie der ursprünglichen Hive-Tabelle einen Kommentar wie den im optionalen vorherigen Schritt aufgeführten hinzugefügt haben, können Sie den Link zur schnellen Problembehebung und den Databricks-Assistenten verwenden, um Workloads zu finden und zu ändern.

Upgraden einer einzelnen Hive-Tabelle auf eine externe Unity Catalog-Tabelle mithilfe des Upgradeassistenten

Sie können eine einzelne Tabelle aus Ihrem standardmäßigen Hive-Metastore in den Unity Catalog-Metastore kopieren, indem Sie den Upgradeassistenten im Katalog-Explorer verwenden.

Hilfe bei der Entscheidung, wann der Upgradeassistent verwendet werden sollte, finden Sie unter Optionen für die Migration von Hive zu Unity.

Anforderungen

Anforderungen an das Datenformat:

Computeanforderungen:

  • Eine Computeressource, die Unity Catalog unterstützt. Weitere Informationen finden Sie unter Vorbereitung.

Objekt- und Berechtigungsanforderungen von Unity Catalog:

  • Speicheranmeldeinformationen für eine von Azure verwaltete Identität oder Dienstprinzipal, der Unity Catalog zum Zugriff auf den Speicherpfad der Tabelle berechtigt.
  • Einen externen Speicherort, der auf die soeben erstellten Anmeldeinformationen für den Speicher sowie auf den Pfad zu den Daten in Ihrem Cloudmandanten verweist
  • CREATE EXTERNAL TABLE-Berechtigung für die externen Standorte der Tabellen, für die das Upgrade durchgeführt werden soll.

Upgradeprozess

So führen Sie ein Upgrade für eine externe Tabelle durch

  1. Klicken Sie in der Seitenleiste auf Katalog-SymbolKatalog, um den Katalog-Explorer zu öffnen.

  2. Wählen Sie die Datenbank und dann die Tabelle aus, die Sie aktualisieren möchten.

  3. Klicken Sie in der Detailansicht der Tabelle rechts oben auf Upgrade.

  4. Wählen Sie die Tabelle für das Upgrade aus, und klicken Sie auf Weiter.

  5. Wählen Sie Ihren Zielkatalog, Ihr Schema (Datenbank) und Ihren Besitzer aus.

    Benutzer werden auf die neu erstellte Tabelle im Kontext Ihrer Berechtigungen für den Katalog und das Schema zugreifen können.

    Tabellenbesitzer verfügen über alle Berechtigungen für die Tabelle, einschließlich SELECT und MODIFY. Wenn Sie keinen Besitzer auswählen, wird die verwaltete Tabelle mit Ihnen als Besitzer erstellt. Databricks empfiehlt im Allgemeinen, Gruppen den Tabellenbesitz zu gewähren. Weitere Informationen zum Objektbesitz in Unity Catalog finden Sie unter Verwalten des Unity Catalog-Objektbesitzes.

  6. Klicken Sie in der Detailansicht der Tabelle rechts oben auf Upgrade.

  7. Wählen Sie die Tabelle für das Upgrade aus, und klicken Sie auf Weiter.

    Die Tabellenmetadaten wurden nun in Unity Catalog kopiert, und eine neue Tabelle wurde erstellt. Sie können nun auf der Registerkarte Berechtigungen eine differenzierte Zugriffssteuerung definieren.

  8. Definieren Sie auf der Registerkarte Berechtigungen eine differenzierte Zugriffssteuerung.

  9. (Optional) Fügen Sie der Hive-Tabelle einen Kommentar hinzu, der die Benutzer auf die neue Unity Catalog-Tabelle verweist.

    Kehren Sie zur ursprünglichen Tabelle im Katalog hive.metastore zurück, um den Tabellenkommentar hinzuzufügen.

    Wenn Sie die folgende Syntax im Tabellenkommentar verwenden, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Siehe Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen.

  10. Ändern Sie vorhandene Workloads so, dass die neue Tabelle verwendet wird.

    Wenn Sie der ursprünglichen Hive-Tabelle einen Kommentar wie den im optionalen vorherigen Schritt aufgeführten hinzugefügt haben, können Sie den Link zur schnellen Problembehebung und den Databricks-Assistenten verwenden, um Workloads zu finden und zu ändern.

    Hinweis

    Wenn Sie die alte Tabelle nicht mehr benötigen, können Sie sie aus dem Hive-Metastore entfernen. Durch das Löschen einer externen Tabelle werden die Datendateien in Ihrem Cloudmandanten nicht geändert.

Upgrade einer Hive-Tabelle auf eine externe Unity Catalog-Tabelle mithilfe von SYNC

Sie können den SQL-Befehl SYNC verwenden, um externe Tabellen in Ihrem Hive-Metastore in externe Tabellen in Unity Catalog zu kopieren. Sie können einzelne Tabellen oder ganze Schemas synchronisieren.

Sie können SYNC auch verwenden, um verwaltete Hive-Tabellen, die außerhalb des (manchmal als DBFS-Stamm bezeichneten) Datenspeichers des Databricks-Arbeitsbereichs gespeichert sind, in externe Tabellen in Unity Katalog zu kopieren. Der Befehl kann jedoch nicht zum Kopieren verwalteter Hive-Tabellen verwendet werden, die im Arbeitsbereichsspeicher gespeichert sind. Verwenden Sie zum Kopieren dieser Tabellen stattdessen CREATE TABLE CLONE.

Der Befehl SYNC führt einen Schreibvorgang für jede Quelltabelle aus, die upgegradet wird, um zusätzliche Tabelleneigenschaften für die Buchführung hinzuzufügen, einschließlich eines Datensatzes der externen Unity Catalog-Zieltabelle.

SYNC kann auch verwendet werden, um vorhandene Unity Catalog-Tabellen zu aktualisieren, wenn die Quelltabellen im Hive-Metastore geändert werden. Dies macht den Befehl zu einem guten Tool für den schrittweisen Übergang zu Unity Catalog.

Ausführliche Informationen finden Sie unter SYNC. Hilfe bei der Entscheidung, wann der Upgradeassistent verwendet werden sollte, finden Sie unter Optionen für die Migration von Hive zu Unity.

Anforderungen

Anforderungen an das Datenformat:

Computeanforderungen:

  • Eine Computeressource, die Unity Catalog unterstützt. Weitere Informationen finden Sie unter Vorbereitung.

Objekt- und Berechtigungsanforderungen von Unity Catalog:

  • Speicheranmeldeinformationen für eine von Azure verwaltete Identität oder Dienstprinzipal, der Unity Catalog zum Zugriff auf den Speicherpfad der Tabellen berechtigt.
  • Einen externen Speicherort, der auf die soeben erstellten Anmeldeinformationen für den Speicher sowie auf den Pfad zu den Daten in Ihrem Cloudmandanten verweist
  • CREATE EXTERNAL TABLE-Berechtigung für die externen Standorte der Tabellen, für die das Upgrade durchgeführt werden soll.

Anforderungen für den Zugriff auf Hive-Tabellen:

  • Wenn Ihre Computeinstanz den Zugriffsmodus „Freigegeben“ verwendet, benötigen Sie Zugriff auf die Tabellen im Hive-Metastore, der über Legacy-Tabellenzugriffssteuerung gewährt wird. Weitere Informationen finden Sie unter Vorbereitung.

Upgradeprozess

Für das Upgrade von Tabellen in Ihrem Hive-Metastore auf externe Unity Catalog-Tabellen mithilfe von SYNC:

  1. Führen Sie in einem Notebook oder im SQL-Abfrage-Editor einen der folgenden Befehle aus:

    Synchronisieren einer externen Hive-Tabelle:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Synchronisieren eines externen Hive-Schemas und aller zugehörigen Tabellen:

    SYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    

    Synchronisieren einer verwalteten Hive-Tabelle, die außerhalb des Databricks-Arbeitsbereichsspeichers gespeichert ist:

    SYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
    SET OWNER <principal>;
    

    Synchronisieren eines Schemas, das verwaltete Hive-Tabellen enthält, die außerhalb des Databricks-Arbeitsbereichsspeichers gespeichert sind:

    SYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
    SET OWNER <principal>;
    
  2. Gewähren Sie Benutzer*innen und Gruppen auf Kontoebene Zugriff auf die neue Tabelle. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.

  3. (Optional) Fügen Sie der ursprünglichen Hive-Tabelle einen Kommentar hinzu, der die Benutzer auf die neue Unity Catalog-Tabelle verweist.

    Kehren Sie zur ursprünglichen Tabelle im Katalog hive.metastore zurück, um den Tabellenkommentar hinzuzufügen. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe des Katalog-Explorers finden Sie unter Hinzufügen von Markdown-Kommentaren zu Datenobjekten mithilfe des Katalog-Explorers. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe von SQL-Anweisungen in einem Notebook oder im SQL-Abfrage-Editor finden Sie unter COMMENT ON.

    Wenn Sie die folgende Syntax im Tabellenkommentar verwenden, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Siehe Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen.

  4. Nach der Migration der Tabelle sollten Benutzer*innen ihre vorhandenen Abfragen und Workloads aktualisieren, um die neue Tabelle zu verwenden.

    Wenn Sie der ursprünglichen Hive-Tabelle einen Kommentar wie den im optionalen vorherigen Schritt aufgeführten hinzugefügt haben, können Sie den Link zur schnellen Problembehebung und den Databricks-Assistenten verwenden, um Workloads zu finden und zu ändern.

  5. Testen Sie die alte Tabelle vor dem Löschen auf Abhängigkeiten, indem Sie den Zugriff darauf widerrufen und zugehörige Abfragen und Workloads erneut ausführen.

    Löschen Sie die alte Tabelle nicht, wenn Sie noch Kommentare zur Veraltung nutzen, um vorhandenen Code zu finden und zu aktualisieren, der auf die alte Tabelle verweist. Ebenso sollten Sie die alte Tabelle nicht löschen, wenn sich diese Tabelle seit Ihrer ursprünglichen Synchronisierung geändert hat: SYNC kann verwendet werden, um vorhandene Unity Catalog-Tabellen mit Änderungen aus Hive-Quelltabellen zu aktualisieren.

Upgraden einer verwalteten Hive-Tabelle auf eine verwaltete Unity Catalog-Tabelle mithilfe von CLONE

Verwenden Sie CREATE TABLE CLONE, um verwaltete Tabellen in Ihrem Hive-Metastore auf verwaltete Tabellen in Unity Catalog upzugraden. Sie können einzelne Tabellen klonen. Tiefe Klone kopieren neben den vorhandenen Tabellenmetadaten auch Quelltabellendaten in das Klonziel. Verwenden Sie einen tiefen Klon, wenn Sie die Hive-Quelltabelle löschen möchten. Flache Klone kopieren die Datendateien nicht in das Klonziel, sondern gewähren durch Verweis auf die Quelldaten Zugriff auf sie: Die Metadaten der Tabelle entsprechen der Quelle. Flache Klone sind billiger zu erstellen, erfordern aber, dass Benutzer, die Daten im Klonziel abfragen, auch Zugriff auf die Quelldaten haben.

Hilfe bei der Entscheidung, wann CLONE verwendet werden sollte, finden Sie unter Optionen für die Migration von Hive zu Unity. Hilfe bei der Entscheidung, welcher Klontyp zu verwenden ist, finden Sie unter Klonen einer Tabelle in Azure Databricks.

Anforderungen

Anforderungen an das Datenformat:

Computeanforderungen:

  • Eine Computeressource, die Unity Catalog unterstützt. Weitere Informationen finden Sie unter Vorbereitung.

Erforderliche Berechtigungen:

  • Die Berechtigungen USE CATALOG und USE SCHEMA für den Katalog und das Schema, dem Sie die Tabelle hinzufügen, sowie CREATE TABLE für das Schema, oder Sie müssen der Besitzer des Katalogs oder Schemas sein. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.
  • Wenn Ihre Computeinstanz den Zugriffsmodus „Freigegeben“ verwendet, benötigen Sie Zugriff auf die Tabellen im Hive-Metastore, der über Legacy-Tabellenzugriffssteuerung gewährt wird. Weitere Informationen finden Sie unter Vorbereitung.

Upgradeprozess

Upgraden von verwaltete Tabellen in Ihrem Hive-Metastore auf verwaltete Tabellen in Unity Catalog:

  1. Führen Sie in einem Notebook oder im SQL-Abfrage-Editor einen der folgenden Befehle aus:

    Tiefes Klonen einer verwalteten Tabelle im Hive-Metastore:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    DEEP CLONE hive_metastore.<source-schema>.<source-table>;
    

    Flaches Klonen einer verwalteten Tabelle im Hive-Metastore:

    CREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
    SHALLOW CLONE hive_metastore.<source-schema>.<source-table>;
    

    Informationen zu zusätzlichen Parametern, einschließlich Tabelleneigenschaften, finden Sie unter CREATE TABLE CLONE.

  2. Gewähren Sie Benutzer*innen und Gruppen auf Kontoebene Zugriff auf die neue Tabelle. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.

  3. (Optional) Fügen Sie der ursprünglichen Hive-Tabelle einen Kommentar hinzu, der die Benutzer auf die neue Unity Catalog-Tabelle verweist.

    Kehren Sie zur ursprünglichen Tabelle im Katalog hive.metastore zurück, um den Tabellenkommentar hinzuzufügen. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe des Katalog-Explorers finden Sie unter Hinzufügen von Markdown-Kommentaren zu Datenobjekten mithilfe des Katalog-Explorers. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe von SQL-Anweisungen in einem Notebook oder im SQL-Abfrage-Editor finden Sie unter COMMENT ON.

    Wenn Sie die folgende Syntax im Tabellenkommentar verwenden, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Siehe Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen.

  4. Nach der Migration der Tabelle sollten Benutzer*innen ihre vorhandenen Abfragen und Workloads aktualisieren, um die neue Tabelle zu verwenden.

    Wenn Sie der ursprünglichen Hive-Tabelle einen Kommentar wie den im optionalen vorherigen Schritt aufgeführten hinzugefügt haben, können Sie den Link zur schnellen Problembehebung und den Databricks-Assistenten verwenden, um Workloads zu finden und zu ändern.

  5. Testen Sie die alte Tabelle vor dem Löschen auf Abhängigkeiten, indem Sie den Zugriff darauf widerrufen und zugehörige Abfragen und Workloads erneut ausführen.

    Löschen Sie die alte Tabelle nicht, wenn Sie noch Kommentare zur Veraltung nutzen, um vorhandenen Code zu finden und zu aktualisieren, der auf die alte Tabelle verweist. Ebenso sollten Sie die alte Tabelle nicht löschen, wenn Sie einen flachen Klon durchgeführt haben. Flache Klone verweisen auf Datendateien aus der Hive-Quelltabelle.

Upgraden einer Hive-Tabelle auf eine verwaltete Unity Catalog-Tabelle mithilfe von CREATE TABLE AS SELECT

Wenn Sie CREATE TABLE CLONE nicht verwenden können oder möchten, um eine Tabelle in Ihrem Hive-Metastore in eine verwaltete Tabelle in Unity Catalog zu migrieren, können Sie eine neue verwaltete Tabelle in Unity Catalog erstellen, indem Sie die Hive-Tabelle mit CREATE TABLE AS SELECT abfragen. Informationen zu den Unterschieden zwischen CREATE TABLE CLONE und CREATE TABLE AS SELECT finden Sie unter Optionen für die Migration von Hive zu Unity.

Anforderungen

Computeanforderungen:

  • Eine Computeressource, die Unity Catalog unterstützt. Weitere Informationen finden Sie unter Vorbereitung.

Erforderliche Berechtigungen:

  • Die Berechtigungen USE CATALOG und USE SCHEMA für den Katalog und das Schema, dem Sie die Tabelle hinzufügen, sowie CREATE TABLE für das Schema, oder Sie müssen der Besitzer des Katalogs oder Schemas sein. Weitere Informationen finden Sie unter Unity Catalog-Berechtigungen und sicherungsfähige Objekte.
  • Wenn Ihre Computeinstanz den Zugriffsmodus „Freigegeben“ verwendet, benötigen Sie Zugriff auf die Tabellen im Hive-Metastore, der über Legacy-Tabellenzugriffssteuerung gewährt wird. Weitere Informationen finden Sie unter Vorbereitung.

Upgradeprozess

Upgraden einer Tabelle in Ihrem Hive-Metastore auf eine verwaltete Tabelle in Unity Catalog mithilfe von CREATE TABLE AS SELECT:

  1. Erstellen Sie eine neue Unity Catalog-Tabelle, indem Sie die vorhandene Tabelle abfragen. Ersetzen Sie folgende Platzhalterwerte:

    • <uc-catalog>: Der Unity Catalog-Katalog der neuen Tabelle
    • <uc-schema>: Das Unity Catalog-Schema der neuen Tabelle
    • <new-table>: Ein Name für die Unity Catalog-Tabelle
    • <source-schema>: Das Schema für die Hive-Tabelle, z. B. default.
    • <source-table>: Der Name der Hive-Tabelle.

    SQL

    CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
    AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
    

    Python

    df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      name = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    R

    %r
    library(SparkR)
    
    df = tableToDF("hive_metastore.<source-schema>.<source-table>")
    
    saveAsTable(
      df = df,
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Scala

    val df = spark.table("hive_metastore.<source-schema>.<source-table>")
    
    df.write.saveAsTable(
      tableName = "<uc-catalog>.<uc-schema>.<new-table>"
    )
    

    Wenn Sie nur einige Spalten oder Zeilen migrieren möchten, ändern Sie die SELECT-Anweisung.

    Hinweis

    Die hier beschriebenen Befehle erstellen eine verwaltete Tabelle, bei der die Daten in einen dedizierten verwalteten Speicherort kopiert werden. Wenn Sie stattdessen eine externe Tabelle erstellen möchten, bei der die Tabelle in Unity Catalog registriert wird, ohne die Daten in den Cloudspeicher zu verschieben, lesen Sie den Abschnitt Upgraden einer einzelnen Hive-Tabelle auf eine externe Unity Catalog-Tabelle mithilfe des Upgradeassistenten. Siehe auch Angeben eines verwalteten Speicherorts in Unity Catalog.

  2. Gewähren Sie Benutzer*innen und Gruppen auf Kontoebene Zugriff auf die neue Tabelle. Weitere Informationen finden Sie unter Verwalten von Berechtigungen in Unity Catalog.

  3. (Optional) Fügen Sie der ursprünglichen Hive-Tabelle einen Kommentar hinzu, der die Benutzer auf die neue Unity Catalog-Tabelle verweist.

    Kehren Sie zur ursprünglichen Tabelle im Katalog hive.metastore zurück, um den Tabellenkommentar hinzuzufügen. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe des Katalog-Explorers finden Sie unter Hinzufügen von Markdown-Kommentaren zu Datenobjekten mithilfe des Katalog-Explorers. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe von SQL-Anweisungen in einem Notebook oder im SQL-Abfrage-Editor finden Sie unter COMMENT ON.

    Wenn Sie die folgende Syntax im Tabellenkommentar verwenden, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

    This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
    

    Siehe Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen.

  4. Nach der Migration der Tabelle sollten Benutzer*innen ihre vorhandenen Abfragen und Workloads aktualisieren, um die neue Tabelle zu verwenden.

    Wenn Sie der ursprünglichen Hive-Tabelle einen Kommentar wie den im optionalen vorherigen Schritt aufgeführten hinzugefügt haben, können Sie den Link zur schnellen Problembehebung und den Databricks-Assistenten verwenden, um Workloads zu finden und zu ändern.

  5. Testen Sie die alte Tabelle vor dem Löschen auf Abhängigkeiten, indem Sie den Zugriff darauf widerrufen und zugehörige Abfragen und Workloads erneut ausführen.

    Löschen Sie die alte Tabelle nicht, wenn Sie noch Kommentare zur Veraltung nutzen, um vorhandenen Code zu finden und zu aktualisieren, der auf die alte Tabelle verweist.

Upgraden einer Ansicht auf Unity Catalog

Nachdem Sie für alle Tabellen einer Ansicht, auf die verwiesen wird, ein Upgrade auf den selben Unity Catalog-Metastore durchgeführt haben, können Sie eine neue Ansicht erstellen, die auf diese neuen Tabellen verweist.

Hinzufügen von Kommentaren, um auf die Migration einer Hive-Tabelle hinzuweisen

Wenn Sie der veralteten Hive-Tabelle einen Kommentar hinzufügen, der Benutzer auf die neue Unity Catalog-Tabelle verweist, zeigen Notebooks und Abfragen des SQL-Abfrage-Editors, die auf die veraltete Hive-Tabelle verweisen, den veralteten Tabellennamen in durchgestrichenem Text an, zeigen den Kommentar als Warnung an und geben einen Link zu einer schnellen Problembehebung im Databricks-Assistenten an, der Ihren Code aktualisieren kann, um auf die neue Tabelle zu verweisen.

Veraltungswarnung für Hive-Tabelle

Ihr Kommentar muss das folgende Format aufweisen:

This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.

Informationen zum Hinzufügen von Tabellenkommentaren mithilfe des Katalog-Explorers finden Sie unter Hinzufügen von Markdown-Kommentaren zu Datenobjekten mithilfe des Katalog-Explorers. Informationen zum Hinzufügen von Tabellenkommentaren mithilfe von SQL-Anweisungen in einem Notebook oder im SQL-Abfrage-Editor finden Sie unter COMMENT ON.

Verwenden des Databricks-Assistenten zum Aktualisieren eines veralteten Tabellenverweises

Wenn Sie in einer Notebookzelle oder einer Anweisung im SQL-Abfrage-Editor durchgestrichenen Text für einen Tabellennamen sehen, bewegen Sie den Mauszeiger über den Tabellennamen, um einen Warnhinweis anzuzeigen. Wenn dieser Warnhinweis die Tabelle als veraltet beschreibt und den neuen Tabellennamen anzeigt, klicken Sie auf Schnelle Problembehebung und anschließend auf Veraltung beheben. Der Databricks-Assistent wird geöffnet und bietet an, den veralteten Tabellennamen durch den neuen Namen der Unity Catalog-Tabelle zu ersetzen. Folgen Sie den Aufforderungen, um die Aufgabe abzuschließen.

Video zur Aktualisierung von Hive-Tabellen mit dem Databricks-Assistenten

Siehe auch Verwenden des Databricks-Assistenten.