ERASE DELTA

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

Поддерживается в версиях:  6.8 / 6.7 / 6.6 / 6.5 / 6.4 / 6.3 / 6.2 / 6.1 / 6.0 / 5.8 / 5.7.

Запрос удаляет закрытые дельты и все операции записи, начиная с указанной дельты (включительно). При этом удаляются как изменения данных, так и метаинформация о дельтах и операциях.

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

Удаленные дельты и операции записи не могут быть восстановлены средствами системы.

Удалить данные логической таблицы или материализованного представления без удаления метаинформации о дельтах и операциях можно с помощью запроса TRUNCATE ACTUAL.

Результат выполнения

При успешном выполнении запроса система выполняет следующие действия:

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

В случае неуспешного выполнения запроса устраните причины ошибки и повторите запрос. Пока очистка данных не завершилась успешно, открытие новых дельт недоступно.

Пример работы запроса

На рисунке ниже показан пример результата выполнения запроса, удаляющего дельты и операции записи вне дельты, начиная с дельты 3 включительно. Запрос удаляет все изменения, внесенные в дельте 3, в операции записи 12 и далее. Версия данных по состоянию на дельту 2 становится текущей.

Удаление дельт и операций, начиная с дельты 3

Влияние запроса на хронологию записей в журнале

Записи журнала имеют привязку к номерам дельт, эта информация является справочной и не используется системой. При выполнении ERASE DELTA привязка записей к удаленным дельтам остается, что может приводить к нарушениям в хронологии записей. Например, из-за удаления дельты 2 и 3 журнал может содержать информацию о том, что сущность удалена после второй (существующей) дельты, а создана — после третьей (удаленной) дельты.

Синтаксис

ERASE DELTA [db_name] FOR SYSTEM_TIME AS OF DELTA_NUM delta_num

Параметры:

db_name

Имя логической базы данных. Опционально, если выбрана логическая БД, используемая по умолчанию.

delta_num

Номер дельты, начиная с которой удаляются дельты и операции записи.

Ключевое слово FOR SYSTEM_TIME AS OF DELTA_NUM

Ключевое слово FOR SYSTEM_TIME AS OF DELTA_NUM задает номер дельты, с которой удаляются дельты и операции записи (включительно).

Варианты ответа

В ответе возвращается:

  • пустой объект ResultSet при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Ограничения

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

  • Выполнение запроса недоступно, если есть открытая дельта или незавершенная операция по изменению схемы.
  • Выполнение запроса недоступно, если в логической базе данных есть несинхронизированные материализованные представления.

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

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

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

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

  • Удаленные данные невозможно восстановить средствами системы.

Пример

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

ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3