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 Iceberg gérée à l’aide de DEEP CLONE. Un clonage complet copie à la fois les fichiers de données et les métadonnées de la table vers une nouvelle table Iceberg gérée dans Unity Catalog.
Les tables Iceberg managées prennent uniquement en charge 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 Iceberg gérée | Table Iceberg gérée |
DEEP CLONE. |
| Table Iceberg étrangère | Table Iceberg gérée |
DEEP CLONE. Voir Cloner une table Iceberg externe vers Iceberg géré. |
| Parquet ou iceberg étranger | 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 Iceberg managée à partir de 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 en profondeur une table Iceberg managée, vous avez besoin des éléments suivants :
- Databricks Runtime 16.4 LTS ou version ultérieure.
-
SELECTprivilèges sur la table source. - Si vous remplacez une table existante,
CREATE TABLEdes privilèges sur le schéma cible ouMODIFYdes privilèges sur la table cible. - Optimisation prédictive activée sur le catalogue ou le schéma cible.
Cloner en profondeur une table Iceberg managée
Utilisez CREATE TABLE ... DEEP CLONE pour copier une table Iceberg gérée :
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 externe en table Iceberg gérée
Vous pouvez utiliser DEEP CLONE pour migrer une table Iceberg étrangère dans le catalogue Unity en tant que table Iceberg managée. 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>;
Une fois le clone terminé, la table cible est une table Iceberg entièrement gérée dans le catalogue Unity, indépendamment 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 profond a 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 Iceberg gérées.
- Unity Catalog ne prend pas en charge la conversion de copie zéro des tables Iceberg étrangères en tables Iceberg managées. 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 profonds ne copient pas l’historique des tables, ce qui affecte les requêtes de déplacement du temps.
- Vous ne pouvez pas modifier le format du tableau pendant le clonage. La cible est toujours une table Iceberg gérée.
- 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 la table sur un clone profond.