私はmongoDbが初めてで、大量のデータを計算するためにmap reduceを使用する予定です。ご存知のように、基準に一致するマップ機能があり、特定のフィールドに必要なデータを出力します。私のマップ関数には、複数のエミットがあります。現在、1 つのドキュメントから 50 のフィールドが出力されています。つまり、コレクション内の 1 つのドキュメントから一時テーブル内の 40 ドキュメントに爆発します。したがって、処理するドキュメントが 100 万個ある場合、map 関数の終わりまでに一時テーブルに 100 万 * 40 個のドキュメントが格納されます。
次のステップは、このコレクションをソートすることです。(マップの並べ替えパラメーターを使用していませんが、役に立ちますか?)
map 関数を 2 つに分割することを考えました….しかし、もう 1 つの問題がありました… map 関数の実行中に、たまたまドキュメント データ全体をスキップするという例外に遭遇した場合 (つまり、そのドキュメントからデータを出力しないように)、分割した場合できないだろう…。
mongoDB.org で、次のようなコメントを見つけました...「並べ替えを使用して MR ジョブを実行すると、MR の最初の段階で 23% に達するまでに 1.5 日かかります。並べ替えなしで MR ジョブを実行すると、約 24 日かかります。 -すべてのジョブで 36 時間。また、jsMode をオフにすると、MR が 2 倍高速化されます (ソートをオフにする前に)"
並べ替えを有効にすると役に立ちますか? またはjsmodeをオフにすると役立ちますか?私はmongo 2.0.5を使用しています
なにか提案を?
前もって感謝します.G