Link Search Menu Expand Document

ROLLBACK DELTA

Запрос позволяет откатить горячую (открытую) дельту — отменить все ее завершенные операции записи (загрузки и обновления данных), а также незавершенные операции загрузки данных. Перед выполнением запроса необходимо определить логическую базу данных, используемую по умолчанию, если она еще не определена.

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

После запуска запроса невозможно закрыть горячую дельту и зафиксировать ее изменения, даже если система не смогла откатить дельту и вернула исключение.

Система не гарантирует остановку и отмену всех операций за один вызов. Если в ответ на запрос вернулась ошибка Can't rollback delta by datamart <db_name>, это означает, что не все операции записи горячей дельты были отменены. В этом случае необходимо повторить запрос.

Откат горячей дельты выполняется в следующем порядке:

  1. Останавливаются выполняемые операции загрузки данных.
    Операции останавливаются асинхронно, и система периодически проверяет, остались ли неостановленные операции. Проверка запускается раз в интервал, равный значению параметра DELTA_ROLLBACK_STATUS_CALLS_MS в конфигурации системы.
  2. Отменяются следующие операции горячей дельты (и связанные с ними изменения): все операции, завершенные успешно или с ошибкой, а также остановленные операции загрузки данных. Незавершенные операции обновления данных не отменяются.
  3. Горячая дельта удаляется из сервисной базы данных, и зарезервированный ранее номер горячей дельты освобождается.

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

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

Синтаксис

ROLLBACK DELTA