Map-Reduce - применимо только к моделям данных NoSql со значением ключа?
(У меня есть только концептуальные знания NoSQL, нет опыта работы)
Мне известны следующие типы баз данных NoSQL:
- ключ-значение, семейство столбцов, базы данных документов (агрегаты)
- графовые базы данных
Применима ли парадигма Map-Reduce ко всем? Мое предположение было бы отрицательным, поскольку Map-Reduce часто обсуждается с точки зрения ключей и значений, но, поскольку различие между различными хранилищами NoSQL не столь четкое, мне интересно, где Map-Reduce находится и не применяется. И так как я нахожусь в процессе оценки того, какую БД использовать для нескольких идей, которые у меня есть, я должен подумать, возможно ли добиться крупномасштабной обработки независимо от того, какой магазин я использую.
1 ответ
Поддержка уменьшения карты, вероятно, не должна быть основой для выбора хранилища данных.
Во-первых, сокращение карты - не единственный способ крупномасштабной обработки данных. Например, MongoDB реализовал поддержку уменьшения карты на ранних этапах (в v1), но позже добавил свою структуру агрегации, которая была гораздо более общей, и включала множество задач, которые могли бы использовать уменьшение карты.
Сокращение карт - это всего лишь одна парадигма для обработки больших наборов данных. Используйте его только в том случае, если вашему приложению необходимо обработать большое количество записей данных с помощью картографа, а затем объединить результаты с редуктором. Это все, что на самом деле делает. Что касается того, когда парадигма применима, а когда нет, просто посмотрите на ваш вариант использования. Вам нужно последовательно манипулировать всеми своими записями, а затем объединять результаты? Или есть другой способ сформулировать вашу проблему?
Взгляните на платформу агрегирования Mongo, чтобы найти примеры, где агрегация используется в качестве более простой альтернативы многим проблемам, для которых принудительное их преобразование в проблему уменьшения карты будет излишним.
Это также должно помочь вам понять ваш вопрос о том, можете ли вы выполнять крупномасштабную обработку данных без преобразования карты, на что ответ "да". Очевидно, что map-Reduction хорош для создания поисковых индексов, но многие проблемы с большими наборами данных выигрывают от других парадигм.
Также будет полезен веб-поиск по "альтернативам уменьшению карты".