Map-Reduce - применимо только к моделям данных NoSql со значением ключа?

(У меня есть только концептуальные знания NoSQL, нет опыта работы)

Мне известны следующие типы баз данных NoSQL:

  • ключ-значение, семейство столбцов, базы данных документов (агрегаты)
  • графовые базы данных

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

1 ответ

Поддержка уменьшения карты, вероятно, не должна быть основой для выбора хранилища данных.

Во-первых, сокращение карты - не единственный способ крупномасштабной обработки данных. Например, MongoDB реализовал поддержку уменьшения карты на ранних этапах (в v1), но позже добавил свою структуру агрегации, которая была гораздо более общей, и включала множество задач, которые могли бы использовать уменьшение карты.

Сокращение карт - это всего лишь одна парадигма для обработки больших наборов данных. Используйте его только в том случае, если вашему приложению необходимо обработать большое количество записей данных с помощью картографа, а затем объединить результаты с редуктором. Это все, что на самом деле делает. Что касается того, когда парадигма применима, а когда нет, просто посмотрите на ваш вариант использования. Вам нужно последовательно манипулировать всеми своими записями, а затем объединять результаты? Или есть другой способ сформулировать вашу проблему?

Взгляните на платформу агрегирования Mongo, чтобы найти примеры, где агрегация используется в качестве более простой альтернативы многим проблемам, для которых принудительное их преобразование в проблему уменьшения карты будет излишним.

Это также должно помочь вам понять ваш вопрос о том, можете ли вы выполнять крупномасштабную обработку данных без преобразования карты, на что ответ "да". Очевидно, что map-Reduction хорош для создания поисковых индексов, но многие проблемы с большими наборами данных выигрывают от других парадигм.

Также будет полезен веб-поиск по "альтернативам уменьшению карты".

Другие вопросы по тегам