Возможности системы

Содержание раздела
  1. Единый синтаксис и единый интерфейс
  2. Темпоральность
  3. Изоляция данных
  4. Быстрые запись и чтение данных
  5. Различные варианты структуры хранилища
  6. Кластеризация серверов системы
  7. Автовыбор оптимальной СУБД для исполнения запроса
  8. Устойчивость к дублированию данных
  9. Возможность подключения таблиц СУБД
  10. Хранение холодных данных
  11. Аутентификация
  12. Роли и полномочия
  13. Партиционирование данных

Единый синтаксис и единый интерфейс

Работа с системой ведется через JDBC или REST API. В продуктивных инсталляциях внешняя система обращается к системе Prostore, отправляя запросы с помощью программных вызовов. Также все описанные в документе запросы можно отправлять вручную с помощью любого SQL- или HTTP-клиента.

Система предоставляет собственный язык запросов SQL+ на основе SQL. Это позволяет работать со всеми поддерживаемыми СУБД, используя единый синтаксис.

Связанные разделы:

Темпоральность

Традиционные СУБД хранят статические снимки объектов модели. Каждое изменение данных приводит к последовательному переходу от одного состояния базы данных к другому, и предыдущее состояние становится недоступным.

В отличие от традиционных СУБД, в системе используется темпоральная модель данных: для каждого объекта хранятся все его состояния от момента создания до момента уничтожения объекта. Это позволяет работать как с текущими, так и прошлыми состояниями данных.

Примеры бизнес-применений темпоральной модели данных:

  • вычисление тенденций во времени,
  • аудит изменений данных,
  • обнаружение аномалий в данных,
  • восстановление состояния данных на любой момент в прошлом,
  • восстановление отдельных записей после случайных изменений,
  • поддержка медленно меняющихся измерений (Slowly Changing Dimensions, SCD).

Связанные разделы:

Изоляция данных

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

Быстрые запись и чтение данных

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

Связанные разделы:

Различные варианты структуры хранилища

Система позволяет работать с разнородным хранилищем данных, состоящим из нескольких СУБД одного или разных типов. Поддерживаются следующие типы СУБД:

В зависимости от задач и нагрузки можно сочетать СУБД в разных вариантах:

  • равноправная схема, где все СУБД работают параллельно;
  • иерархическая схема, где есть главная СУБД и подчиненные СУБД.

Связанные разделы:

Кластеризация серверов системы

Система поддерживает кластеризацию — использование нескольких серверов системы (нод) в одном окружении. Все ноды кластера равноправны и могут выполнять любые виды запросов. Сбой ноды не прерывает работу остальных нод.

Подробнее о компонентах, гарантиях и ограничениях кластера см. в разделе Кластеризация Prostore.

Автовыбор оптимальной СУБД для исполнения запроса

В системе действует автовыбор оптимальной СУБД для запросов на чтение и выгрузку данных. Если в запросе явно не указана СУБД-источник данных, он перенаправляется в наиболее оптимальную СУБД для такого рода запросов. Функция автовыбора СУБД учитывает сильные стороны каждой из СУБД хранилища. Подробнее см. в разделе Маршрутизация запросов к данным.

Устойчивость к дублированию данных

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

Возможность подключения таблиц СУБД

Система позволяет включать в схему данных обычные таблицы СУБД хранилища (standalone-таблицы). Такие таблицы включаются вне контекста темпоральности и изоляции и могут применяться в задачах, где темпоральность избыточна. Работа со standalone-таблицами ведется с использованием синтаксиса SQL+.

Хранение холодных данных

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

Аутентификация

Система поддерживает аутентификацию запросов на основе авторизационных токенов (JSON Web Token, также JWT). Если аутентификация включена, доступ к системе получают только те пользователи и внешние системы, которые предоставили корректные и достоверные авторизационные токены.

Для генерации авторизационных токенов можно использовать любой авторизационный сервис, поддерживающий стандарт JWT, например Keycloak.

Роли и полномочия

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

Партиционирование данных

Система поддерживает горизонтальное и вертикальное партиционирование данных для СУБД ADP, которое позволяет ускорить запросы к данным за счет обращения к подмножеству данных (партициям), а не всему набору данных.