ALTER MATERIALIZED VIEW ADD RETENTION
Содержание раздела
Поддерживается в версиях: 7.7.
Запрос добавляет retention-правило для материализованного представления.
Retention-правило невозможно изменить, но можно удалить и создать заново. При удалении правил также удаляются накопленные по ним холодные данные.
Связанные запросы
- CREATE MATERIALIZED VIEW с ключевым словом RETENTION — создает представление;
- ALTER MATERIALIZED VIEW DROP RETENTION — удаляет retention-правило вместе с холодными данными, накопленными по нему;
- GET_ENTITY_DDL — возвращает DDL-скрипт представления с его retention-правилами.
Поддерживаемые датасорсы
Retention-правила поддерживаются для датасорсов типа ADB и ADP. Остужение данных доступно для представлений:
- в пределах одного датасорса (например,
adp2→adp2); - между разными датасорсами одного типа (например,
adp2→adp3).
Каждый датасорс представления может иметь свое retention-правило.
Как работает запрос
Регистрация запроса
Каждое добавление retention-правила записывается в журнал, доступный с помощью запроса GET_CHANGES.
Обработка запроса
Запрос попадает в очередь операций и обрабатывается в порядке его поступления в очередь.
Успешный результат
При успешном выполнении запроса система создает:
- retention-правило;
- [для правила остужения данных] физическую таблицу для хранения холодных данных в датасорсе-приемнике.
Неуспешный результат
При ошибке исполнения корректного запроса система блокирует все последующие DDL-запросы в логической БД. О снятии такой блокировки см. в разделе Снятие блокировки DDL-запросов.
Синтаксис
ALTER MATERIALIZED VIEW [db_name.]materialized_view_name
ADD RETENTION ('source_datasource', retention_period[, 'archive_datasource'])
Параметры:
db_name-
Имя логической базы данных, которой принадлежит изменяемое материализованное представление. Опционально, если выбрана логическая БД, используемая по умолчанию.
materialized_view_name-
Имя материализованного представления, для которого добавляется retention-правило.
source_datasource-
Имя датасорса-источника — датасорса, исторические данные которого должны остужаться или удаляться по истечении срока их хранения. Должно соответствовать конфигурации.
retention_period-
Срок хранения исторических данных в датасорсе-источнике. Указывается в секундах.
Если равен 0, данные остужаются или удаляются при каждом исполнении правила.
archive_datasource-
Имя датасорса-приемника для данных, остужаемых правилом. Должно соответствовать конфигурации.
Если отсутствует, правило удаляет данные, а не остужает.
Варианты ответа
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Ограничения
- Запрос доступен для СУБД ADB и ADP.
- Выполнение запроса недоступно, если представление сейчас синхронизируется или установлен запрет на изменение сущностей.
- Датасорс-источник и датасорс-приемник в retention-правиле должны быть одного типа.
Примеры
Retention-правило для остужения данных
Создание retention-правила для остужения исторических данных старше двух недель и их перемещения из adp в adp2:
ALTER MATERIALIZED VIEW matview_db.sales_august_2020
ADD RETENTION ('adp', 1209600, 'adp2')
Retention-правило для удаления данных
Создание retention-правила для удаления исторических данных старше двух недель из adp:
ALTER MATERIALIZED VIEW matview_db.sales_august_2020
ADD RETENTION ('adb', 1209600)