CLONE (SQL)

Важно!

Эта функция предоставляется в режиме общедоступной предварительной версии.

Создает точную копию исходной разностной таблицы в целевом расположении в определенной версии. Клон может быть либо глубоким, либо поверхностным: глубокий клон копирует данные из исходного и неполного клонов.

Важно!

Существуют важные различия между поверхностными и глубокими клонами, которые могут определить, как лучше их использовать. См. раздел клонирование разностной таблицы.

Синтаксис

CREATE TABLE [IF NOT EXISTS] target_table_identifier
[SHALLOW | DEEP] CLONE source_table_identifier [<time_travel_version>]
[LOCATION 'path']
[CREATE OR] REPLACE TABLE target_table_identifier
[SHALLOW | DEEP] CLONE source_table_identifier [<time_travel_version>]
[LOCATION 'path']
  • table_identifier
    • [database_name.] table_name: Имя таблицы, при необходимости дополненное именем базы данных.
    • delta.`<path-to-table>`: Расположение существующей разностной таблицы.

where

<time_travel_version>  =
  TIMESTAMP AS OF timestamp_expression |
  VERSION AS OF version
  • timestamp_expression может быть одним из следующих:
    • '2018-10-18T22:15:12.013Z', то есть строка, которую можно привести к метке времени
    • cast('2018-10-18 13:36:32 CEST' as timestamp)
    • '2018-10-18', то есть строка даты
    • current_timestamp() - interval 12 hours
    • date_sub(current_date(), 1)
    • Любое другое выражение, которое является или может быть приведено к метке времени
  • version — Это длинное значение, которое можно получить из выходных данных DESCRIBE HISTORY table_spec .

Ни timestamp_expression один version , ни не может быть вложенным запросом.

  • Укажите CREATE IF NOT EXISTS , чтобы не создавать таблицу, target_table Если таблица уже существует. Если таблица уже существует на целевом объекте, то операция клонирования является операцией No-Op.
  • Укажите CREATE OR REPLACE , чтобы заменить целевой объект операции клонирования при наличии существующей таблицы target_table . При этом будет обновлена хранилище метаданных с новой таблицей, если используется имя таблицы.
  • Если не указать SHALLOW или DEEP , по умолчанию создается глубокий клон.
  • LOCATION создает внешнюю таблицу с указанным расположением в качестве пути, где хранятся данные. Если целевым объектом является путь, а не имя таблицы, операция завершится ошибкой.

Примеры

Вы можете использовать CLONE для выполнения сложных операций, таких как перенос данных, Архивация данных, воспроизведение потока машинного обучения, краткосрочные эксперименты, совместное использование данных и т. д. Несколько примеров см. в разделе варианты использования клонирования .