ROLLBACK DELTA
Запрос позволяет откатить горячую (открытую) дельту — отменить все ее завершенные операции записи (загрузки и обновления данных), а также незавершенные операции загрузки данных. Перед выполнением запроса необходимо определить логическую базу данных, используемую по умолчанию, если она еще не определена.
Невозможен откат незавершенных операций обновления данных горячей дельты, а также откат любых операций закрытой дельты.
После запуска запроса невозможно закрыть горячую дельту и зафиксировать ее изменения, даже если система не смогла откатить дельту и вернула исключение.
Система не гарантирует остановку и отмену всех операций за один вызов. Если в ответ на запрос вернулась ошибка Can't rollback delta by datamart <db_name>
, это означает, что не все операции записи горячей дельты были отменены. В этом случае необходимо повторить запрос.
Откат горячей дельты выполняется в следующем порядке:
- Останавливаются выполняемые операции загрузки данных.
Операции останавливаются асинхронно, и система периодически проверяет, остались ли неостановленные операции. Проверка запускается раз в интервал, равный значению параметраDELTA_ROLLBACK_STATUS_CALLS_MS
в конфигурации системы. - Отменяются следующие операции горячей дельты (и связанные с ними изменения): все операции, завершенные успешно или с ошибкой, а также остановленные операции загрузки данных. Незавершенные операции обновления данных не отменяются.
- Горячая дельта удаляется из сервисной базы данных, и зарезервированный ранее номер горячей дельты освобождается.
В ответе возвращается:
- объект ResultSet c одной записью, содержащей номер последней закрытой дельты, при успешном выполнении запроса;
- исключение при неуспешном выполнении запроса.
Синтаксис
ROLLBACK DELTA