Map-Reduce, Например Mongodb

В последнее время набирает популярность семейство подходов и методологий обработки данных, объединенных общими названиями Big Data и NoSQL. Одной из вычислительных моделей, применяемых к большим объемам данных, является технология Map-Reduce, разработанная в недрах Google. В этом посте я попытаюсь рассказать о том, как данная модель реализована в нереляционной СУБД MongoDB. Что касается будущего нереляционных баз данных вообще и технологии Map-Reduce в частности, то на эту тему можно дискутировать бесконечно, и этот пост совсем не об этом.

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

MongoDB, нереляционная СУБД, представляет данные в виде коллекций документов JSON и предоставляет различные способы обработки этих данных.

В том числе, есть своя реализация модели Map-Reduce. Насколько целесообразно использовать именно эту реализацию для практических целей, будет сказано ниже, а пока ограничимся тем, что данная реализация прекрасно подходит для знакомства с самой парадигмой Map-Reduce. Итак, что же такого особенного в Map-Reduce? Предположим, мы разрабатываем большое онлайн-приложение, данные которого распределенно хранятся на нескольких серверах во всех уголках земного шара.

Помимо прочего, у пользователя указаны его интересы.

Мы решили подсчитать популярность каждого интереса, просто определив количество пользователей, разделяющих этот интерес.

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

В мире реляционных СУБД и SQL-запросов такое представить достаточно сложно, но с помощью Map-Reduce эта задача вполне решаема.

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

   

{

Теги: #NoSQL #Большие данные #map уменьшить #mongodb #NoSQL #mongodb #Big Data
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.