В последнее время набирает популярность семейство подходов и методологий обработки данных, объединенных общими названиями 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{
-
Itunes Теперь Поддерживает Vista
19 Oct, 24 -
Новое Решение Старой Проблемы С Интернетом
19 Oct, 24 -
Хабралюди Любят Firefox
19 Oct, 24 -
3.14Zdim #4#
19 Oct, 24 -
Безопасная Платежная Карта Своими Руками
19 Oct, 24