Дельта
Содержание раздела
Дельта — целостная группа изменений в логической БД. Дельта позволяет управлять операциями записи совместно, сохраняя или отменяя их все сразу.
Поддерживаемые сущности
Группировать операции в дельты можно только для логических таблиц. Операции в материализованных представлениях группируются сами при синхронизации представлений, а операции в снапшот-таблицах всегда выполняются вне дельты даже при наличии открытой дельты.
Действия с дельтами
Дельту можно открыть, закрыть, отменить (откатить) и удалить.
Дельта, которую открыли и еще не закрыли, называется открытой (или горячей), а дельта, которую закрыли, — закрытой. В каждой логической БД можно открыть не более одной дельты одновременно.
На рисунке ниже показана последовательность дельт, где дельта 3 — открытая, а все предыдущие — закрытые.
Открытая и закрытые дельты
Метка времени дельты
В запросе на закрытие дельты можно указать метку времени — дату и время закрытия этой дельты. Если метка для дельты не указана, система устанавливает ее равной текущему времени сервера.
Содержимое дельты
Дельта включает все операции записи, начатые в логических таблицах после открытия этой дельты и завершенные до ее закрытия.
На рисунке ниже показана последовательность операций записи в дельте 0, где операция 0 является первой операцией дельты, а операция 2 — последней операцией дельты.
Операции записи дельты
Отмена изменений дельты
Отменить изменения открытой дельты можно запросом ROLLBACK DELTA, закрытой дельты (вместе с изменениями, внесенными в логические таблицы между этой дельтой и предыдущей) — запросом ERASE DELTA.
Ограничения дельт с метками времени в будущем
При закрытии дельты можно задать любую метку времени позже метки предыдущей дельты. Но если в логической БД есть дельты с будущими метками, загрузка и обновление данных вне дельты будут недоступны, пока серверное время не сравняется с последней меткой времени дельт.