Link Search Menu Expand Document

Физическая таблица

Физическая таблица — таблица СУБД хранилища, каждая запись которой описывает состояние объекта логической таблицы в определенный период времени. В зависимости от типа физической таблицы состояние объектов, хранящееся в ней, может быть новым (“горячим”), актуальным или архивным.

Все данные, загруженные в систему, до фиксации изменений считаются новым состоянием объектов и хранятся в виде горячих записей. При фиксации изменений система одномоментно обновляет состояние объектов, исключая возможность чтения грязных данных. Обновление происходит в следующем порядке:

  1. Сравниваются новое и актуальное состояния объектов.
  2. Определяется, какие записи нужно добавить (если таких объектов нет среди актуальных данных), а какие — заменить новыми (если объекты уже есть в системе, и нужно обновить их состояние).
  3. Состояние новых объектов фиксируется в виде актуальных записей.
  4. Для существующих объектов записи, которые считались актуальными до момента фиксации изменений, перемещаются в категорию архивных, а новое состояние объектов фиксируется в виде актуальных записей.
  5. Все горячие записи удаляются.
  6. В историю изменений состояния системы добавляется новая дельта с номером, увеличенным на 1 относительно предыдущей зафиксированной дельты.

На рисунке ниже показан пример обновления состояния объекта — набора данных одного клиента. В примере рассматривается следующая ситуация: номер телефона клиента был ранее изменен со значения phone_1 на phone_2, это изменение было зафиксировано, и теперь загружаются данные того же клиента с новым адресом (address_2).

Обновление данных клиента

В условиях, рассмотренных в примере, данные клиента обновляются в следующем порядке:

  1. Загрузка данных: запись с новым адресом (address_2) сохраняется в качестве горячей записи.
  2. Фиксация изменений данных: запись с предыдущим адресом (address_1) переносится в категорию архивных, запись с новым адресом (address_2) — в категорию актуальных, и горячая запись удаляется. Обновление записей происходит одномоментно.