Клонируйте управляемую таблицу, использующую Iceberg

Вы можете создать полную, независимую копию управляемой таблицы, использующую Iceberg с DEEP CLONE. Глубокий клон копирует как файлы данных, так и метаданные таблицы в новую управляемую таблицу с помощью Iceberg в Unity Catalog.

Управляемые таблицы с помощью Iceberg поддерживают только глубокое клонирование. Не поддерживается мелкое клонирование и преобразование форматирования во время клонирования.

Методы клонирования для таблиц Айсберга

Используемая операция клонирования зависит от типов исходной и целевой таблиц:

Source Цель Операция
Управляемая таблица с использованием Iceberg Управляемая таблица с использованием Iceberg DEEP CLONE.
Чужеземный Айсберг Управляемая таблица с использованием Iceberg DEEP CLONE. См. Клонирование внешней таблицы Iceberg в управляемую таблицу с помощью Iceberg.
Parquet или зарубежный Айсберг Управляемое или внешнее Delta Lake Инкрементное клонирование. См. инкрементное клонирование таблиц Parquet и Apache Iceberg в Delta Lake.

Чтобы создать управляемую таблицу с использованием Iceberg из результатов запроса вместо клонирования существующей таблицы, используйте CREATE TABLE ... AS SELECT. См. CREATE TABLE [ИСПОЛЬЗОВАНИЕ].

SHALLOW CLONE не поддерживается для таблиц Айсберга. См. Ограничения.

Requirements

Чтобы глубоко клонировать управляемую таблицу с помощью Iceberg, нужно:

  • Databricks Runtime 16.4 LTS или более поздней версии.
  • SELECT привилегии в исходной таблице.
  • При замене существующей таблицы требуются привилегии CREATE TABLE на целевую схему или привилегии MODIFY на целевую таблицу.
  • Прогнозная оптимизация включена в целевом каталоге или схеме.

Создать глубокий клон управляемой таблицы с помощью Iceberg

Используйте CREATE TABLE ... DEEP CLONE, чтобы скопировать управляемую таблицу с помощью Iceberg:

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

Чтобы заменить существующую целевую таблицу, выполните следующее:

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

Создавайте целевой объект, только если он ещё не существует:

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

Полный CREATE TABLE CLONE синтаксис см. в разделе CREATE TABLE CLONE.

Архивация рабочей таблицы

Чтобы создать независимый моментальный снимок рабочей таблицы для архивации или соответствия требованиям:

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

Копирование таблицы в среду разработки

Чтобы клонировать рабочую таблицу в каталог разработки для безопасного экспериментирования, не затрагивая рабочие данные:

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

Клонируйте внешнюю таблицу Iceberg в управляемую таблицу с использованием Iceberg

Вы можете использовать DEEP CLONE, чтобы мигрировать внешнюю таблицу Iceberg в Unity Catalog в качестве управляемой таблицы с использованием Iceberg. Клон копирует все данные и метаданные в хранилище каталога Unity. Исходные файлы, управляемые внешним каталогом, не будут повторно использованы.

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

После завершения клона целевая таблица становится полностью управляемой таблицей с использованием Iceberg в Unity Catalog, независимо от исходного каталога.

Замечание

Миграция без копирования из внешнего каталога не поддерживается. См. Ограничения.

Установить свойства таблицы для глубокой копии

Нельзя задать свойства таблицы Айсберга в инструкции DEEP CLONE . Чтобы добавить или переопределить свойства в клонированную таблицу, используйте ALTER TABLE SET TBLPROPERTIES после завершения клонирования.

Например, чтобы задать пользовательские свойства, фиксирующие источник клона, используемого как снимок:

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

Поведение клонирования

Важные аспекты поведения глубокого клонирования:

  • Глубокое клонирование — это полная и независимая копия исходной таблицы. Изменения клона не влияют на источник, а изменения в источнике не влияют на клон.
  • Глубокий клон имеет независимый журнал моментальных снимков. При перемещении во времени на клоне используется история клона, а не история источника.
  • Схемы, сведения о секционировании и свойства таблицы копируются в глубокий клон. Теги каталога Unity не копируются.
  • После создания каталог Unity управляет клоном независимо с помощью прогнозной оптимизации.

Ограничения

  • Поверхностное клонирование не поддерживается для управляемых таблиц с использованием Iceberg.
  • Unity Catalog не поддерживает нулевое копирование иностранных таблиц Iceberg в управляемые таблицы с использованием Iceberg. Необходимо использовать DEEP CLONE. Все данные копируются в хранилище каталога Unity во время операции клонирования.
  • Глубокие клоны не копируют историю таблицы, что влияет на запросы с перемещением во времени.
  • Невозможно изменить формат таблицы во время клонирования. Цель всегда — управляемая таблица с использованием Iceberg.
  • Нельзя задать свойства таблицы во время клонирования. Используйте ALTER TABLE SET TBLPROPERTIES после завершения глубокого копирования. См. Установка свойств таблицы для глубокой копии.