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