Дельта

Содержание раздела
  1. Поддерживаемые сущности
  2. Действия с дельтами
  3. Метка времени дельты
  4. Содержимое дельты
  5. Отмена изменений дельты
  6. Ограничения дельт с метками времени в будущем

Дельта — целостная группа изменений в логической БД. Дельта позволяет управлять операциями записи совместно, сохраняя или отменяя их все сразу.

Поддерживаемые сущности

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

Действия с дельтами

Дельту можно открыть, закрыть, отменить (откатить) и удалить.

Дельта, которую открыли и еще не закрыли, называется открытой (или горячей), а дельта, которую закрыли, — закрытой. В каждой логической БД можно открыть не более одной дельты одновременно.

На рисунке ниже показана последовательность дельт, где дельта 3 — открытая, а все предыдущие — закрытые.

Открытая и закрытые дельты

Метка времени дельты

В запросе на закрытие дельты можно указать метку времени — дату и время закрытия этой дельты. Если метка для дельты не указана, система устанавливает ее равной текущему времени сервера.

Содержимое дельты

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

На рисунке ниже показана последовательность операций записи в дельте 0, где операция 0 является первой операцией дельты, а операция 2 — последней операцией дельты.

Операции записи дельты

Отмена изменений дельты

Отменить изменения открытой дельты можно запросом ROLLBACK DELTA, закрытой дельты (вместе с изменениями, внесенными в логические таблицы между этой дельтой и предыдущей) — запросом ERASE DELTA.

Ограничения дельт с метками времени в будущем

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