Технологии интеграции sql-ориентированных и nosql систем

Технологии интеграции sql-ориентированных и nosql систем

В данной статье рассматриваются существующие технологии хранения структурированной и неструктурированной информации в рамках одного хранилища с использованием разных моделей данных.

Авторы публикации

Рубрика

IT-Технологии

Журнал

Журнал «Научный лидер» выпуск # 41 (43), декабрь ‘21

Дата публицакии 11.12.2021

Поделиться

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

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

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

При решении бизнес-проблем в системах электронной коммерции для хранения информации о покупательских корзинах следует использовать хранилище, обеспечивающее высокую степень доступности и допускающее масштабирование, но это же хранилище не поможет при поиске товаров, купленных друзьями клиентов, поскольку это совершенно другая задача. Для обозначения гибридного подхода к хранению информации был придуман термин многовариантное хранилище (polyglot persistence) [1].

Пример применения многовариантного хранилища для электронной коммерции изображен на рисунке 1.

Рисунок 1 – Пример реализации многовариантного хранения

Самыми популярными представителями данного подхода являются BigDawg и PolyBase.

BigDAWG представляет собой систему, реализующую многовариантное хранилище и имеющую открытый исходный код. Она предоставляет общий интерфейс для трех отдельных типов баз данных: реляционной, представленной СУБД PostgreSQL, базы данных массивов - SciDB и текстовой БД Accumulo [2].

PolyBase — это система, созданная для расширения возможностей Microsoft SQL Server, позволяющая обрабатывать запросы SQL, которые считывают данные из других хранилищ. Первоначально поддерживаемыми внешними источниками данных были Hadoop и хранилище BLOB-объектов Azure. Версия 2019 года стала поддерживать такие баз данных как: Oracle, MongoDB и Teradata, а также практически любого хранилища данных, реализующего стандарт ODBC. PolyBase также позволяет выполнять вычисления во внешних системах, а также создавать кластеры SQL Server для параллельной обработки запросов [3].

Как альтернатива подходу, рассмотренному выше, был разработан другой — это создание одной единой базы данных для управления различными моделями данных с полностью интегрированной серверной частью для удовлетворения требований к производительности, масштабируемости и отказоустойчивости.

Основу полностью интегрированной единой системы управления можно проследить до концепции ORDBMS (т.е. систем управления объектно-реляционными базами данных), которые заимствуют и адаптируют модель объектно-ориентированного программирования к реляционным базам данных. ORDBMS может хранить и обрабатывать различные форматы данных, используя специальные типы данных, функции и др. Но существенное различие между ORDBMS и многомодельными базами данных состоит в том, что в структуре ORDBMS используется только реляционная модель, то есть все другие модели разрабатываются на основе реляционных технологий.

На рисунке 2 представлена хронология развития мультимодельных СУБД.

Рисунок 2 – Хронология поддержки мультимодельности

Развитие систем, соответствует растущей популярности отдельных форматов данных. Например, из рисунка 2 видно, что первая основная волна многомодельных баз данных появилась вскоре после начала нового тысячелетия и связана с появлением XML-документов. Основные реляционные СУБД реализовали поддержку XML, обычно с помощью стандарта SQL / XML или его разновидностей.

Таблица 1 отражает сведения о поддерживаемых моделях данных для конкретных многомодельных СУБД. Хочется обратить внимание, что в случае документной модели рассматривается поддержка как наиболее распространенного формата JSON, так и его варианты. Также таблица содержит отдельный столбец для формата XML, который имеет определенные особенности и историю поддержки.

Для большей конкретики, в таблице также отдельно выделена общая графовая модель и RDF формат данных. Аналогично выделяется отдельный столбец объектно-подобным моделям (т.е., за исключением классической объектной модели).

В последнем столбце показана популярность систем управления данными по состоянию на ноябрь 2021 года. Информация представлена на основе статистики DBEngines Ranking.

Таблица 1 – Обзор поддерживаемых моделей данных

Модель данных СУБД

Реляционная

Реляционная

Колоночная Ключ-значение JSON XML Графовая RDF UDT/object Популярность/
место в рейтинге (2021)
Реляционная PostgreSQL       4
SQL Server       3
IBM DB2       7
Oracle DB       1
Oracle MySQL           2
Колоночная Cassandra             10
CrateDB         183
DynamoDB       16
HPE Vertica           187
Ключ-значение Riak         285
c-treeACE           335
Oracle NoSQL DB         82
Документная ArangoDB           74
Couchbase             28
MongoDB           5
Cosmos DB           26
MarkLogic         51
Графовая OrientDB           80
Объектная InterSystems Caché         97

Список литературы

  1. Садаладж, Прамодкумар Дж. NoSQL. Новая методология разработки нереляционных баз данных [Текст] / Прамодкумар дж. Садаладж, Мартин Фаулер; [пер. с англ. и ред. Д. А. Клюшина]. - Москва [и др.]: Вильямс, 2013. - 183 с.: ил.
  2. What is BigDawg [Электронный ресурс] // BigDawg Polystore. URL: https://bigdawg.mit.edu/
  3. Общие сведения о виртуализации данных с помощью PolyBase [Электронный ресурс] // PolyBase Guide | Microsoft Docs. URL: https://docs.microsoft.com/ru-ru/sql/relational-databases/polybase/polybase-guide/

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

Прием материалов
c по
Осталось 6 дней до окончания
Размещение электронной версии
Загрузка материалов в elibrary