ALTER TABLE ADD RETENTION

Содержание раздела
  1. Поддерживаемые датасорсы
  2. Результат выполнения
  3. Как работает запрос
  4. Синтаксис
  5. Варианты ответа
  6. Ограничения
    1. Ограничения выполнения
    2. Ограничения партиционирования
    3. Другие ограничения
  7. Примеры
    1. Retention-правило для остужения данных
    2. Retention-правило для удаления данных

Поддерживается в версиях:  6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3.

Запрос добавляет retention-правило для логической таблицы.

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

Добавить retention-правила можно также при создании логической таблицы.

Текущие retention-правила таблицы можно посмотреть с помощью GET_ENTITY_DDL.

Поддерживаемые датасорсы

Retention-правила поддерживаются для датасорсов типа ADB и ADP.

Каждый датасорс, где размещаются данные логической таблицы, может иметь свое retention-правило. Остужение данных согласно retention-правилам возможно в пределах одного датасорса (например, adp1adp1) или между разными датасорсами одного типа (например, adp1adp2).

Результат выполнения

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

Как работает запрос

Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь. Каждое добавление retention-правила записывается в журнал, который можно посмотреть с помощью запроса GET_CHANGES.

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

Синтаксис

ALTER TABLE [db_name.]table_name
ADD RETENTION (origin_datasource_alias, retention_period[, archive_datasource_alias])

Параметры:

db_name

Имя логической базы данных, в которой находится логическая таблица. Опционально, если выбрана логическая БД, используемая по умолчанию.

table_name

Имя логической таблицы, для которой задается retention-правило.

origin_datasource_alias

Имя датасорса-источника, из которого перемещаются или удаляются неактуальные версии данных. Имя указывается в одинарных кавычках (например, 'adb').

retention_period

Срок хранения неактуальных версий данных (в секундах) в датасорсе origin_datasource_alias.

Если значение равно 0, в датасорсе origin_datasource_alias хранятся только актуальные версии данных, а все неактуальные версии данных перемещаются в хранилище холодных данных или удаляются при каждой проверке retention-правила.

archive_datasource_alias

Имя датасорса-приемника, куда перемещаются неактуальные версии данных по истечении срока их хранения. Имя указывается в одинарных кавычках (например, 'adb2').

Если значение не указано, неактуальные версии данных по истечении срока хранения удаляются, а не перемещаются в хранилище холодных данных.

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ограничения

Ограничения выполнения

Ограничения партиционирования

Другие ограничения

  • Датасорс-источник и датасорс-приемник в retention-правиле не могут быть разных типов.

Примеры

Retention-правило для остужения данных

Запрос на добавление retention-правила, согласно которому неактуальные версии данных будут храниться в adp1 не меньше недели, а затем будут перемещаться в adp_archive:

ALTER TABLE marketing.sales
ADD RETENTION ('adp1', 604800, 'adp_archive')

Retention-правило для удаления данных

Запрос на добавление retention-правила, согласно которому неактуальные версии данных будут храниться в adp2 не меньше месяца, а затем будут удаляться:

ALTER TABLE marketing.clients_adp2
ADD RETENTION ('adp2', 2678400)