Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Вы находитесь на странице архива. Актуальная документация доступна по ссылке.

ERASE DELTA

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

Поддерживается в версиях:  6.1 / 6.0 / 5.8 / 5.7.

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

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

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

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

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

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

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

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

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

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

Синтаксис

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 задает номер дельты, с которой удаляются дельты и операции записи (включительно).

Ограничения

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

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

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

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

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

Пример

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

ERASE DELTA marketing FOR SYSTEM_TIME AS OF DELTA_NUM 3