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

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

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

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

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

Source Цель Операция
Управляемый Айсберг Управляемый Айсберг DEEP CLONE.
Чужеземный Айсберг Управляемый Айсберг 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, независимо от исходного каталога.

Замечание

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

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

Нельзя задать свойства таблицы Айсберга в инструкции 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 после завершения глубокого копирования. См. Установка свойств таблицы для глубокой копии.