0 |
Если есть свободное время и интерес к последним течениям в области баз данных, то можно ознакомиться со статьей MapReduce: a major step backwards Дэвида Дьюуитта, и несколько ответов на нее - от Грега Линдена, который теперь в Microsoft, и от Марка Чу-Каролла, который в Google, однако поддерживает MapReduce не из-за работодателя, а по собственной инициативе.
Авторы статьи в Database Column утверждают, что MapReduce - это шаг назад, т.к. вместо дизайна кластера баз данных инженеры занялись изобретением велосипеда, отказавшись от реляционной модели хранения данных, и положившись на файлы, таким образом отказавшись от индексации и прочих благ. Их оппоненты утверждают, что существует ряд задач, для которых MapReduce практически идеален, а вот базы данных трудно адаптировать.
Из своего опыта все-таки соглашусь с оппонентами. В моей нынешней компании приходится работать как с распределенными базами данных, так и с обширными обьемами данных, которые хранятся в файлах. Мы используем MySQL для баз данных и написанную в домашних условиях утилиту для прогона запросов по нескольким тысячам БД и аггрегации результатов в единое целое, что в принципе работает неплохо. Для распределенных подсчетов используется Hadoop, для которого написание сценариев map и reduce занимает в среднем полчаса, и в итоге тоже работает неплохо.
Про DCIM у забезпеченні успішної роботи ІТ-директора
0 |
Я считаю не совсем корректно сравнивать именно в таком контексте как "MapReduce ПРОТИВ баз данных".
Речь ведь не идет о том, чтобы заменить одно другим. Google предложил концепцию MapReduce для решения конкретных задач, связанных с обработкой большого кол-ва данных. В этом сегменте данная концепция отлично работает, но она НЕ заменяет ни реляционные базы данных, ни любые другие.
В частности, Google для поддержания технологии пришлось разработать собственное хранилище BigTable, потому что реляционная модель тут плохо ложится.
В Apache Hadoop, например, для тех же целей присутствует HBase.
Я что хочу сказать – MapReduce и сопутствующие решения не предназначены для хранения данных и тем более для интерактивного взаимодействия с пользователем. Это решения исключительно для расчета/аггрегации/обработки данных, которые потом куда-то можно уже аккуратненько сложить.