ERASE DELTA

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

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

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

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

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

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

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

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

Ограничения

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

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

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

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

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

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

  • Если данные не были предварительно сохранены в виде бэкапа, после удаления их невозможно восстановить средствами системы.
  • После выполнения запроса до следующей операции записи последней операцией записи в логической БД считается последняя среди операций в логических таблицах (операции в снапшот-таблицах не учитываются).

Пример

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

ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3