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