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