Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Puoi creare una copia completa e indipendente di una tabella gestita che utilizza Iceberg con DEEP CLONE. Un clone profondo copia sia i file dati che i metadati della tabella in una nuova tabella gestita usando Iceberg nel Catalogo Unity.
Le tabelle gestite che usano Iceberg supportano solo il clonaggio profondo. 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 |
|---|---|---|
| Tabella gestita usando Iceberg | Tabella gestita usando Iceberg |
DEEP CLONE. |
| Iceberg straniero | Tabella gestita usando Iceberg |
DEEP CLONE.
Vedi Clona una tabella Iceberg straniera in una tabella gestita usando 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 gestita usando Iceberg dai risultati delle query invece di clonare una tabella esistente, usa CREATE TABLE ... AS SELECT. Visualizza CREATE TABLE [UTILIZZANDO].
SHALLOW CLONE non è supportato per le tabelle Iceberg. Vedere Limitazioni.
Requisiti
Per clonare profondamente una tabella gestita usando Iceberg, hai bisogno di:
- Databricks Runtime 16.4 LTS o versione successiva.
-
SELECTprivilegi nella tabella di origine. - Se si sostituisce una tabella esistente,
CREATE TABLEi privilegi per lo schema di destinazione oMODIFYi privilegi nella tabella di destinazione. - Ottimizzazione predittiva abilitata nel catalogo o nello schema di destinazione.
Clona profondamente una tabella gestita usando Iceberg
Usa CREATE TABLE ... DEEP CLONE per copiare una tabella gestita usando Iceberg:
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 in una tabella gestita usando Iceberg
Puoi usarla DEEP CLONE per migrare una tabella Iceberg straniera in Unity Catalog come tabella gestita usando Iceberg. 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>;
Dopo il completamento del clone, la tabella target è una tabella completamente gestita utilizzando Iceberg nel Catalogo Unity, indipendente dal catalogo sorgente.
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
- Il clonaggio superficiale non è supportato per le tabelle gestite che usano Iceberg.
- Unity Catalog non supporta la conversione zero-copy di tabelle Iceberg straniere in tabelle gestite usando Iceberg. È 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. Il bersaglio è sempre una tabella gestita che utilizza Iceberg.
- Non è possibile impostare le proprietà della tabella durante la clonazione. Utilizzare
ALTER TABLE SET TBLPROPERTIESdopo che la clonazione profonda è stata completata. Vedere Impostare le proprietà della tabella in un clone completo.