Clonar tabelas Delta

Você pode usar o comando delta lake CLONE em Microsoft Fabric para criar uma cópia de uma tabela Delta em um ponto específico no tempo. Um clone captura a tabela de origem como ela existe quando você executa o comando ou em uma versão anterior especificada com a sintaxe de viagem no tempo.

A clonagem é útil quando você deseja uma cópia segura de uma tabela para desenvolvimento, validação ou experimentação. A tabela de origem não é modificada e as alterações feitas no clone não afetam a tabela de origem.

O que o clone faz

Um clone cria a tabela Delta de destino a partir de um instantâneo da tabela Delta de origem. É possível:

  • Clonar a versão mais recente da tabela de origem
  • Clonar uma versão de tabela específica usando VERSION AS OF
  • Clonar um ponto específico no tempo usando TIMESTAMP AS OF

Como o clone é baseado em um instantâneo, ele não acompanha automaticamente as alterações feitas posteriormente na tabela de origem.

Clone superficial

Um clone superficial cria uma nova tabela Delta que faz referência aos arquivos de dados existentes da tabela de origem. O Delta Lake copia os metadados da tabela no momento do clone, mas não copia os arquivos de dados subjacentes para um novo armazenamento.

Use uma clonagem superficial quando precisar de uma cópia rápida, com uso eficiente de armazenamento, para trabalho de curta duração:

  • Criar um ambiente sandbox para desenvolvimento
  • Testar alterações de esquema ou transformação sem risco
  • Realize experimentos com dados semelhantes aos de produção
  • Criar cópias temporárias para solução de problemas
  • Criar instantâneos pontuais para validação

Um clone superficial é eficiente em armazenamento porque a origem e o clone compartilham os mesmos arquivos de dados do OneLake. Depois que o clone existir, as atualizações feitas para o clone criam novos arquivos para o clone e não alteram a tabela de origem.

Note

Somente SHALLOW CLONE é suportado no código aberto Delta Lake e Fabric. DEEP CLONE não está disponível.

Sintaxe

Use os seguintes padrões de sintaxe para criar clones de tabela Delta.

Clonar a versão atual

CREATE TABLE target_table SHALLOW CLONE source_table;

Clonar uma versão específica

CREATE TABLE target_table SHALLOW CLONE source_table VERSION AS OF 125;

Clonar a partir de um ponto no tempo

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

Substituir um clone existente

Use CREATE OR REPLACE TABLE para atualizar o destino do clone com um instantâneo mais recente:

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

Entenda o que é clonado

Componente Behavior
Arquivos de dados Referenciado a partir dos arquivos do OneLake da tabela de origem (não copiados).
Informações de partição Copiado.
Esquema Copiado.
Propriedades da tabela Copiado.
Dependência da fonte após a clonagem Sim — o clone depende de os arquivos de dados da origem permanecerem disponíveis.
Histórico do log Delta de origem Não é copiado para o histórico da tabela de destino. O clone inicia seu próprio log Delta.

Use o clone para cenários comuns

Use o clone da tabela Delta quando precisar:

  • Criar ambientes de teste para desenvolvimento
  • Testar alterações de esquema sem risco para a tabela de origem
  • Validar transformações com base em uma captura do ambiente de produção
  • Criar uma cópia de um determinado momento para depuração ou auditoria
  • Fornecer um instantâneo somente leitura para uma equipe downstream

Considerações do OneLake

Clones rasos compartilham arquivos do OneLake subjacentes com a tabela de origem. Esse design torna o clone superficial rápido e eficiente em termos de armazenamento, mas também significa que o clone depende de que os arquivos da tabela de origem continuem disponíveis.

Tenha cuidado ao executar VACUUM na tabela de origem. Se VACUUM remover arquivos de origem que um clone superficial ainda referencia, o clone pode falhar porque esses arquivos não estão mais disponíveis no OneLake.

Para criar uma cópia durável independente que sobreviva VACUUM na origem, considere copiar dados com uma gravação completa (CREATE TABLE ... AS SELECT) em vez de clonar.