9

私は MongoDB で MapReduce の基本を理解しようとしてきましたが、それを実装した後でも、SQL の GROUP BY や Mongo 独自の GROUP BY とどのように違うのか正確にはわかりません。SQL サーバーでは、GROUP BY はストリームまたはハッシュ集計によって実行できます。MapReduce はハッシュ集計に似ていませんか?サーバーが多数あるだけです。

「重い操作」であるため、MongoDB の MR をバックグラウンド プロセスとして実行する場所を読んでいます。データがシャーディングされていることを考えると、GROUP BY も同様に「重い」のではないでしょうか? とはいえ、MR ジョブとして、または GROUP BY クエリを使用して実装できるタイプの操作のみを比較しようとしています。

GROUP BY ではできず、MR だけでできることはありますか?

また、Hadoop は MR に非常に優れているようです (これは私が読んだものにすぎません..私は Hadoop に取り組んだことがありません)。Hadoop の MR は Mongo の MR とどう違うのですか?

よくわかりません。MapReduce の必要性を説明する優れたチュートリアルを教えてください。

4

2 に答える 2

8

MRを使って得られるのはスピードです。GROUP BY は SQL では低速な操作であり、MR は MongoDB ではさらに低速です。しかし、あなたがしていることは、新しいコレクションを作成し、それらをリアルタイムで反復することです。これは、大量のデータがあり、リアルタイムで反復できるようにしたい場合に非常に適しています。

私が取り組んでいるプロジェクトでは、バックグラウンドで実行されている Python スクリプト (cron ジョブ) があり、1 日に 1 回異なるマップ/リデュースを実行しています。SQL group by を使用して大きなテーブルを反復する代わりに、MR を使用して 1 回反復し、作成された新しいコレクションを高速に反復します。

Hadoop の経験はありません。申し訳ありませんが、そこに記入することはできません。

チュートリアル: http://www.monovue.com/2010/11/03/yet-another-mongodb-map-reduce-tutorial/

編集:

ここでは、MongoDB Map/Reduce への SQL クエリの完全な翻訳を見ることができます GROUP BY から MongoDB への Map/Reduce : http://rickosborne.org/download/SQL-to-MongoDB.pdf

于 2012-07-06T09:00:01.913 に答える
3

多くの人がMongoDBをデータストレージとして使用し、Hadoopを処理に使用しています。2つの間にコネクタがあるためです。各MongoDBノードは、それを読み取る複数のHadoopノードを処理できます。注意として、メモリ用にmongoノードとHadoopノードを分離することをお勧めします。

あなたがそれらを持っていない場合のために、ここにあなたのためのいくつかの文書があります

注目に値するもう1つのことは、 2.2でリリースされる新しい集約フレームワークです。これは、SQLの操作をMongoDB集約フレームワークの操作と同等にするチャートです。

于 2012-07-06T09:35:33.613 に答える