Clonare una tabella Iceberg gestita

È possibile creare una copia completa e indipendente di una tabella Iceberg gestita usando DEEP CLONE. Un clone completo copia sia i file di dati che i metadati della tabella in una nuova tabella Iceberg gestita in Unity Catalog.

Le tabelle Iceberg gestite supportano solo la clonazione approfondita. La clonazione superficiale e la conversione del formato durante la clonazione non sono supportate.

Metodi di clonazione per le tabelle Iceberg

L'operazione di clonazione usata dipende dai tipi di tabella di origine e di destinazione:

origine Obiettivo Operation
Gestione di Iceberg Gestione di Iceberg DEEP CLONE.
Iceberg straniero Gestione di Iceberg DEEP CLONE. Vedere Clonare una tabella Iceberg esterna per gestire Iceberg.
Parquet o iceberg esterno Delta Lake gestito o esterno Clone incrementale. Vedere Clonare in modo incrementale tabelle Parquet e Apache Iceberg in Delta Lake.

Per creare una tabella Iceberg gestita dai risultati della query anziché clonare una tabella esistente, usare CREATE TABLE ... AS SELECT. Visualizza CREATE TABLE [UTILIZZANDO].

SHALLOW CLONE non è supportato per le tabelle Iceberg. Vedere Limitazioni.

Requisiti

Per clonare in modo completo una tabella Iceberg gestita, è necessario:

  • Databricks Runtime 16.4 LTS o versione successiva.
  • SELECT privilegi nella tabella di origine.
  • Se si sostituisce una tabella esistente, CREATE TABLE i privilegi per lo schema di destinazione o MODIFY i privilegi nella tabella di destinazione.
  • Ottimizzazione predittiva abilitata nel catalogo o nello schema di destinazione.

Clonare in modo approfondito una tabella Iceberg gestita

Usare CREATE TABLE ... DEEP CLONE per copiare una tabella Iceberg gestita:

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

Per sostituire una tabella di destinazione esistente:

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

Per creare la destinazione solo se non esiste già:

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

Per la sintassi completa CREATE TABLE CLONE , vedere CREATE TABLE CLONE.

Archiviare una tabella di produzione

Per creare uno snapshot indipendente di una tabella di produzione per scopi di archiviazione o conformità:

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

Copiare una tabella in un ambiente di sviluppo

Per clonare una tabella di produzione in un catalogo di sviluppo per la sperimentazione sicura senza influire sui dati di produzione:

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

Clonare una tabella Iceberg esterna per gestire Iceberg

È possibile usare DEEP CLONE per eseguire la migrazione di una tabella Iceberg esterna in Unity Catalog come tabella Iceberg gestita. Il clone copia tutti i dati e i metadati nell'archiviazione del catalogo Unity. I file originali gestiti dal catalogo esterno non vengono riutilizzati.

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

Al termine del clone, la tabella di destinazione è una tabella Iceberg completamente gestita in Unity Catalog, indipendentemente dal catalogo di origine.

Note

La migrazione senza copia da un catalogo esterno non è supportata. Vedere Limitazioni.

Impostare le proprietà della tabella in un clone completo

Non è possibile impostare le proprietà della tabella Iceberg nell'istruzione DEEP CLONE . Per aggiungere o eseguire l'override delle proprietà nella tabella clonata, usare ALTER TABLE SET TBLPROPERTIES dopo il completamento del clone.

Ad esempio, per impostare proprietà personalizzate per registrare l'origine di un clone usato come snapshot:

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

Comportamento di clonazione

Considerazioni importanti per il comportamento di clonazione approfondita:

  • Un clone profondo è una copia completa e indipendente della tabella di origine. Le modifiche apportate al clone non influiscono sull'origine e le modifiche apportate all'origine non influiscono sul clone.
  • Un clone profondo ha una cronologia delle snapshot indipendente. Il viaggio nel tempo del clone usa la cronologia del clone, non la cronologia dell'origine.
  • Lo schema, le informazioni di partizionamento e le proprietà della tabella vengono copiati nel clone profondo. I tag del catalogo Unity non vengono copiati.
  • Dopo la creazione, Unity Catalog gestisce il clone in modo indipendente con l'ottimizzazione predittiva.

Limitazioni

  • La clonazione superficiale non è supportata per le tabelle Iceberg gestite.
  • Il catalogo unity non supporta la conversione zero-copy delle tabelle iceberg esterne in tabelle Iceberg gestite. È necessario usare DEEP CLONE. Tutti i dati vengono copiati nell'archiviazione di Unity Catalog durante l'operazione di clonazione.
  • I cloni profondi non copiano la cronologia delle tabelle, che influiscono sulle query di spostamento del tempo.
  • Non è possibile modificare il formato della tabella durante la clonazione. La destinazione è sempre una tabella Iceberg gestita.
  • Non è possibile impostare le proprietà della tabella durante la clonazione. Utilizzare ALTER TABLE SET TBLPROPERTIES dopo che la clonazione profonda è stata completata. Vedere Impostare le proprietà della tabella in un clone completo.