Clonare le tabelle Delta

È possibile usare il comando Delta Lake CLONE in Microsoft Fabric per creare una copia di una tabella Delta in un momento specifico. Un clone acquisisce la tabella di origine come esiste quando si esegue il comando o in una versione precedente specificata con la sintassi di spostamento temporale.

La clonazione è utile quando si vuole una copia sicura di una tabella per lo sviluppo, la convalida o la sperimentazione. La tabella di origine non viene modificata e le modifiche apportate al clone non influiscono sulla tabella di origine.

Che cosa fa il clone

Una clonazione crea una tabella Delta di destinazione a partire da uno snapshot della tabella Delta di origine. È possibile:

  • Clonare la versione più recente della tabella di origine
  • Clonare una versione di tabella specifica usando VERSION AS OF
  • Clonare un punto specifico nel tempo usando TIMESTAMP AS OF

Poiché il clone è basato su uno snapshot, non tiene traccia automaticamente delle modifiche successive nella tabella di origine.

Clone superficiale

Un clone superficiale crea una nuova tabella Delta che fa riferimento ai file di dati esistenti della tabella di origine. Delta Lake copia i metadati della tabella in fase di clonazione, ma non copia i file di dati sottostanti in una nuova risorsa di archiviazione.

Usa un clone superficiale quando ti serve una copia rapida che richiede poco spazio di archiviazione per attività di breve durata:

  • Creare una sandbox per lo sviluppo
  • Testare le modifiche dello schema o della trasformazione senza rischi
  • Eseguire esperimenti su dati simili alla produzione
  • Creare copie temporanee per la risoluzione dei problemi
  • Crea snapshot puntuali per la validazione

Un clone superficiale è efficiente per l'archiviazione perché l'origine e il clone condividono gli stessi file di dati OneLake. Dopo l'esistenza del clone, gli aggiornamenti apportati al clone creano nuovi file per il clone e non modificano la tabella di origine.

Note

Solo SHALLOW CLONE è supportato in Delta Lake e Fabric open source. DEEP CLONE non è disponibile.

Sintassi

Usare i modelli di sintassi seguenti per creare cloni di tabella Delta.

Clonare la versione corrente

CREATE TABLE target_table SHALLOW CLONE source_table;

Clonare una versione specifica

CREATE TABLE target_table SHALLOW CLONE source_table VERSION AS OF 125;

Clonare da un punto nel tempo

CREATE TABLE target_table SHALLOW CLONE source_table TIMESTAMP AS OF '2026-05-18T08:30:00Z';

Sostituire un clone esistente

Usare CREATE OR REPLACE TABLE per aggiornare una destinazione clone con uno snapshot più recente:

CREATE OR REPLACE TABLE sandbox.sales_orders_test
SHALLOW CLONE operations.sales_orders;

Capire cosa viene clonato

Componente Behavior
File di dati Con riferimento ai file OneLake della tabella di origine (non copiati).
Informazioni sulla partizione Copiato.
Schema Copiato.
Proprietà delle tabelle Copiato.
Dipendenza dall'origine dopo la clonazione Sì: il clone dipende dai file di dati dell'origine rimanenti disponibili.
Cronologia del log delta di origine Non viene copiato nella cronologia della tabella di destinazione. Il clone avvia il proprio log Delta.

Usare il clone per scenari comuni

Usare il clone di tabella Delta quando è necessario:

  • Creare ambienti sandbox per lo sviluppo
  • Testare le modifiche dello schema senza rischi per la tabella di origine
  • Convalidare le trasformazioni rispetto a uno snapshot di produzione
  • Creare una copia point-in-time per il debug o la verifica
  • Fornire uno snapshot di sola lettura per un team downstream

Considerazioni su OneLake

I cloni superficiali condividono i file OneLake sottostanti con la tabella di origine. Questo design rende lo shallow clone rapido ed efficiente in termini di spazio di archiviazione, ma significa anche che il clone dipende dal fatto che i file della tabella di origine restino disponibili.

Prestare attenzione quando si esegue VACUUM nella tabella di origine. Se VACUUM rimuove i file di origine a cui fa ancora riferimento un clone superficiale, il clone può interrompersi perché tali file non sono più disponibili in OneLake.

Per creare una copia indipendente durevole che sopravvive VACUUM all'origine, è consigliabile copiare i dati con una scrittura completa (CREATE TABLE ... AS SELECT) anziché clonare.