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