Mettre à niveau les tables et les vues Hive vers Unity Catalog
Cet article décrit comment mettre à niveau les tables et les vues enregistrées dans votre Hive metastore local de Workspace existant vers Unity Catalog.
Comme alternative aux processus de migration de table décrits dans cet article, vous pouvez utiliser la fédération Hive metastore pour créer un catalogue dans Unity Catalog qui reproduit votre Hive metastore. Consultez Fédération du Hive metastore : activez Unity Catalog pour gouverner les tables enregistrées dans un Hive metastore.
Vous pouvez mettre à niveau une table Hive soit vers une table gérée , soit vers une table externe dans Unity Catalog.
-
Les tables gérées sont la méthode privilégiée pour créer des tables dans Unity Catalog. Unity Catalog gère entièrement leur cycle de vie, file Layout et le stockage. Unity Catalog optimise également leurs performances automatiquement. Les tables gérées utilisent toujours le format de table Delta.
Les tables gérées résident dans un emplacement de stockage géré que vous réservez pour Unity Catalog. En raison de cette exigence de stockage, vous devez utiliser CLONE ou CREATE TABLE AS SELECT (CTAS) si vous souhaitez copier des tables Hive existantes vers Unity Catalog en tant que tables gérées.
-
Les tables externes sont des tables dont le cycle de vie des données, le Layout de fichier et l'emplacement de stockage ne sont pas gérés par Unity Catalog. Plusieurs formats de données sont pris en charge pour les tables externes.
En règle générale, vous utilisez des tables externes uniquement lorsque vous avez également besoin d’un accès direct aux données à l’aide de compute non-Databricks (c’est-à-dire, sans utiliser les clusters Databricks ou les warehouses Databricks SQL). Les tables externes sont également pratiques dans les scénarios de migration, car vous pouvez enregistrer rapidement les données existantes dans Unity Catalog sans avoir à copier ces données. Ceci est dû au fait que les données des tables externes n'ont pas besoin de résider dans un stockage géré réservé.
Pour plus d'informations sur les tables gérées et externes dans Unity Catalog, consultez les tables Databricks.
Options de migration Hive vers Unity Catalog
Lorsque vous êtes prêt à migrer des tables Hive vers Unity Catalog, vous disposez de plusieurs options, selon votre cas d'utilisation :
Outil de migration | Description | Exigences relatives aux tables Hive | Table Unity Catalog créée | Pourquoi devrais-je l'utiliser ? |
|---|---|---|---|---|
Un ensemble complet d'utilitaires de ligne de commande et d'autres outils qui évaluent la préparation de votre Workspace à la migration Unity Catalog et exécutent des flux de travail qui migrent les identités, les autorisations, les emplacements de stockage et les tables vers Unity Catalog. UCX est disponible sur GitHub à l'adresse databrickslabs/ucx. | Tables Hive gérées ou externes | Géré ou externe | Vous souhaitez un outil complet de planification de mise à niveau de workspace qui va au-delà de la mise à niveau des tables Hive vers Unity Catalog. Vous souhaitez mettre à niveau des Workspace qui contiennent de grandes quantités de données dans le Hive metastore. Vous êtes à l'aise avec l'exécution de scripts. Si vous souhaitez effectuer une mise à niveau en bloc des tables Hive vers des tables gérées par Unity Catalog, c'est votre seule option. UCX, comme tous les projets Databricks Labs, est un référentiel GitHub public et n'est pas pris en charge directement par Databricks. | |
Une fonctionnalité de Catalog Explorer qui vous permet de copier en masse des schémas entiers (bases de données) et plusieurs tables gérées et externes de votre Hive metastore vers le Unity Catalog metastore en tant que tables externes. L'assistant de mise à niveau exécute la commande | Tables Hive gérées ou externes | Externe seulement | Vous souhaitez mettre à niveau rapidement vos tables Hive vers des tables externes dans Unity Catalog, et vous préférez une interface visuelle. La capacité de planifier des synchronisations régulières lorsque la table Hive source change en fait un outil utile pour gérer un Workspace « hybride » Hive et Unity Catalog pendant la transition vers Unity Catalog. | |
| Tables Hive gérées ou externes | Externe seulement | Vous souhaitez mettre à niveau rapidement vos tables Hive vers des tables externes dans Unity Catalog, et vous préférez utiliser des commandes SQL plutôt qu'une interface visuelle. La planification d'exécutions régulières de Comme vous ne pouvez pas utiliser | |
Les clones profonds copient les données et les métadonnées de la table source vers la cible du clone. | Tables Hive gérées au format Delta. | Géré uniquement | Vous souhaitez migrer les tables gérées Hive vers les tables gérées Unity Catalog pour tirer pleinement parti de la gouvernance des données Unity Catalog, et vos tables Hive répondent aux critères listés dans la cellule « Exigences des tables Hive ». Si vos tables Hive ne répondent pas aux « exigences des tables Hive », vous pouvez utiliser la commande SQL CREATE TABLE AS SELECT pour mettre à niveau une table Hive vers une table gérée par Unity Catalog. Cependant, |
Cet article décrit comment effectuer l'ensemble du processus de mise à niveau, à l'exception de celui piloté par UCX. Databricks recommande UCX pour la plupart des scénarios de mise à niveau de workspace. Cependant, pour des cas d'utilisation plus simples, vous pourriez préférer un ou plusieurs des outils décrits ici.
Avant de commencer
Cette section décrit certains des impacts de la migration auxquels vous devez vous préparer, ainsi que les autorisations et les exigences en matière de compute.
Comprendre l'impact
Vous devez savoir que lorsque vous modifiez vos charges de travail pour utiliser les nouvelles tables Unity Catalog, vous pourriez avoir besoin de modifier certains comportements :
- Unity Catalog gère les partitions différemment de Hive. Les commandes Hive qui manipulent directement les partitions ne sont pas prises en charge sur les tables gérées par Unity Catalog.
- L'historique de la table n'est pas migré lorsque vous exécutez
CREATE TABLE CLONE. Toutes les tables du Hive metastore que vous clonez vers Unity Catalog sont traitées comme de nouvelles tables. Vous ne pouvez pas effectuer de Delta Lake time travel ou d'autres Opérations qui reposent sur l'historique antérieur à la migration.
Pour plus d'informations, consultez Travailler avec l'ancien Hive metastore à côté d'Unity Catalog.
Exigences
Pour effectuer des migrations, vous devez avoir :
-
Un Workspace qui contient un metastore Unity Catalog et au moins un catalogue Unity Catalog. Consultez Se familiariser avec Unity Catalog.
-
Privilèges sur les catalogues Unity Catalog vers lesquels vous migrez des tables. Ces exigences en matière de privilèges sont énumérées au start de chaque procédure décrite dans cet article.
-
Pour la migration vers les tables externes Unity Catalog : identifiants de stockage et emplacements externes définis dans Unity Catalog, et le privilège
CREATE EXTERNAL TABLEsur l'emplacement externe. -
Accès au compute Databricks qui répond aux deux exigences suivantes :
- Prend en charge Unity Catalog (SQL Warehouse ou Ressources de compute qui utilisent le mode d'accès standard ou dédié).
- Permet d'accéder aux tables du Hive metastore.
Étant donné que les ressources de compute qui utilisent le mode d'accès standard sont activées par default pour le contrôle d'accès de table hérité, cela signifie que si vous utilisez ce mode d'accès, vous devez disposer des privilèges de contrôle d'accès de table sur le Hive metastore à partir duquel vous effectuez la migration. Vous pouvez vous accorder l'accès à l'aide de la commande SQL suivante :
SQLGRANT ALL PRIVILEGES ON catalog hive_metastore TO `<user>`Vous pouvez également utiliser une ressource de compute en mode d'accès dédié.
Pour les démos de mise à jour du compute pour Unity Catalog, voir :
Pour plus d'informations sur la gestion des privilèges sur les objets dans le Hive metastore, consultez Privilèges et objets sécurisables du Hive metastore (hérité). Pour plus d'informations sur la gestion des privilèges sur les objets dans le métastore Unity Catalog, consultez Gérer les privilèges dans Unity Catalog.
Identifier les tables gérées par le Hive metastore
Pour déterminer si une table est actuellement enregistrée dans Unity Catalog, vérifiez le nom du catalogue. Les tables du catalogue hive_metastore sont enregistrées dans le Hive metastore local du Workspace. Tout autre catalogue listé est régi par Unity Catalog.
Pour afficher les tables dans le catalogue hive_metastore à l’aide de l’Explorateur de catalogues :
- Cliquez sur
Catalogue dans la barre latérale.
- Dans le volet du catalogue, accédez au catalogue
hive_metastoreet développez les nœuds du schéma.
Vous pouvez également rechercher une table spécifique à l'aide du champ de filtre dans le volet Catalogue.
Mettre à niveau un schéma ou des tables du Hive metastore vers des tables externes Unity Catalog à l'aide de l'assistant de mise à niveau
Vous pouvez copier des schémas (bases de données) complets et plusieurs tables externes ou gérées de votre Databricks default Hive metastore vers le metastore Unity Catalog à l'aide de l'assistant de mise à niveau de Catalog Explorer . Les tables mises à niveau seront des tables externes dans Unity Catalog.
Pour vous aider à décider quand utiliser l'assistant de mise à niveau, consultez les options de migration de Hive vers Unity Catalog.
Exigences
Exigences relatives au format des données :
- Consultez Utiliser des tables externes.
Exigences de compute :
- Une Ressource de compute qui prend en charge Unity Catalog. Voir Avant de commencer.
**Exigences relatives aux objets et autorisations Unity Catalog** :
- Un identifiant de stockage pour un rôle IAM qui autorise Unity Catalog à accéder au chemin d'accès de l'emplacement des tables.
- Un emplacement externe qui fait référence à l'identifiant de stockage que vous venez de créer et au chemin d'accès aux données de votre tenant cloud.
CREATE EXTERNAL TABLEautorisation sur les emplacements externes des tables à mettre à niveau.
Exigences d’accès aux tables Hive :
- Si votre compute utilise le mode d'accès standard, vous avez besoin d'accéder aux tables dans le Hive metastore, accordé via le contrôle d'accès aux tables hérité. Voir Avant de commencer.
Processus de mise à niveau
-
Cliquez sur
Catalog dans la barre latérale pour ouvrir l'Explorateur de catalogues.
-
Sélectionnez
hive_metastorecomme votre catalogue et sélectionnez le schéma (base de données) que vous souhaitez mettre à niveau.
-
Cliquez sur Mettre à niveau en haut à droite de la vue détaillée du schéma.
-
Sélectionnez toutes les tables que vous souhaitez mettre à niveau et cliquez sur Suivant .
Seules les tables externes dans les formats pris en charge par Unity Catalog peuvent être mises à niveau à l'aide de l'assistant de mise à niveau. Voir Travailler avec des tables externes.
-
Définissez le catalogue de destination, le schéma (base de données) et le propriétaire pour chaque table.
Les utilisateurs pourront accéder à la table nouvellement créée dans le cadre de leurs privilèges sur le catalogue et le schéma.
Les propriétaires de table ont tous les privilèges sur la table, y compris
SELECTetMODIFY. Si vous ne sélectionnez pas de propriétaire, les tables gérées sont créées avec vous comme propriétaire. Databricks vous recommande généralement d'accorder la propriété des tables aux groupes. Pour en savoir plus sur la propriété des objets dans Unity Catalog, consultez Gérer la propriété des objets.Pour attribuer le même catalogue et le même schéma à plusieurs tables, sélectionnez les tables et cliquez sur le bouton Définir la destination .
Pour attribuer le même propriétaire à plusieurs tables, sélectionnez les tables et cliquez sur le bouton Définir le propriétaire .
-
Vérifiez les configurations de la table. Pour les modifier, cliquez sur le bouton **Précédent**.
-
Cliquez sur Exécuter la mise à niveau pour lancer la mise à niveau immédiatement ou cliquez sur Créer un notebook pour la mise à niveau .
Si vous créez un notebook pour la mise à niveau, nommez votre notebook et choisissez un chemin pour l'enregistrer. Ensuite, exécutez le notebook.
Une fois la mise à niveau terminée, les métadonnées de chaque table ont été copiées du Hive metastore vers Unity Catalog. Ces tables sont marquées comme mises à niveau dans l'assistant de mise à niveau.
-
Définissez un contrôle d'accès précis à l'aide de la tab Permissions de chaque nouvelle table.
-
(Facultatif) Ajoutez des commentaires à chaque table Hive mise à niveau qui oriente les utilisateurs vers la nouvelle table Unity Catalog.
Revenir à la table d'origine dans le catalogue
hive.metastorepour ajouter le commentaire de la table.Si vous utilisez la syntaxe suivante dans le commentaire de table, les Notebooks et les queries de l'éditeur de query SQL qui font référence à la table Hive obsolète afficheront le nom de la table obsolète en texte barré, afficheront le commentaire comme un avertissement, et fourniront un Link Correction rapide vers Genie Code, qui peut mettre à jour votre code pour faire référence à la nouvelle table.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.Voir Ajouter des commentaires pour indiquer qu'une table Hive a été migrée.
-
Modifiez vos workloads pour utiliser les nouvelles tables.
Si vous avez ajouté un commentaire à la table Hive originale comme celui listé dans l'étape précédente facultative, vous pouvez utiliser Genie Code pour vous aider à trouver et à modifier les charges de travail. Consultez Utiliser Genie Code pour mettre à jour une référence de table obsolète.
Si vous n'avez plus besoin des anciennes tables, vous pouvez les supprimer du Hive metastore. La suppression d'une table externe ne modifie pas les fichiers de données sur votre tenant cloud.
Mettre à niveau une table Hive vers une table externe Unity Catalog à l'aide de SYNC
Vous pouvez utiliser la commande SQL SYNC pour copier des tables externes de votre Hive metastore vers des tables externes dans Unity Catalog. Vous pouvez synchroniser des tables individuelles ou des schémas entiers.
Vous pouvez également utiliser SYNC pour copier les tables gérées Hive qui sont stockées en dehors du stockage du Workspace Databricks (parfois appelé racine DBFS) vers des tables externes dans Unity Catalog. Vous ne pouvez pas l'utiliser pour copier des tables gérées Hive stockées dans le stockage du Workspace. Pour copier ces tables, utilisez plutôt CREATE TABLE CLONE.
La commande SYNC effectue une opération d'écriture sur chaque table source qu'elle met à niveau pour ajouter des propriétés de table supplémentaires à des fins de tenue de registres, y compris un enregistrement de la table externe cible du Unity Catalog.
SYNC peut également être utilisé pour mettre à jour les tables Unity Catalog existantes lorsque les tables sources du métastore Hive sont modifiées. Cela en fait un bon outil pour passer progressivement à Unity Catalog.
- Pour une démonstration de l'utilisation de
SYNCpour mettre à niveau des tables externes, consultez Unity Catalog - Table externe sur HMS. - Pour une démonstration de l'utilisation de
SYNCpour mettre à niveau des tables gérées, consultez Unity Catalog - Table gérée sur HMS.
Pour plus de détails, consultez SYNC. Pour vous aider à décider quand utiliser l’assistant de mise à niveau, consultez les options de migration de Hive vers Unity Catalog.
Exigences
Exigences relatives au format des données :
- Consultez Utiliser des tables externes.
Exigences de compute :
- Une Ressource de compute qui prend en charge Unity Catalog. Voir Avant de commencer.
**Exigences relatives aux objets et autorisations Unity Catalog** :
- Un identifiant de stockage pour un rôle IAM qui autorise Unity Catalog à accéder au chemin d'accès de l'emplacement des tables.
- Un emplacement externe qui fait référence à l'identifiant de stockage que vous venez de créer et au chemin d'accès aux données de votre tenant cloud.
CREATE EXTERNAL TABLEautorisation sur les emplacements externes des tables à mettre à niveau.
Exigences d’accès aux tables Hive :
- Si votre compute utilise le mode d'accès standard, vous avez besoin d'accéder aux tables dans le Hive metastore, accordé via le contrôle d'accès aux tables hérité. Voir Avant de commencer.
Processus de mise à niveau
Pour mettre à niveau les tables de votre Hive metastore vers des tables externes Unity Catalog à l'aide de SYNC:
-
Dans un Notebook ou l'éditeur de query SQL, exécutez l'une des opérations suivantes :
Synchroniser une table Hive externe :
SQLSYNC TABLE <uc-catalog>.<uc-schema>.<new-table> FROM hive_metastore.<source-schema>.<source-table>
SET OWNER <principal>;Synchroniser un schéma Hive externe et toutes ses tables :
SQLSYNC SCHEMA <uc-catalog>.<new-schema> FROM hive_metastore.<source-schema>
SET OWNER <principal>;Synchroniser une table Hive gérée qui est stockée en dehors du stockage de Workspace Databricks :
SQLSYNC TABLE <uc-catalog>.<uc-schema>.<new-table> AS EXTERNAL FROM hive_metastore.<source-schema>.<source-table>
SET OWNER <principal>;Synchroniser un schéma qui contient des tables Hive gérées stockées en dehors du stockage du Workspace Databricks :
SQLSYNC SCHEMA <uc-catalog>.<new-schema> AS EXTERNAL FROM hive_metastore.<source-schema>
SET OWNER <principal>; -
Accordez aux utilisateurs ou groupes au niveau du compte l'accès à la nouvelle table. Consultez Gérer les privilèges dans Unity Catalog.
-
(Facultatif) Ajoutez un commentaire à la table Hive d'origine qui oriente les utilisateurs vers la nouvelle table Unity Catalog.
Retourner à la table d'origine dans le catalogue
hive.metastorepour ajouter le commentaire de table. Pour savoir comment ajouter des commentaires de table à l'aide de Catalog Explorer, consultez Ajouter des commentaires aux assets de données et d'IA. Pour savoir comment ajouter des commentaires de table à l'aide d'instructions SQL dans un Notebook ou l'éditeur de query SQL, consultez COMMENT ON.Si vous utilisez la syntaxe suivante dans le commentaire de table, les Notebooks et les queries de l'éditeur de query SQL qui font référence à la table Hive obsolète afficheront le nom de la table obsolète en texte barré, afficheront le commentaire comme un avertissement, et fourniront un Link Correction rapide vers Genie Code, qui peut mettre à jour votre code pour faire référence à la nouvelle table.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.Voir Ajouter des commentaires pour indiquer qu'une table Hive a été migrée.
-
Une fois la table migrée, les utilisateurs doivent mettre à jour leurs queries et workloads existants pour utiliser la nouvelle table.
Si vous avez ajouté un commentaire à la table Hive originale comme celui listé dans l'étape précédente facultative, vous pouvez utiliser Genie Code pour vous aider à trouver et à modifier les charges de travail. Consultez Utiliser Genie Code pour mettre à jour une référence de table obsolète.
-
Avant de supprimer l'ancienne table, testez les dépendances en révoquant l'accès à celle-ci et en réexécutant les queries et workloads associées.
Ne supprimez pas l'ancienne table si vous comptez toujours sur les commentaires d'obsolescence pour vous aider à trouver et à mettre à jour le code existant qui fait référence à l'ancienne table. De même, ne supprimez pas l'ancienne table si cette table a changé depuis votre synchronisation originale :
SYNCpeut être utilisé pour mettre à jour les tables Unity Catalog existantes avec les modifications des tables Hive source.
Mettre à niveau une table gérée Hive vers une table gérée Unity Catalog à l'aide de CLONE
Utilisez CREATE TABLE CLONE pour mettre à niveau les tables Delta gérées de votre Hive metastore vers des tables gérées dans Unity Catalog. Vous pouvez cloner des tables individuelles. Vous devez utiliser des clones profonds lorsque vous clonez des tables de l'ancien Hive metastore vers Unity Catalog.
Pour vous aider à décider quand utiliser CLONE, consultez les options de migration de Hive vers Unity Catalog. Pour plus d’informations sur CLONE, consultez Cloner une table sur Databricks.
Exigences
Exigences relatives au format des données :
- Tables Hive gérées au format Delta.
Exigences de compute :
- Une Ressource de compute qui prend en charge Unity Catalog. Voir Avant de commencer.
Exigences en matière d'autorisations :
- Les privilèges
USE CATALOGetUSE SCHEMAsur le catalogue et le schéma auxquels vous ajoutez la table, ainsi queCREATE TABLEsur le schéma, ou vous devez être le propriétaire du catalogue ou du schéma. Consulter la référence des privilèges Unity Catalog. - Si votre compute utilise le mode d'accès standard, vous avez besoin d'accéder aux tables dans le Hive metastore, accordé via le contrôle d'accès aux tables hérité. Voir Avant de commencer.
Processus de mise à niveau
Pour mettre à niveau les tables gérées dans votre Hive metastore vers des tables gérées dans Unity Catalog :
-
Dans un Notebook ou l'éditeur de query SQL, exécutez l'une des opérations suivantes :
Cloner en profondeur une table gérée dans le Hive metastore :
SQLCREATE OR REPLACE TABLE <uc-catalog>.<uc-schema>.<new-table>
DEEP CLONE hive_metastore.<source-schema>.<source-table>;Pour plus d'information sur les paramètres supplémentaires, y compris les propriétés de table, consultez CREATE TABLE CLONE.
-
Accordez aux utilisateurs ou groupes au niveau du compte l'accès à la nouvelle table. Consultez Gérer les privilèges dans Unity Catalog.
-
(Facultatif) Ajoutez un commentaire à la table Hive d'origine qui oriente les utilisateurs vers la nouvelle table Unity Catalog.
Retourner à la table d'origine dans le catalogue
hive.metastorepour ajouter le commentaire de table. Pour savoir comment ajouter des commentaires de table à l'aide de Catalog Explorer, consultez Ajouter des commentaires aux assets de données et d'IA. Pour savoir comment ajouter des commentaires de table à l'aide d'instructions SQL dans un Notebook ou l'éditeur de query SQL, consultez COMMENT ON.Si vous utilisez la syntaxe suivante dans le commentaire de table, les Notebooks et les queries de l'éditeur de query SQL qui font référence à la table Hive obsolète afficheront le nom de la table obsolète en texte barré, afficheront le commentaire comme un avertissement, et fourniront un Link Correction rapide vers Genie Code, qui peut mettre à jour votre code pour faire référence à la nouvelle table.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.Voir Ajouter des commentaires pour indiquer qu'une table Hive a été migrée.
-
Une fois la table migrée, les utilisateurs doivent mettre à jour leurs queries et workloads existants pour utiliser la nouvelle table.
Si vous avez ajouté un commentaire à la table Hive originale comme celui listé dans l'étape précédente facultative, vous pouvez utiliser Genie Code pour vous aider à trouver et à modifier les charges de travail. Consultez Utiliser Genie Code pour mettre à jour une référence de table obsolète.
-
Avant de supprimer l'ancienne table, testez les dépendances en révoquant l'accès à celle-ci et en réexécutant les queries et workloads associées.
Ne supprimez pas l'ancienne table si vous comptez toujours sur les commentaires d'obsolescence pour vous aider à trouver et à mettre à jour le code existant qui fait référence à l'ancienne table. De même, ne supprimez pas l'ancienne table si vous avez effectué un clone superficiel. Les clones superficiels référencent les données de la table Hive source.
Mettre à niveau une table Hive vers une table gérée par Unity Catalog à l'aide de CREATE TABLE AS SELECT
Si vous ne pouvez pas utiliser ou préférez ne pas utiliser CREATE TABLE CLONE pour migrer une table de votre Hive metastore vers une table gérée dans Unity Catalog, vous pouvez créer une nouvelle table gérée dans Unity Catalog en interrogeant la table Hive à l'aide de CREATE TABLE AS SELECT. Pour des informations sur les différences entre CREATE TABLE CLONE et CREATE TABLE AS SELECT, consultez les options de migration de Hive vers Unity Catalog.
Pour une démonstration de mise à niveau d'une table gérée à l'aide de CREATE TABLE AS SELECT, consultez Tables gérées sur HMS sans SYNC.
Exigences
Exigences de compute :
- Une Ressource de compute qui prend en charge Unity Catalog. Voir Avant de commencer.
Exigences en matière d'autorisations :
- Les privilèges
USE CATALOGetUSE SCHEMAsur le catalogue et le schéma auxquels vous ajoutez la table, ainsi queCREATE TABLEsur le schéma, ou vous devez être le propriétaire du catalogue ou du schéma. Consulter la référence des privilèges Unity Catalog. - Si votre compute utilise le mode d'accès standard, vous avez besoin d'accéder aux tables dans le Hive metastore, accordé via le contrôle d'accès aux tables hérité. Voir Avant de commencer.
Processus de mise à niveau
Pour mettre à niveau une table de votre Hive metastore vers une table gérée dans Unity Catalog à l’aide de CREATE TABLE AS SELECT:
-
Créez une nouvelle table Unity Catalog en interrogeant la table existante. Remplacez les valeurs d'espace réservé :
<uc-catalog>: Le catalogue Unity Catalog pour la nouvelle table.<uc-schema>: Le schéma Unity Catalog pour la nouvelle table.<new-table>: Nom de la table Unity Catalog.<source-schema>: Le schéma pour la table Hive, tel quedefault.<source-table>: Le nom de la table Hive.
- SQL
- Python
- R
- Scala
CREATE TABLE <uc-catalog>.<new-schema>.<new-table>
AS SELECT * FROM hive_metastore.<source-schema>.<source-table>;
df = spark.table("hive_metastore.<source-schema>.<source-table>")
df.write.saveAsTable(
name = "<uc-catalog>.<uc-schema>.<new-table>"
)
%r
library(SparkR)
df = tableToDF("hive_metastore.<source-schema>.<source-table>")
saveAsTable(
df = df,
tableName = "<uc-catalog>.<uc-schema>.<new-table>"
)
val df = spark.table("hive_metastore.<source-schema>.<source-table>")
df.write.saveAsTable(
tableName = "<uc-catalog>.<uc-schema>.<new-table>"
)
Si vous souhaitez migrer uniquement certaines colonnes ou lignes, modifiez l'instruction SELECT.
The commands presented here create a managed table in which data is copied into a dedicated managed storage location. If instead you want to create an external table, where the table is registered in Unity Catalog without moving the data in cloud storage, see Upgrade a schema or tables from the Hive metastore to Unity Catalog external tables using the upgrade wizard. See also Specify a managed storage location in Unity Catalog.
-
Accordez aux utilisateurs ou groupes au niveau du compte l'accès à la nouvelle table. Consultez Gérer les privilèges dans Unity Catalog.
-
(Facultatif) Ajoutez un commentaire à la table Hive d'origine qui oriente les utilisateurs vers la nouvelle table Unity Catalog.
Retourner à la table d'origine dans le catalogue
hive.metastorepour ajouter le commentaire de table. Pour savoir comment ajouter des commentaires de table à l'aide de Catalog Explorer, consultez Ajouter des commentaires aux assets de données et d'IA. Pour savoir comment ajouter des commentaires de table à l'aide d'instructions SQL dans un Notebook ou l'éditeur de query SQL, consultez COMMENT ON.Si vous utilisez la syntaxe suivante dans le commentaire de table, les Notebooks et les queries de l'éditeur de query SQL qui font référence à la table Hive obsolète afficheront le nom de la table obsolète en texte barré, afficheront le commentaire comme un avertissement, et fourniront un Link Correction rapide vers Genie Code, qui peut mettre à jour votre code pour faire référence à la nouvelle table.
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.Voir Ajouter des commentaires pour indiquer qu'une table Hive a été migrée.
-
Une fois la table migrée, les utilisateurs doivent mettre à jour leurs queries et workloads existants pour utiliser la nouvelle table.
Si vous avez ajouté un commentaire à la table Hive originale comme celui listé dans l'étape précédente facultative, vous pouvez utiliser Genie Code pour vous aider à trouver et à modifier les charges de travail. Consultez Utiliser Genie Code pour mettre à jour une référence de table obsolète.
-
Avant de supprimer l'ancienne table, testez les dépendances en révoquant l'accès à celle-ci et en réexécutant les queries et workloads associées.
Ne supprimez pas l'ancienne table si vous comptez toujours sur les commentaires d'obsolescence pour vous aider à trouver et à mettre à jour le code existant qui y fait référence.
Mettre à niveau une vue vers Unity Catalog
Après avoir mis à niveau toutes les tables référencées d'une vue vers le même métastore Unity Catalog, vous pouvez créer une nouvelle vue qui référence les nouvelles tables.
Ajoutez des commentaires pour indiquer qu’une table Hive a été migrée.
Lorsque vous ajoutez un commentaire à la table Hive obsolète qui pointe les utilisateurs vers la nouvelle table Unity Catalog, les Notebooks et les queries de l’éditeur de query SQL qui référencent la table Hive obsolète affichent le nom de la table obsolète en texte barré, affichent le commentaire sous forme d’avertissement et fournissent un Link Correction rapide vers Genie Code, qui peut mettre à jour votre code pour référencer la nouvelle table.

Votre commentaire doit utiliser le format suivant :
This table is deprecated. Please use catalog.default.table instead of hive_metastore.schema.table.
Pour apprendre comment ajouter des commentaires de table à l’aide de Catalog Explorer, voir Ajouter des commentaires aux données et aux assets d’IA. Pour apprendre à ajouter des commentaires de table à l'aide d'instructions SQL dans un notebook ou l'éditeur de query SQL, consultez COMMENT ON.
Utiliser Genie Code pour mettre à jour une référence de table obsolète
Vous pouvez utiliser Genie Code pour remplacer les références aux tables Hive metastore obsolètes par leurs équivalents dans Unity Catalog. Genie Code dispose de capacités de recherche de table avancées qui peuvent trouver la table Unity Catalog équivalente même si vous ne savez pas où elle se trouve dans votre catalogue. Demandez à Genie Code de remplacer une table hive_metastore par une équivalente dans Unity Catalog, et il recherche dans votre catalogue, identifie la meilleure correspondance basée sur la similarité du schéma et met à jour votre code.

Consultez également Utiliser Genie Code.