Поддержка уменьшения карты, вероятно, не должна быть тем, на чем следует основывать свой выбор хранилища данных.
Во-первых, уменьшение карты — не единственный способ обработки крупномасштабных данных. Например, MongoDB рано реализовала поддержку уменьшения карты (в версии 1), но позже добавила свою Aggregation Framework, которая была гораздо более общей и включала в себя множество задач, которые могли бы использовать уменьшение карты.
Сокращение карты — это всего лишь одна из парадигм обработки больших наборов данных. Используйте его только, если вашему приложению необходимо обработать большое количество записей данных с помощью преобразователя, а затем объединить результаты вместе с преобразователем. Это все, что он действительно делает. Что касается того, когда парадигма применима, а когда нет, просто посмотрите на свой вариант использования. Вам нужно последовательно манипулировать всеми своими записями, а затем объединять результаты? Или есть другой способ сформулировать вашу проблему?
Взгляните на структуру агрегации Mongo, где приведены примеры использования агрегации как более простого альтернатива многим проблемам, для которых принуждение их к проблеме уменьшения карты было бы излишним.
Это также должно помочь вам понять ваш вопрос о том, можете ли вы выполнять крупномасштабную обработку данных без уменьшения карты, на что ответ положительный. Очевидно, что map-reduce хорош для создания поисковых индексов, но многие проблемы с большими наборами данных выигрывают от других парадигм.
Также будет полезен веб-поиск «альтернативы уменьшению карты».
person
Ray Toal
schedule
06.06.2013