私はMongoDBを比較的新しくしており、これまでのところ本当に感銘を受けています。私はドキュメントストアをセットアップする最善の方法に苦労しています。私はTwitterのデータを使っていくつかの要約分析をしようとしています。ユーザーのドキュメントにツイートを入れるのか、それとも別のコレクションにするのかはわかりません。ユーザーのモデルの中につぶやくようなものは、サイズに関してはすぐに限界に達するだろう。そうであれば、ユーザーのつぶやきのグループ全体でMapReduceを実行するにはどうすればよいでしょうか?多数の内部文書を持つMongoDBのデータ構造
私はあまりにも漠然としていないと思っていますが、私はドメインモデルを設定する限り、あまりにも具体的で、あまりにも遠くに間違った道を踏み出すことを望んでいません。
私はあなたが公聴会のすべての退屈している確信しているように、私は次のようになり、私はそれはモンゴで論理スキーマのように思える
| USER |
--------
|ID
|Name
|Etc.
|TWEET__|
---------
|ID
|UserID
|Etc
ように私のスキーマをレイアウトうRDBの土地に慣れ
User
|-Tweet (0..3000)
|-Entities
|-Hashtags (0..10+)
|-urls (0..5)
|-user_mentions (0..12)
|-GeoData (0..20)
|-somegroupID
しかし、それはすぐに容量を超えてユーザ文書を膨らませません。しかし、同様のsomegroupIDを持つユーザーに属するつぶやきについて分析したいと思います。上記のモデルレイアウトには概念的には意味がありますが、どちらの点があまりにも不揃いですか?そして実行可能な選択肢は何ですか?
私は「私は似たsomegroupIDを持つユーザーに属するツイートの分析を実行したいと思います」言及しませんでした。そのグループでトラッキングされるすべてのツイートに「somegroupID」要素を追加するために挿入パターンを破ることはありませんか?そうすれば、その部分集合のmapReduce/analysisを実行することが明らかになります。 – Lloyd
「挿入パターン」とは何を意味するのか分かりませんし、どのような分析をしたいのかは言及していません。いずれにしても、通常のクエリで分析を行うことができれば、M/Rを避けたいでしょう。 – Derick
私はデータを更新するためのベストプラクティスを意味しました。ユーザーが別のユーザーの「somegroupID」に追加された場合、そのユーザーに関連付けられたすべてのツイート文書にそのsomegroupIDを挿入する必要があります。挿入に高いオーバーヘッドのようです。次に、通常のクエリで分析することに関して、MongoはGROUP BYでcount()のようなことをしますか? 1日あたりのつぶやき数などを取得するには? – Lloyd