ERASE DELTA
Содержание раздела
Запрос удаляет закрытые дельты и все операции записи, начиная с указанной дельты (включительно). При этом удаляются как изменения данных, так и метаинформация о дельтах и операциях.
Удаление данных доступно в СУБД ADB, ADP и ADQM.
Удаленные дельты и операции записи не могут быть восстановлены средствами системы.
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
При успешном выполнении запроса удаляются все изменения, произошедшие с данными логических таблиц и материализованных представлений в логической БД с указанной дельты по текущий момент. Из сервисной базы данных удаляется информация о дельтах и операциях записи, и их номера освобождаются. Логические сущности при этом не удаляются.
Запрос не удаляет дельты и операции записи, выполненные до указанной дельты. В частности, это означает, что запросом невозможно удалить операции записи, выполненные до нулевой дельты.
Если запрос ERASE DELTA
завершился с ошибкой, устраните причины сбоя в его работе и повторите запрос. Пока очистка данных не завершилась успешно, открытие новых дельт недоступно.
На рисунке ниже показан пример результата выполнения запроса, удаляющего дельты и операции записи вне дельты, начиная с дельты 3 включительно. Запрос удаляет все изменения, внесенные в дельте 3, в операции записи 12 и далее. Версия данных по состоянию на дельту 2 становится текущей.
Записи журнала имеют привязку к номерам дельт, эта информация является справочной и не используется системой. При выполнении ERASE DELTA
привязка записей к удаленным дельтам остается, что может приводить к нарушениям в хронологии записей.
Например, из-за удаления дельты 2 и 3 журнал может содержать информацию о том, что сущность удалена после второй (существующей) дельты, а создана — после третьей (удаленной) дельты.
Чтобы удалить данные логической таблицы или материализованного представления без удаления метаинформации о дельтах и операциях, выполните TRUNCATE ACTUAL.
Синтаксис
ERASE DELTA [db_name] FOR SYSTEM_TIME AS OF DELTA_NUM delta_num
Параметры:
db_name
-
Имя логической базы данных. Опционально, если выбрана логическая БД, используемая по умолчанию.
delta_num
-
Номер дельты, начиная с которой удаляются дельты и операции записи.
Ограничения
Ограничения СУБД
- Запрос не поддерживает удаление данных из СУБД ADG.
Ограничения выполнения
- Выполнение запроса недоступно, если есть открытая дельта или незавершенная операция по изменению схемы.
- Выполнение запроса недоступно, если в логической базе данных есть несинхронизированные материализованные представления.
Ограничения на другие операции
- Во время работы запроса недоступно выполнение запросов BEGIN DELTA, изменение логической схемы данных, а также загрузка и обновление данных.
Другие ограничения
- Перед дельтой, указанной в запросе, не должно быть операций записи, выполненных между этой и предыдущей дельтой.
- Запрос не удаляет дельты и операции записи, выполненные до указанной дельты. В частности, это означает, что запросом невозможно удалить операции записи, выполненные до нулевой дельты.
- Запрос не обновляет материализованные представления, которые связаны с очищаемыми таблицами и находятся в других логических базах данных. Такие представления продолжают хранить данные, удаленные из таблиц.
- Удаленные данные невозможно восстановить средствами системы.
Пример
Удаление всех изменений с дельты 3 по текущий момент:
ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3