Klona en hanterad tabell som använder Iceberg

Du kan skapa en fullständig, oberoende kopia av en hanterad tabell som använder Iceberg med DEEP CLONE. En djupklon kopierar både datafilerna och tabellmetadata till en ny hanterad tabell med hjälp av Iceberg i Unity Catalog.

Hanterade tabeller som använder Iceberg stödjer endast djupkloning. Ytlig kloning och formatkonvertering under kloning stöds inte.

Metoder för kloning av Iceberg-tabeller

Vilken kloningsåtgärd du använder beror på käll- och måltabelltyperna:

Source Target Operation
Hanterad tabell med Iceberg Hanterad tabell med Iceberg DEEP CLONE.
Utländska isberg Hanterad tabell med Iceberg DEEP CLONE. Se Klona en extern Iceberg-tabell till en hanterad tabell med Iceberg.
Parquet eller utländska isberg Hanterat eller extern Delta Lake Inkrementell kloning. Se även Stegvis klona Parquet- och Apache Iceberg-tabeller till Delta Lake.

För att skapa en hanterad tabell med Iceberg från frågeresultat istället för att klona en befintlig tabell, använd CREATE TABLE ... AS SELECT. Se CREATE TABLE [ANVÄNDA].

SHALLOW CLONE stöds inte för Iceberg-tabeller. Se Begränsningar.

Requirements

För att djupklona en hanterad tabell med Iceberg behöver du:

  • Databricks Runtime 16.4 LTS eller senare.
  • SELECT behörigheter för källtabellen.
  • Om du ersätter en befintlig tabell, CREATE TABLE behörigheter för målschemat eller MODIFY behörigheter i måltabellen.
  • Förutsägelseoptimering aktiverad i målkatalogen eller schemat.

Djupklona en hanterad tabell med Iceberg

Använd CREATE TABLE ... DEEP CLONE för att kopiera en hanterad tabell med Iceberg:

CREATE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

Så här ersätter du en befintlig måltabell:

CREATE OR REPLACE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

Så här skapar du endast målet om det inte redan finns:

CREATE TABLE IF NOT EXISTS <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;

CREATE TABLE CLONE Fullständig syntax finns i CREATE TABLE CLONE.

Arkivera en produktionstabell

Så här skapar du en oberoende ögonblicksbild av en produktionstabell i arkiverings- eller efterlevnadssyfte:

CREATE TABLE prod_catalog.archive.orders_snapshot_may2026
DEEP CLONE prod_catalog.main.orders;

Kopiera en tabell till en utvecklingsmiljö

Klona en produktionstabell till en utvecklingskatalog för säkra experiment utan att påverka produktionsdata:

CREATE OR REPLACE TABLE dev_catalog.test.orders
DEEP CLONE prod_catalog.main.orders;

Klona en främmande Iceberg-tabell till en hanterad tabell med Iceberg

Du kan använda DEEP CLONE den för att migrera en utländsk Iceberg-tabell till Unity Catalog som en hanterad tabell med Iceberg. Klonen kopierar alla data och metadata till Unity Catalog Storage. De ursprungliga filerna som hanteras av den externa katalogen återanvänds inte.

CREATE TABLE <uc-catalog>.<schema>.<target-table>
DEEP CLONE <foreign-catalog>.<schema>.<source-table>;

Efter att klonen är klar är måltabellen en fullt hanterad tabell med Iceberg i Unity Catalog, oberoende av källkatalogen.

Note

Migrering utan kopiering från en extern katalog stöds inte. Se Begränsningar.

Ställ in tabellegenskaper på en djupkopia

Du kan inte ange egenskaper för Iceberg-tabeller i DEEP CLONE-satsen. Om du vill lägga till eller åsidosätta egenskaper i den klonade tabellen använder du ALTER TABLE SET TBLPROPERTIES när klonen har slutförts.

Om du till exempel vill ange anpassade egenskaper för att registrera källan för en klon som används som en ögonblicksbild:

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'
);

Kloningsbeteende

Viktiga överväganden för djupkloningsbeteende:

  • En djup klon är en fullständig, oberoende kopia av källtabellen. Ändringar i klonen påverkar inte källan och ändringar i källan påverkar inte klonen.
  • En djupklon har en oberoende historik över ögonblicksbilder. Tidsresor på klonen använder klonens historik, inte källans historik.
  • Schemat, partitioneringsinformationen och tabellegenskaperna kopieras till den djupa klonen. Unity-katalogtaggar kopieras inte.
  • Efter att klonen har skapats hanteras den självständigt av Unity Catalog med prediktiv optimering.

Begränsningar

  • Ytlig kloning stöds inte för hanterade tabeller med Iceberg.
  • Unity Catalog stöder inte nollkopieringskonvertering av utländska Iceberg-tabeller till hanterade tabeller med Iceberg. Du måste använda DEEP CLONE. Alla data kopieras till Unity Catalog-lagring under kloningen.
  • Djupa kloner kopierar inte tabellhistorik, vilket påverkar frågor om tidsresor.
  • Du kan inte ändra tabellformatet under kloningen. Målet är alltid en hanterad tabell som använder Iceberg.
  • Du kan inte ange tabellegenskaper under kloningen. Använd ALTER TABLE SET TBLPROPERTIES när den djupa kloningen har slutförts. Se Ange tabellegenskaper på en djup klon.