Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Clone une table Delta source, une table Apache Iceberg gérée ou une table Apache Parquet vers un emplacement cible à une version spécifique. Le clonage peut être profond ou peu profond : les clones profonds copient les données, tandis que les clones peu profonds référencent les données sources sans les copier.
- Les tables Delta, Parquet et Iceberg Externe prennent en charge le clonage profond et peu profond.
- Les tables Iceberg managées prennent uniquement en charge le clonage profond et vous ne pouvez pas modifier le format de table pendant le clonage.
Pour plus d’informations, consultez Cloner de manière incrémentielle les tables Parquet et Apache Iceberg vers Delta Lake.
Dans Databricks SQL et Databricks Runtime 13.3 LTS et versions ultérieures, vous pouvez utiliser un clone superficiel avec des tables managées par Unity Catalog. Dans Databricks Runtime 12.2 LTS et versions ultérieures, il n’y a pas de prise en charge des clones superficiels dans Unity Catalog. Consultez Clone peu profond pour les tables de catalogue Unity.
Importante
Il existe des différences importantes entre les clones superficiels et les clones profond qui peuvent déterminer la meilleure manière de les utiliser. Consultez Cloner une table sur Azure Databricks.
Note
Les tables de diffusion en continu et les vues matérialisées ne sont pas prises en charge en tant que tables sources ou cibles pour CLONE. Consultez les limitations de la table de diffusion en continu et les limitations de la vue matérialisée.
Syntaxe
CREATE TABLE [IF NOT EXISTS] table_name
[SHALLOW | DEEP] CLONE source_table_name [TBLPROPERTIES clause] [LOCATION path]
[CREATE OR] REPLACE TABLE table_name
[SHALLOW | DEEP] CLONE source_table_name [TBLPROPERTIES clause] [LOCATION path]
Paramètres
SI N'EXISTE PAS
S’il est spécifié, l’instruction est ignorée si
table_nameexiste déjà.[CREATE OR] REMPLACER
Si
CREATE ORest spécifié, la table est remplacée si elle existe et créée si elle n’existe pas. SansCREATE OR,table_namedoit exister.-
Le nom de la table à créer. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options. Si le nom n’est pas qualifié, la table est créée dans le schéma actuel.
table_namene doit pas déjà exister, sauf siREPLACEouIF NOT EXISTSa été spécifié. SHALLOW CLONE ou DEEP CLONE
Si vous spécifiez
SHALLOW CLONE, Azure Databricks fera une copie de la définition de la table source, mais fera référence aux fichiers de la table source. Quand vous spécifiezDEEP CLONE(par défaut), Azure Databricks effectue une copie complète et indépendante de la table source.Les tables Iceberg managées prennent uniquement en charge le clonage profond, pas le clonage peu profond.
-
Nom de la table à cloner. Le nom peut inclure une spécification temporelle ou une spécification d’options.
-
Configure facultativement une ou plusieurs propriétés définies par l’utilisateur.
LOCATION chemin d’accès
Crée éventuellement une table externe, avec l’emplacement fourni en tant que chemin où les données sont stockées. S’il
table_names’agit d’un chemin d’accès au lieu d’un identificateur de table, l’opération échoue.pathdoit être un littéral STRING.
Exemples
Clone profond et clone peu profond une table Delta Lake :
-- Deep clone: copies data and metadata
CREATE TABLE target_catalog.target_schema.target_table
DEEP CLONE source_catalog.source_schema.source_table;
-- Shallow clone: copies metadata only, references source data files
CREATE TABLE target_catalog.target_schema.target_table
SHALLOW CLONE source_catalog.source_schema.source_table;
Cloner en profondeur une table Iceberg managée (seul le clonage profond est pris en charge) :
CREATE TABLE target_catalog.target_schema.target_table
DEEP CLONE source_catalog.source_schema.source_table;
Pour obtenir d’autres exemples de clone Delta Lake, notamment l’archivage des données et les flux de travail ML, consultez Cloner une table sur Azure Databricks. Pour obtenir des exemples de clones Iceberg plus managés, consultez Cloner une table Iceberg managée.
Limitations
- Dans le catalogue Unity, vous ne pouvez pas utiliser
CREATE OR REPLACEpour remplacer un clone peu profond existant. UtilisezDROP TABLEsuivi deCREATE TABLE, ou utilisez un nouveau nom de table. Consultez Limitations.