NoSQL для обработки больших объемов данных

 

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

Определение больших объемов данных, Big Data, используется для обозначения таких технологий как хранение и анализ значительного объема данных, при обработке которых требуется высокая скорость и принятие решений в режиме реального времени [1].

Для решения проблемы больших объемов данных  известна специальная разновидность баз данных NoSQL. Основные приемущества баз данных NoSQL:

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

·                     Безсхемная разработка - Реляционные СУБД требуют четко описанную структуру данных до начала работы. NoSQL решения предлагают более гибкие решения.

·                     Автоматизированная (или очень простая) репликация/масштабирование - NoSQL базы данных быстро развиваются - разработчики активно решают основные проблемы, одна из которых - репликация и масштабирование. В отличии от реляционных СУБД, NoSQL решения легко масштабируются и работают с кластерами.

·                     Большой выбор - когда дело доходит до выбора NoSQL хранилища, существует большой выбор различных моделей. Как было сказано ранее, то, насколько правильно вы сделаете свой выбор,  повлияет на производительность вашей системы [2].

Существует довольно много различных моделей и функциональных систем для NoSQL баз данных:

·                     Хранилище ключ-значение - Redis, MemcacheDB и т.д. (обычно хранят данные в памяти)

·                     Распределённое хранилище (Column-oriented) - Cassandra, HBase и т.д (предназначены для очень больших объёмов данных).

·                     Документо-ориентированные СУБД - MongoDB, Couchbase и т.д. (предназначены для хранения иерархических структур данных - документов)

·                     БД на основе графов - OrientDB, Neo4J и т.д.

      Из этих моделей для  дальнейших исследований  выбрана  Документо-ориентированная модель с использованием   СУБД MongoDB.

MongoDB — документоориентированная база NoSQL с открытым кодом, не использующая схемы. Эта отказоустойчивая высокопроизводительная СУБД с постоянным хранением поддерживает язык сложных запросов и имеет реализацию MapReduce. Особенности MongoDB:

·                     простой и мощный движок документоориентированного хранения (используется формат JSON и динамические схемы);

·                     полная поддержка индексации (может быть проиндексирован любой атрибут);

·                     доступность данных (поддерживается зеркалирование по локальной и глобальной сети);

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

В СУБД поддерживаются также сложные запросы к документам, атомарные модификаторы, обеспечивающие бесконфликтность операций, гибкая агрегация и обработка данных, а также собственная файловая система GridFS, позволяющая сохранять файлы большого размера (больше 16 Мбайт) без усложнения стека [3].

 

 

Список использованной литературы

 

[1] Balakayeva G, Nurlybayeva K. Algorithmic Scoring Models. Applied Mathematical Sciences, Journal for Theory and Applications, Vol. 7, 2013, no.12,571-586.

[2] Мартин Фаулер, Прамодкумар Дж. Садаладж, NoSQL: новая методология разработки нереляционных баз данных, Пер. с англ. - М.: ООО "И.Д. Вильяме", 2013. - 192 с.

 [3] https://belyakov.su/primer-ispolzovaniya-mongodb