Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Pode criar uma cópia completa e independente de uma tabela Iceberg gerida usando DEEP CLONE. Um clone profundo copia tanto os ficheiros de dados como os metadados da tabela para uma nova tabela Iceberg gerida no Unity Catalog.
As tabelas Iceberg geridas suportam apenas clonagem profunda. Clonagem superficial e conversão de formatos durante a clonagem não são suportadas.
Métodos de clonagem de tabelas Iceberg
A operação de clonagem que usa depende dos tipos de tabelas de origem e alvo:
| Fonte | Target | Operation |
|---|---|---|
| Iceberg gerenciado | Iceberg gerenciado |
DEEP CLONE. |
| Iceberg estrangeiro | Iceberg gerenciado |
DEEP CLONE. Veja Clonar uma tabela estrangeira de Iceberg para Iceberg gerido. |
| Parquet ou Iceberg estrangeiro | Lago Delta gerido ou externo | Clonagem incremental Veja Clonagem incremental de tabelas Parquet e Apache Iceberg para Delta Lake. |
Para criar uma tabela Iceberg gerida a partir dos resultados da consulta, em vez de clonar uma tabela existente, use CREATE TABLE ... AS SELECT. Ver CREATE TABLE [UTILIZANDO].
SHALLOW CLONE não é suportado para tabelas Iceberg. Consulte Limitações.
Requirements
Para clonar profundamente uma tabela Iceberg gerida, é necessário:
- Databricks Runtime 16.4 LTS ou superior.
-
SELECTprivilégios na tabela de origem. - Se estiver a substituir uma tabela existente, privilégios
CREATE TABLEno esquema de destino ou privilégiosMODIFYna tabela de destino. - Otimização preditiva ativada no catálogo ou esquema alvo.
Efetuar a clonagem profunda de uma tabela Iceberg gerida
Utilize CREATE TABLE ... DEEP CLONE para copiar uma tabela Iceberg gerida:
CREATE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Para substituir uma tabela alvo existente:
CREATE OR REPLACE TABLE <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Para criar o alvo apenas se este ainda não existir:
CREATE TABLE IF NOT EXISTS <catalog>.<schema>.<target-table>
DEEP CLONE <catalog>.<schema>.<source-table>;
Para sintaxe completa CREATE TABLE CLONE , veja CREATE TABLE CLONE.
Arquivar uma tabela de produção
Para criar um instantâneo independente de uma tabela de produção para fins de arquivo ou conformidade:
CREATE TABLE prod_catalog.archive.orders_snapshot_may2026
DEEP CLONE prod_catalog.main.orders;
Copiar uma tabela para um ambiente de desenvolvimento
Para clonar uma tabela de produção num catálogo de desenvolvimento para experimentação segura sem afetar os dados de produção:
CREATE OR REPLACE TABLE dev_catalog.test.orders
DEEP CLONE prod_catalog.main.orders;
Clonar uma tabela Iceberg externa para tabela Iceberg gerida
Podes usar DEEP CLONE para migrar uma tabela Iceberg estrangeira para o Unity Catalog como uma tabela Iceberg gerida. O clone copia todos os dados e metadados para o armazenamento do Unity Catalog. Os ficheiros originais geridos pelo catálogo externo não são reutilizados.
CREATE TABLE <uc-catalog>.<schema>.<target-table>
DEEP CLONE <foreign-catalog>.<schema>.<source-table>;
Após a conclusão da clonagem, a tabela de destino é uma tabela Iceberg totalmente gerida no Unity Catalog, independente do catálogo de origem.
Note
A migração sem cópias a partir de um catálogo estrangeiro não é suportada. Consulte Limitações.
Propriedades de tabela definida num clone profundo
Não podes definir propriedades da tabela Iceberg na DEEP CLONE instrução. Para adicionar ou sobrescrever propriedades na tabela clonada, use ALTER TABLE SET TBLPROPERTIES depois de a clonagem estar concluída.
Por exemplo, para definir propriedades personalizadas para registar a origem de um clone usado como 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 do clone
Considerações importantes para o comportamento profundo dos clones:
- Um clone profundo é uma cópia completa e independente da tabela fonte. As alterações ao clone não afetam a fonte, e as alterações à fonte não afetam o clone.
- Um clone profundo dispõe de um histórico de instantâneos independente. A viagem temporal num clone usa o histórico do clone, não o histórico da origem.
- O esquema, a informação de partição e as propriedades da tabela são copiados para o clone profundo. As etiquetas do Unity Catalog não são copiadas.
- Após a criação, o Unity Catalog gere o clone de forma independente com otimização preditiva.
Limitações
- Clonagem superficial não é suportada para tabelas Iceberg geridas.
- O Unity Catalog não suporta a conversão zero-copy de tabelas Iceberg estrangeiras para tabelas Iceberg geridas. Você deve usar
DEEP CLONE. Todos os dados são copiados para o armazenamento do Catálogo Unity durante a operação de clonagem. - As clonagens profundas não copiam o histórico de tabelas, o que afeta as consultas de viagem temporal.
- Não podes mudar o formato da tabela durante a clonagem. O alvo é sempre uma tabela Iceberg gerida.
- Não podes definir as propriedades da tabela durante a clonagem. Use
ALTER TABLE SET TBLPROPERTIESapós a conclusão da clonagem profunda. Veja Definir propriedades da tabela num clone profundo.