ERASE DELTA
Содержание раздела
Поддерживается в версиях: 7.1 / 6.12 / 6.11 / 6.10 / 6.9 / 6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7.
Запрос удаляет закрытые дельты и операции записи в логической БД с указанной дельты (включительно) по текущий момент. Удаляются как изменения данных в этих дельтах и операциях, так и связанная метаинформация.
Если бэкап отсутствует, дельты и операции невозможно восстановить после их удаления.
Удалить данные логической таблицы или материализованного представления, не удаляя метаинформацию о дельтах и операциях, можно запросом TRUNCATE ACTUAL.
Пример работы запроса
На рисунке ниже показан пример результата выполнения запроса, удаляющего дельты и операции записи, начиная с дельты 3 включительно. Запрос удаляет все изменения, внесенные в дельте 3, в операции записи 12 и далее. Версия данных по состоянию на дельту 2 становится текущей.
Удаление дельт и операций, начиная с дельты 3
Синтаксис
ERASE DELTA [db_name] FOR SYSTEM_TIME AS OF DELTA_NUM delta_num
Параметры:
db_name
-
Имя логической базы данных. Опционально, если выбрана логическая БД, используемая по умолчанию.
Ключевое слово FOR SYSTEM_TIME AS OF DELTA_NUM delta_num
Задает номер дельты, с которой удаляются дельты и операции записи (включительно).
Варианты ответа
В ответе возвращается:
- пустой объект ResultSet при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Результат при успешном ответе
При успешном выполнении запроса система:
- Удаляет изменения данных в логических таблицах и материализованных представлениях, сделанные после закрытия дельты, предшествующей указанной в запросе. Например, если запросе указана дельта 3, удаляются все изменения после дельты 2.
- Удаляет информацию о дельтах и операциях записи из сервисной БД и освобождает их номера. Логические сущности при этом не удаляются.
- Перезапускает синхронизацию материализованных представлений, основанных на данных других логических БД, начиная с нулевой дельты.
- Обнуляет значения ROWS_COUNT и ROWS_COUNT_DELTA в статистике логической БД на всех нодах Prostore.
Журнал сохраняет ссылки на удаленные дельты, что может нарушать хронологию событий в привязке к дельтам, указанную для справки. Например, запись 10 может ссылаться на удаленную дельту 3, а запись 11 — на существующую дельту 2.
Результат при неуспешном ответе
При неуспешном выполнении запрос блокирует открытие и закрытие дельт и исполнение новых операций записи. В этом случае нужно устранить причину ошибки и повторить запрос.
Ограничения
Ограничения выполнения
Выполнение запроса недоступно, если в логической БД:
- открыта дельта,
- выполняется операция записи,
- выполняется ROLLBACK DELTA,
- есть несинхронизированные материализованные представления,
- настроены retention-правила для остужения данных.
Ограничения на другие операции
Во время работы запроса недоступны:
- выполнение BEGIN DELTA,
- выполнение
ROLLBACK DELTA
, - загрузка и обновление данных.
Ограничения сущностей
- Запрос не обновляет материализованные представления, которые связаны с очищаемыми таблицами и находятся в других логических БД. Такие представления продолжают хранить данные, удаленные из таблиц.
Другие ограничения
- Если данные не были предварительно сохранены в виде бэкапа, после удаления их невозможно восстановить средствами системы.
Пример
Удаление всех изменений с дельты 3 по текущий момент:
ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3