Klone eine verwaltete Tabelle, die Iceberg verwendet

Du kannst eine vollständige, unabhängige Kopie einer verwalteten Tabelle erstellen, die Iceberg mit DEEP CLONEverwendet. Ein Deep-Clone kopiert sowohl die Datendateien als auch die Tabellenmetadaten in eine neue verwaltete Tabelle mit Iceberg in Unity Catalog.

Verwaltete Tabellen, die Iceberg verwenden, unterstützen nur tiefes Klonen. Flaches Klonen und Formatkonvertierung beim Klonen werden nicht unterstützt.

Klonmethoden für Iceberg-Tabellen

Der von Ihnen verwendete Klonvorgang hängt von den Quell- und Zieltabellentypen ab:

Source Target Operation
Verwaltete Tabelle mit Iceberg Verwaltete Tabelle mit Iceberg DEEP CLONE.
Fremde Eisberge Verwaltete Tabelle mit Iceberg DEEP CLONE. Siehe Klonen einer externen Iceberg-Tabelle in eine verwaltete Tabelle mit Iceberg.
Parquet oder fremder Iceberg Verwaltetes oder externes Delta Lake Inkrementelles Klonen. Siehe Inkrementelles Klonen von Parquet- und Apache Iceberg-Tabellen auf Delta Lake.

Um mithilfe von Iceberg aus Abfrageergebnissen eine verwaltete Tabelle zu erstellen, anstelle des Klonens einer vorhandenen Tabelle, verwenden Sie CREATE TABLE ... AS SELECT. Siehe CREATE TABLE [USING].

SHALLOW CLONE wird für Iceberg-Tabellen nicht unterstützt. Informationen finden Sie unter Einschränkungen.

Requirements

Um eine verwaltete Tabelle mit Iceberg tief zu klonieren, benötigen Sie:

  • Databricks Runtime 16.4 LTS oder höher.
  • SELECT Berechtigungen für die Quelltabelle.
  • Falls eine vorhandene Tabelle ersetzt wird, Berechtigungen CREATE TABLE für das Zielschema oder Berechtigungen MODIFY für die Zieltabelle.
  • Die Vorhersageoptimierung ist im Zielkatalog oder -schema aktiviert.

Erstellen Sie mit Iceberg einen Deep Clone einer verwalteten Tabelle

Verwendung CREATE TABLE ... DEEP CLONE zum Kopieren einer verwalteten Tabelle mit Iceberg:

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

So ersetzen Sie eine vorhandene Zieltabelle:

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

Erstellen Sie das Ziel nur, falls es noch nicht vorhanden ist:

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

Vollständige CREATE TABLE CLONE Syntax finden Sie unter CREATE TABLE CLONE.

Archiv einer Produktionstabelle

So erstellen Sie eine unabhängige Momentaufnahme einer Produktionstabelle für Archivierungs- oder Compliancezwecke:

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

Kopieren einer Tabelle in eine Entwicklungsumgebung

So klonen Sie eine Produktionstabelle in einen Entwicklungskatalog für sichere Experimente ohne Auswirkungen auf Produktionsdaten:

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

Klonen einer externen Iceberg-Tabelle in eine verwaltete Tabelle mithilfe von Iceberg

Sie können DEEP CLONE verwenden, um eine externe Iceberg-Tabelle als verwaltete Tabelle mit Iceberg in Unity Catalog zu migrieren. Der Klon kopiert alle Daten und Metadaten in den Unity-Katalogspeicher. Die ursprünglichen Dateien, die vom externen Katalog verwaltet werden, werden nicht wiederverwendet.

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

Nach Abschluss des Klons ist die Zieltabelle eine vollständig verwaltete Tabelle, die Iceberg in Unity Catalog verwendet und unabhängig vom Quellverzeichnis ist.

Note

Die Zero-Copy-Migration aus einem fremden Katalog wird nicht unterstützt. Informationen finden Sie unter Einschränkungen.

Legen Sie Tabelleneigenschaften bei einem Deep Clone fest

Sie können Iceberg-Tabelleneigenschaften in der Anweisung DEEP CLONE nicht festlegen. Verwenden Sie ALTER TABLE SET TBLPROPERTIES nach Abschluss des Klonvorgangs, um Eigenschaften der geklonten Tabelle hinzuzufügen oder zu überschreiben.

So legen Sie beispielsweise benutzerdefinierte Eigenschaften fest, um die Quelle eines Klons aufzuzeichnen, der als Momentaufnahme verwendet wird:

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

Klonverhalten

Wichtige Überlegungen zum Verhalten beim tiefen Klonen:

  • Ein Deep Clone ist eine vollständige, unabhängige Kopie der Quelltabelle. Änderungen am Klon wirken sich nicht auf die Quelle aus, und Änderungen an der Quelle wirken sich nicht auf den Klon aus.
  • Ein Deep Clone hat einen unabhängigen Snapshotverlauf. Zeitreisen auf dem Klon verwenden die Geschichte des Klons, nicht die Geschichte der Quelle.
  • Die Schema-, Partitionierungsinformationen und Tabelleneigenschaften werden in den Deep Clone kopiert. Unity-Katalogtags werden nicht kopiert.
  • Nach der Erstellung verwaltet Unity Catalog den Klon eigenständig mit prädiktiver Optimierung.

Einschränkungen

  • Flaches Klonen wird bei verwalteten Tabellen, die Iceberg verwenden, nicht unterstützt.
  • Unity Catalog unterstützt keine Zero-Copy-Konvertierung fremder Iceberg-Tabellen in verwaltete Tabellen mit Iceberg. Sie müssen DEEP CLONE verwenden. Alle Daten werden während des Klonvorgangs in den Unity-Katalogspeicher kopiert.
  • Tiefe Klone kopieren den Tabellenverlauf nicht, was sich auf Time-Travel-Abfragen auswirkt.
  • Sie können das Tabellenformat während des Klonens nicht ändern. Das Ziel ist immer eine verwaltete Tabelle mit Iceberg.
  • Sie können während des Klonens keine Tabelleneigenschaften festlegen. Verwenden Sie ALTER TABLE SET TBLPROPERTIES, nachdem der Deep Clone abgeschlossen ist. Siehe Festlegen von Tabelleneigenschaften für einen Deep Clone.