Clonar una tabla de Iceberg administrada

Puede crear una copia completa e independiente de una tabla de Iceberg administrada mediante DEEP CLONE. Una clonación profunda copia tanto los archivos de datos como los metadatos de la tabla a una nueva tabla Iceberg administrada en Unity Catalog.

Las tablas Iceberg administradas solo admiten la clonación profunda. No se admite la clonación superficial ni la conversión de formato durante la clonación.

Métodos de clonación para tablas Iceberg

La operación de clonación que use depende de los tipos de tabla de origen y de destino:

Source Objetivo Operation
Iceberg administrado Iceberg administrado DEEP CLONE.
Iceberg Extranjero Iceberg administrado DEEP CLONE. Consulte Clonar una tabla Iceberg externa a Iceberg administrado.
Parquet o Iceberg externo Delta Lake administrado o externo Clon incremental. Consulte Clonar incrementalmente tablas de Parquet y Apache Iceberg a Delta Lake.

Para crear una tabla de Iceberg administrada a partir de los resultados de la consulta en lugar de clonar una tabla existente, use CREATE TABLE ... AS SELECT. Consulte CREATE TABLE [USING].

SHALLOW CLONE no es compatible con las tablas Iceberg. Consulte Limitaciones.

Requirements

Para clonar en profundidad una tabla de Iceberg administrada, necesita lo siguiente:

  • Databricks Runtime 16.4 LTS o superior.
  • SELECT privilegios en la tabla de origen.
  • Si va a reemplazar una tabla existente, se necesitan privilegios CREATE TABLE sobre el esquema de destino o privilegios MODIFY sobre la tabla de destino.
  • Optimización predictiva habilitada en el catálogo o esquema de destino.

Clonar en profundidad una tabla Iceberg administrada

Use CREATE TABLE ... DEEP CLONE para copiar una tabla de Iceberg administrada:

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

Para reemplazar una tabla de destino existente:

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

Para crear el destino solo si aún no existe:

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

Para obtener una sintaxis completa CREATE TABLE CLONE , vea CREATE TABLE CLONE.

Archivar una tabla de producción

Para crear una instantánea independiente de una tabla de producción con fines de archivado o cumplimiento:

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

Copiar una tabla en un entorno de desarrollo

Para clonar una tabla de producción en un catálogo de desarrollo para experimentación segura sin afectar a los datos de producción:

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

Clonar una tabla Iceberg externa en Iceberg administrado

Puede usar DEEP CLONE para migrar una tabla externa de Iceberg al catálogo de Unity como una tabla de Iceberg administrada. El clon copia todos los datos y metadatos en el almacenamiento del catálogo de Unity. Los archivos originales administrados por el catálogo externo no se reutilizan.

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

Una vez completada la clonación, la tabla de destino es una tabla Iceberg totalmente administrada en Unity Catalog, independiente del catálogo de origen.

Nota:

No se admite la migración de copia cero desde un catálogo externo. Consulte Limitaciones.

Establecimiento de propiedades de tabla en un clon profundo

No se pueden establecer propiedades de tabla de Iceberg en la instrucción DEEP CLONE. Para agregar o invalidar propiedades en la tabla clonada, use ALTER TABLE SET TBLPROPERTIES una vez completado el clon.

Por ejemplo, para establecer propiedades personalizadas para registrar el origen de un clon utilizado como instantánea:

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

Comportamiento del clon

Consideraciones importantes sobre el comportamiento de la clonación profunda:

  • Un clon profundo es una copia completa e independiente de la tabla de origen. Los cambios en el clon no afectan al origen y los cambios en el origen no afectan al clon.
  • Un clon profundo tiene un historial de instantáneas independiente. El viaje temporal en un clon usa el historial del clon, no el de la fuente.
  • El esquema, la información de creación de particiones y las propiedades de tabla se copian en el clon profundo. Las etiquetas del catálogo de Unity no se copian.
  • Después de su creación, Unity Catalog gestiona el clon de forma independiente con optimización predictiva.

Limitaciones

  • La clonación superficial no se admite para las tablas de Iceberg administradas.
  • Unity Catalog no admite la conversión sin copia de tablas Iceberg externas a tablas Iceberg administradas. Debe usar DEEP CLONE. Todos los datos se copian en el almacenamiento del catálogo de Unity durante la operación de clonación.
  • Las clonaciones profundas no copian el historial de la tabla, lo que afecta a las consultas de viaje en el tiempo.
  • No se puede cambiar el formato de tabla durante la clonación. El destino siempre es una tabla de Iceberg administrada.
  • No se pueden establecer propiedades de tabla durante la clonación. Use ALTER TABLE SET TBLPROPERTIES después de que se complete la clonación profunda. Consulte Establecer propiedades de tabla en un clon profundo.