Как устроена система
Содержание раздела
Работа с системой на логическом уровне
Система предоставляет доступ к логической схеме данных, беря на себя управление физической схемой данных в СУБД хранилища. Это позволяет внешней системе работать с системой Prostore, как с обычной реляционной базой данных.
Сущности системы
Логическая база данных содержит логические сущности следующих типов:
Логическая таблица напоминает обычную реляционную таблицу, но отличается тем, что из нее можно запрашивать срезы данных на указанные моменты времени. По умолчанию возвращаются данные, актуальные на текущий момент. Чтобы получить срез данных, который был актуален в прошлом, нужно использовать ключевое слово FOR SYSTEM_TIME.
Внешняя таблица ссылается на внешний источник или приемник данных и не хранит сами данные. Источником и приемником данных может быть топик Kafka или таблица СУБД (standalone-таблица).
Логическое представление похоже на реляционное логическое представление и является именованным сохраненным запросом к логическим таблицам и (или) standalone-таблицам.
Материализованное представление хранит результат выборки данных из логических таблиц. Система поддерживает материализованные представления в актуальном виде, периодически синхронизируя их данные с данными связанных таблиц.
Все логические сущности можно создавать и удалять, логические представления можно также изменять. Запись данных возможна в логические таблицы и standalone-таблицы, чтение данных — из логических таблиц, standalone-таблиц, логических представлений и материализованных представлений.
Хранение данных с историей их изменений
Система записывает данные, поступающие в нее, в виде последовательной истории изменений данных. На физическом уровне записи разделяются на горячие, актуальные и архивные. Записи, которые потеряли актуальность и были заменены новыми версиями, продолжают храниться в системе. Когда внешняя система удаляет запись, запись фактически не удаляется, а становится архивной и остается доступной для чтения из архива. При необходимости архив можно очистить.
Подробнее об очистке архива и других частей истории изменений см. в разделе Управление историей изменений.
Хранение метаданных
Все изменения логических сущностей записываются в журнал. Метаданные, включая историю изменений данных и журнал, хранятся в сервисной базе данных (в Zookeeper).
Подробнее о компонентах см. в разделах Компоненты системы и Связи с другими системами и компонентами.