каков рекомендуемый максимальный уровень излучения в функции карты?

Я новичок в mongoDb и планирую использовать уменьшение карты для вычисления большого объема данных. Как вы знаете, у нас есть функция карты, чтобы соответствовать критериям, а затем выдавать необходимые данные для данного поля. В моей функции карты у меня есть несколько испусканий. На данный момент у меня есть 50 полей, созданных из одного документа. Это означает, что из одного документа в коллекции увеличивается до 40 документов во временной таблице. Итак, если у меня есть 1 миллион документов для обработки, к концу функции карты во временной таблице будет 1 миллион * 40 документов.

Следующим шагом будет сортировка этой коллекции. (Я не использовал параметр сортировки карты, это поможет?)

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

На mongoDB.org я нашел комментарий, в котором говорилось: «Когда я запускаю задание MR с сортировкой, требуется 1,5 дня, чтобы достичь 23% на первом этапе MR. Когда я запускаю задание MR без сортировки, это занимает около 24 дней. -36 часов на всю работу. Также при отключении jsMode мой MR ускоряется в два раза (до того, как я отключу сортировку)"

Поможет ли включение сортировки? или поможет ли отключение jsmode? я использую монго 2.0.5

Любое предложение?

Заранее спасибо.G


person Gana    schedule 09.08.2012    source источник


Ответы (1)


Следующим шагом будет сортировка этой коллекции. (Я не использовал параметр сортировки карты, это поможет?)

Не знаю, что вы имеете в виду, у MR нет параметров сортировки, только у входящего запроса есть параметр сортировки. Параметр сортировки входящего запроса сортирует только поступающие данные. Если вы не ищете какое-то конкретное поведение, которое позволит избежать сортировки окончательного вывода с использованием входящей сортировки, которую вам обычно не нужно сортировать.

Как вы собираетесь использовать этот MR. Очевидно, это не будет в реальном времени, иначе вы просто уничтожите свои серверы, так что я думаю, что это фоновый процесс, который запускается и форматирует данные так, как вы хотите. Я бы посоветовал изучить добавочные MR, чтобы вы выполняли дельта-обновления в течение дня, чтобы ограничить количество ресурсов, используемых в любой момент времени.

Итак, если у меня есть 1 миллион документов для обработки, к концу функции карты во временной таблице будет 1 миллион * 40 документов.

Вы излучаете несколько раз? Если нет, то временная таблица должна иметь только один ключ на строку с документами формата:

{ _id: emitted_id [{ //каждый из ваших документов, которые вы отправляете }] }

Это показано: http://kylebanker.com/blog/2009/12/mongodb-map-reduce-basics/

или поможет ли отключение jsmode? я использую монго 2.0.5

Отключение jsmode вряд ли сделает что-то существенное, и результаты от него могут быть разными.

person Sammaye    schedule 10.08.2012