CREATE TABLE CLONE

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime

Klonuje zdrojovou tabulku Delta, Apache Iceberg nebo spravovanou tabulku Apache Parquet do cílového umístění v konkrétní verzi. Klonování může být buď hluboké, nebo mělké: hluboké klony kopírují data, zatímco mělké klony odkazují na zdrojová data bez jejich kopírování.

  • Tabulky Delta, Parquet a Foreign Iceberg podporují hluboké i mělké klonování.
  • Spravované tabulky Iceberg podporují pouze hloubkové klonování a během klonování nemůžete změnit formát tabulky.

Další informace najdete v tématu Přírůstkové klonování tabulek Parquet a Apache Iceberg do Delta Lake.

Ve službě Databricks SQL a Databricks Runtime 13.3 LTS a novějších můžete u spravovaných tabulek katalogu Unity použít funkci mělkého klonování. V Databricks Runtime 12.2 LTS a níže neexistuje žádná podpora pro mělké klony v katalogu Unity. Viz Shallow clone pro tabulky Unity Catalog.

Důležité

Mezi mělkými a hlubokými klony existují důležité rozdíly, které určují, jak je nejlépe používat. Viz Klonování tabulky ve službě Azure Databricks.

Note

Streamované tabulky a materializovaná zobrazení nejsou podporovány jako zdrojové nebo cílové tabulky pro CLONE. Viz omezení tabulek streamování a materializovaná omezení zobrazení.

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]

Parametry

  • POKUD NEEXISTUJE

    Pokud je zadáno, příkaz je ignorován, pokud table_name již existuje.

  • [VYTVOŘIT NEBO] NAHRADIT

    Pokud CREATE OR je zadána tabulka je nahrazena, pokud existuje a nově vytvořená, pokud neexistuje. Bez CREATE OR musí table_name existovat.

  • table_name

    Název tabulky, kterou chcete vytvořit. Název nesmí obsahovat dočasnou specifikaci ani specifikaci možností. Pokud název není kvalifikovaný, vytvoří se tabulka v aktuálním schématu. table_name nesmí již existovat, pokud nebyl zadán REPLACE nebo IF NOT EXISTS.

  • MĚLKÝ KLON nebo HLUBOKÝ KLON

    Pokud zadáte SHALLOW CLONE, Azure Databricks vytvoří kopii definice zdrojové tabulky, ale bude odkazovat na soubory zdrojové tabulky. Když zadáte DEEP CLONE (výchozí), Azure Databricks vytvoří úplnou a nezávislou kopii zdrojové tabulky.

    Spravované tabulky Iceberg podporují pouze hloubkové klonování, ne mělké klonování.

  • source_table_name

    Název tabulky, která se má naklonovat. Název může obsahovat dočasnou specifikaci nebo specifikaci možností.

  • TBLPROPERTIES

    Volitelně nastaví jednu nebo více uživatelem definovaných vlastností.

  • Cesta k umístění

    Volitelně můžete vytvořit externí tabulku s určenou cestou, kam se data ukládají. Pokud table_name sama o sobě je cesta místo identifikátoru tabulky, operace selže. path musí být literál STRING.

Příklady

Hluboké klonování a mělké klonování tabulky 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;

Hloubkové klonování spravované tabulky Iceberg (podporuje se pouze hloubkové klonování):

CREATE TABLE target_catalog.target_schema.target_table
DEEP CLONE source_catalog.source_schema.source_table;

Další příklady klonování Delta Lake, včetně archivace dat a pracovních postupů ML, najdete v tématu Klonování tabulky v Azure Databricks. Další spravované příklady klonování Icebergu najdete v tématu Klonování spravované tabulky Iceberg.

Limitations

  • V Unity Catalogu nemůžete použít CREATE OR REPLACE k přepsání existujícího mělkého klonu. Použijte DROP TABLE následovaný CREATE TABLEnebo použijte nový název tabulky. Viz Omezení.