Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez créer une copie complète et indépendante d’une table gérée qui utilise Iceberg avec DEEP CLONE. Un clone profond copie à la fois les fichiers de données et les métadonnées de la table dans une nouvelle table gérée en utilisant Iceberg dans Unity Catalog.
Les tables gérées utilisant Iceberg ne supportent que le clonage profond. Le clonage superficiel et la conversion de format pendant le clonage ne sont pas pris en charge.
Méthodes de clonage pour les tables Iceberg
L’opération clone que vous utilisez dépend de vos types de table source et cible :
| Source | Cible | Operation |
|---|---|---|
| Table gérée utilisant Iceberg | Table gérée utilisant Iceberg |
DEEP CLONE. |
| Table Iceberg étrangère | Table gérée utilisant Iceberg |
DEEP CLONE.
Voir Cloner une table Iceberg étrangère en table gérée en utilisant Iceberg. |
| Parquet ou Iceberg externe | Delta Lake géré ou externe | Clone incrémentiel. Voir Cloner de manière incrémentielle les tables Parquet et Apache Iceberg sur Delta Lake. |
Pour créer une table gérée en utilisant Iceberg à partir des résultats de requête au lieu de cloner une table existante, utilisez CREATE TABLE ... AS SELECT. Consultez CREATE TABLE [USING].
SHALLOW CLONE n’est pas pris en charge pour les tables Iceberg. Consultez Limitations.
Requirements
Pour cloner profondément une table gérée avec Iceberg, il vous faut :
- Databricks Runtime 16.4 LTS ou version ultérieure.
-
SELECTprivilèges sur la table source. - Si vous remplacez une table existante, des privilèges
CREATE TABLEsur le schéma cible, ou des privilègesMODIFYsur la table cible. - Optimisation prédictive activée sur le catalogue ou le schéma cible.
Effectuer un clonage profond d’une table gérée avec Iceberg
À utiliser CREATE TABLE ... DEEP CLONE pour copier une table managée à l’aide d’Iceberg :
CREATE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Pour remplacer une table cible existante :
CREATE OR REPLACE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Pour créer la cible uniquement si elle n’existe pas déjà :
CREATE TABLE IF NOT EXISTS <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Pour obtenir la syntaxe complète CREATE TABLE CLONE , consultez CREATE TABLE CLONE.
Archiver une table de production
Pour créer un instantané indépendant d’une table de production à des fins d’archivage ou de conformité :
CREATE TABLE prod_catalog.archive.orders_snapshot_may2026
DEEP CLONE prod_catalog.main.orders;
Copier une table vers un environnement de développement
Pour cloner une table de production dans un catalogue de développement pour une expérimentation sécurisée sans affecter les données de production :
CREATE OR REPLACE TABLE dev_catalog.test.orders
DEEP CLONE prod_catalog.main.orders;
Cloner une table Iceberg étrangère en une table gérée en utilisant Iceberg
Vous pouvez utiliser DEEP CLONE pour migrer une table Iceberg externe vers Unity Catalog en tant que table gérée avec Iceberg. Le clone copie toutes les données et métadonnées dans le stockage du catalogue Unity. Les fichiers d’origine gérés par le catalogue externe ne sont pas réutilisés.
CREATE TABLE <uc-catalog>.<schema>.<target-table>
DEEP CLONE <foreign-catalog>.<schema>.<source-table>;
Après la fin du clone, la table cible est une table entièrement gérée utilisant Iceberg dans le catalogue Unity, indépendante du catalogue source.
Note
La migration de copie zéro à partir d’un catalogue étranger n’est pas prise en charge. Consultez Limitations.
Définir des propriétés de table sur un clone profond
Vous ne pouvez pas définir les propriétés de la table Iceberg dans l’instruction DEEP CLONE . Pour ajouter ou remplacer des propriétés sur la table clonées, utilisez ALTER TABLE SET TBLPROPERTIES une fois le clone terminé.
Par exemple, pour définir des propriétés personnalisées pour enregistrer la source d’un clone utilisé comme instantané :
CREATE TABLE prod_catalog.archive.orders_snapshot
DEEP CLONE prod_catalog.main.orders;
ALTER TABLE prod_catalog.archive.orders_snapshot
SET TBLPROPERTIES (
'archive.source' = 'prod_catalog.main.orders',
'archive.created_date' = '2026-05-11'
);
Comportement du clone
Considérations importantes relatives au comportement du clone profond :
- Un clone profond est une copie complète et indépendante de la table source. Les modifications apportées au clone n’affectent pas la source et les modifications apportées à la source n’affectent pas le clone.
- Un clone complet possède un historique d’instantanés indépendant. Le voyage dans le temps sur le clone utilise l’historique du clone, et non l’historique de la source.
- Le schéma, les informations de partitionnement et les propriétés de table sont copiés dans le clone profond. Les balises de catalogue Unity ne sont pas copiées.
- Après la création, Unity Catalog gère le clone indépendamment avec l’optimisation prédictive.
Limites
- Le clonage superficiel n’est pas pris en charge pour les tables gérées utilisant Iceberg.
- Unity Catalog ne prend pas en charge la conversion zéro copie de tables Iceberg étrangères en tables gérées via Iceberg. Vous devez utiliser
DEEP CLONE. Toutes les données sont copiées dans le stockage du catalogue Unity pendant l’opération de clonage. - Les clones complets ne copient pas l’historique de la table, ce qui affecte les requêtes de voyage dans le temps.
- Vous ne pouvez pas modifier le format du tableau pendant le clonage. La cible est toujours une table managée utilisant Iceberg.
- Vous ne pouvez pas définir les propriétés de table pendant le clonage. Utilisez
ALTER TABLE SET TBLPROPERTIESune fois le clonage profond terminé. Consultez Définir les propriétés de table sur un clone complet.