ERASE DELTA
Содержание раздела
Поддерживается в версиях: 7.6 / 7.5 / 7.4 / 7.3 / 7.2 / 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.
Пример работы запроса
На рисунке ниже показан пример работы ERASE DELTA с указанием дельты 3. Запрос удаляет изменения данных из логических таблиц, сделанные в дельте 3 и после, и метаинформацию о соответствующих дельтах и операциях. Состояние данных на дельту 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.
- Удаляет метаинформацию о дельтах и операциях записи, удаленных на шаге 1, из сервисной БД и освобождает их номера. Операции в снапшот-таблицах и сами логические сущности не удаляются.
- Обнуляет значения ROWS_COUNT в статистике логических таблиц и материализованных представлений на всех нодах Prostore.
Запрос не удаляет из журнала ссылки на дельты, которые он удалил. Это может нарушать хронологию событий в привязке к дельтам, указанную для справки. Например, запись 10 может ссылаться на удаленную дельту 3, а запись 11 — на существующую дельту 2.
Результат при неуспешном ответе
При неуспешном выполнении запрос блокирует открытие и закрытие дельт и исполнение новых операций записи. Если это произошло, устраните причину ошибки и повторите запрос.
Ограничения
Ограничения выполнения
Выполнение запроса недоступно, если в логической БД:
- открыта дельта,
- выполняется операция записи,
- выполняется ROLLBACK DELTA,
- настроены retention-правила для остужения данных.
Ограничения на другие операции
- Во время работы запроса недоступны:
- выполнение BEGIN DELTA,
- выполнение
ROLLBACK DELTA, - загрузка и обновление данных.
- Параллельное выполнение
ERASE DELTAи ALTER TABLE ADD DATASOURCE может привести к неконсистентности данных.
Ограничения сущностей
- Запрос не удаляет операции в снапшот-таблицах.
- Запрос не обновляет материализованные представления, которые связаны с очищаемыми таблицами и находятся в других логических БД. Такие представления продолжают хранить данные, удаленные из таблиц.
Другие ограничения
- Если данные не были предварительно сохранены в виде бэкапа, после удаления их невозможно восстановить средствами системы.
- После выполнения запроса до следующей операции записи последней операцией записи в логической БД считается последняя среди операций в логических таблицах (операции в снапшот-таблицах не учитываются).
Пример
Удаление всех изменений с дельты 3 по текущий момент:
ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3