Возможности системы
Содержание раздела
Единый синтаксис и единый интерфейс
Работа с системой ведется через JDBC или REST API. В продуктивных инсталляциях внешняя система обращается к системе Prostore, отправляя запросы с помощью программных вызовов. Также все описанные в документе запросы можно отправлять вручную с помощью любого SQL- или HTTP-клиента.
Система предоставляет собственный язык запросов SQL+ на основе SQL. Это позволяет работать со всеми поддерживаемыми СУБД, используя единый синтаксис.
Связанные разделы:
Темпоральность
Традиционные СУБД хранят статические снимки объектов модели. Каждое изменение данных приводит к последовательному переходу от одного состояния базы данных к другому, и предыдущее состояние становится недоступным.
В отличие от традиционных СУБД, в системе используется темпоральная модель данных: для каждого объекта хранятся все его состояния от момента создания до момента уничтожения объекта. Это позволяет работать как с текущими, так и прошлыми состояниями данных.
Примеры бизнес-применений темпоральной модели данных:
- вычисление тенденций во времени,
- аудит изменений данных,
- обнаружение аномалий в данных,
- восстановление состояния данных на любой момент в прошлом,
- восстановление отдельных записей после случайных изменений,
- поддержка медленно меняющихся измерений (Slowly Changing Dimensions, SCD).
Связанные разделы:
Изоляция данных
Система позволяет управлять видимостью данных, изолируя их при чтении на основании номера версии или метки времени, соответствующей этим данным. Уровнем изоляции данных можно управлять с помощью ключевого слова FOR SYSTEM_TIME.
Быстрые запись и чтение данных
Система позволяет оптимизировать работу в зависимости от предполагаемого объема данных. Для записи и чтения больших объемов данных предназначены функции загрузки и выгрузки данных, для записи и чтения небольших объемов — функции вставки и чтения.
Связанные разделы:
Различные варианты структуры хранилища
Система позволяет работать с разнородным хранилищем данных, состоящим из нескольких СУБД одного или разных типов. Поддерживаются следующие типы СУБД:
В зависимости от задач и нагрузки можно сочетать СУБД в разных вариантах:
- равноправная схема, где все СУБД работают параллельно;
- иерархическая схема, где есть главная СУБД и подчиненные СУБД.
Связанные разделы:
Автовыбор оптимальной СУБД для исполнения запроса
В системе действует автовыбор оптимальной СУБД для запросов на чтение и выгрузку данных. Если в запросе явно не указана СУБД-источник данных, он перенаправляется в наиболее оптимальную СУБД для такого рода запросов. Функция автовыбора СУБД учитывает сильные стороны каждой из СУБД хранилища. Подробнее см. в разделе Маршрутизация запросов к данным.
Возможность подключения таблиц СУБД
Система позволяет включать в схему данных обычные таблицы СУБД хранилища (standalone-таблицы). Такие таблицы включаются вне контекста темпоральности и изоляции и могут применяться в задачах, где темпоральность избыточна. Работа со standalone-таблицами ведется с использованием синтаксиса SQL+.
Устойчивость к дублированию данных
Система устойчива к дублированию данных: при загрузке или вставке дубликатов записей система сохраняет только один экземпляр каждой записи.