Как устроена система

Содержание раздела
  1. Работа с системой на логическом уровне
  2. Сущности системы
  3. Хранение истории изменений данных
  4. Хранение метаданных

Работа с системой на логическом уровне

Система предоставляет доступ к логической схеме данных, беря на себя управление физической схемой данных в датасорсах хранилища. Это позволяет внешней системе работать с системой Prostore, как с обычной реляционной базой данных.

Сущности системы

Логическая база данных содержит логические сущности следующих типов:

Сущности логической базы данных

Логическая таблица напоминает обычную реляционную таблицу, но отличается тем, что из нее можно запрашивать срезы данных разных версий. По умолчанию возвращаются данные последней версии по состоянию на текущее время сервера системы. Чтобы получить срез данных другой версии, используйте ключевое слово FOR SYSTEM_TIME.

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

Внешняя таблица ссылается на внешний источник или приемник данных и не хранит сами данные. Источником и приемником данных может быть топик Kafka или таблица датасорса (standalone-таблица).

Логическое представление похоже на реляционное логическое представление и является именованным сохраненным запросом к логическим таблицам, прокси-таблицам и (или) standalone-таблицам.

Материализованное представление хранит результат выборки данных из логических таблиц. Система поддерживает материализованные представления в актуальном виде, периодически синхронизируя их данные с данными связанных таблиц.

Связь материализованного представления с логической таблицей

Все логические сущности можно создавать и удалять. Логические таблицы, прокси-таблицы и логические представления можно также изменять. Запись данных возможна в логические таблицы, прокси-таблицы и standalone-таблицы, чтение данных — из логических таблиц, прокси-таблиц, standalone-таблиц, логических представлений и материализованных представлений.

Хранение истории изменений данных

Система записывает изменения данных, вносимые в логическую базу данных, как последовательную историю изменений данных. Версии данных, удаленные внешней системой или замененные новыми версиями данных, продолжают храниться в системе и остаются доступными при запросе с ключевым словом FOR SYSTEM_TIME.

Историю изменений можно удалить. Подробнее об управлении историей см. в разделе Управление историей изменений.

Хранение метаданных

Все изменения логических сущностей записываются в журнал. Метаданные, включая историю изменений данных и журнал, хранятся в сервисной базе данных (в Zookeeper).

Подробнее о компонентах см. в разделе Компоненты системы и их связи.