CREATE TABLE CLONE

S’applique à :case marquée oui Databricks SQL case marquée oui 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_name existe déjà.

  • [CREATE OR] REMPLACER

    Si CREATE OR est spécifié, la table est remplacée si elle existe et créée si elle n’existe pas. Sans CREATE OR, table_name doit exister.

  • table_name

    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_name ne doit pas déjà exister, sauf si REPLACE ou IF NOT EXISTS a é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écifiez DEEP 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.

  • source_table_name

    Nom de la table à cloner. Le nom peut inclure une spécification temporelle ou une spécification d’options.

  • TBLPROPERTIES

    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_name s’agit d’un chemin d’accès au lieu d’un identificateur de table, l’opération échoue. path doit ê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 REPLACE pour remplacer un clone peu profond existant. Utilisez DROP TABLE suivi de CREATE TABLE, ou utilisez un nouveau nom de table. Consultez Limitations.