ERASE DELTA

Содержание раздела
  1. Пример работы запроса
  2. Синтаксис
    1. Ключевое слово FOR SYSTEM_TIME AS OF DELTA_NUM delta_num
  3. Варианты ответа
    1. Результат при успешном ответе
    2. Результат при неуспешном ответе
  4. Ограничения
    1. Ограничения выполнения
    2. Ограничения на другие операции
    3. Ограничения сущностей
    4. Другие ограничения
  5. Пример

Поддерживается в версиях: 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 при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Результат при успешном ответе

При успешном выполнении запроса система:

  1. Удаляет изменения данных в логических таблицах и материализованных представлениях, сделанные после закрытия дельты, предшествующей указанной в запросе. Например, если запросе указана дельта 3, удаляются все изменения после дельты 2.
  2. Удаляет информацию о дельтах и операциях записи из сервисной БД и освобождает их номера. Логические сущности при этом не удаляются.
  3. Перезапускает синхронизацию материализованных представлений, основанных на данных других логических БД, начиная с нулевой дельты.
  4. Обнуляет значения ROWS_COUNT и ROWS_COUNT_DELTA в статистике логической БД на всех нодах Prostore.

Журнал сохраняет ссылки на удаленные дельты, что может нарушать хронологию событий в привязке к дельтам, указанную для справки. Например, запись 10 может ссылаться на удаленную дельту 3, а запись 11 — на существующую дельту 2.

Результат при неуспешном ответе

При неуспешном выполнении запрос блокирует открытие и закрытие дельт и исполнение новых операций записи. В этом случае нужно устранить причину ошибки и повторить запрос.

Ограничения

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

Выполнение запроса недоступно, если в логической БД:

Ограничения на другие операции

Во время работы запроса недоступны:

Ограничения сущностей

  • Запрос не обновляет материализованные представления, которые связаны с очищаемыми таблицами и находятся в других логических БД. Такие представления продолжают хранить данные, удаленные из таблиц.

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

  • Если данные не были предварительно сохранены в виде бэкапа, после удаления их невозможно восстановить средствами системы.

Пример

Удаление всех изменений с дельты 3 по текущий момент:

ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3