0

だから私はmongodb(私はそこにいるのは初めてです)を使用して、ポルノWebサイトの一般的なインプレッションとトラフィックを追跡する予定です。バナーのインプレッションが 100 万を超えることもあります。そして、私はさまざまなバナーも持っています...したがって、おそらく毎日、バナーに10億のインプレッションがあり、それをデータベースに保存して、特定の時間枠でどのバナーが最も変換されているか、どのバナーが変換されているかを確認できるようにします特定の国で最高など

たとえば、コレクション内のオブジェクトは次のようになります。

{ "_id" : ObjectId("5124d03d512c175714000000"), "bid" : ObjectId("5124a9ec512c178710000000"), "city" : "Rome", "country" : "Italy", "client_id" : "127.0.0.1", "referer" : "youporn.com", "user_agent" : "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0", "visit_datetime" : "2013-Feb-20 02:31:41", "visit_year" : "2013", "visit_month" : "Feb", "visit_day" : "20" }

では、情報とアドバイスが必要なのですが、これは印象を保存するための良い方法ですか、それとも私の組織はまったく異なるものにする必要がありますか (国ごとに別々のコレクションかもしれませんが、それもいつか問題になるでしょう) ?

すべてのアイデア、提案、質問、コメントに本当に感謝しています。

4

1 に答える 1

1

AS @Joachim Isaksson が上記の質問にコメントしたように、生成されるデータの量は膨大です。これに基づいて、この金額を処理する能力があるかどうかを判断する必要があります。

それらを持っている場合は、後でデータから何かを取得するためにいくつかのマップと削減のアプローチが必要になると思います(データの現在の設計で)。

ここで私が目にする主な問題は、答えてもらいたい具体的な質問がいくつかあるということです。その場合、それに応じてコレクションをモデル化できます。特に、どの次元でデータが必要か。そうしないと、ほとんどの場合、最終的に使用することのない一連のデータを収集するか、さらに悪いことに、間違ったデータを収集することになります。

国と日付のみに関心がある場合は、バナー/日/国の組み合わせでエントリのカウンターを増やしてみませんか? したがって、日付と国全体を毎回保存する代わりに、次のようなエントリを作成します。

{ "bannerId" : "b1", "country" : "IT", "date" : "20130220", "count" : 0 }

次に、オブジェクトのカウント部分をインクリメントします。これにより、多くのデータを節約できます。より詳細な情報 (時間単位など) が必要な場合は、1 時間 (日付 + 時間) ごとにエントリを保存することもできます。

それ以外の場合は、データを解釈するためのすべてのツールも提供する既存のデータ ウェアハウス アプリケーションを検討してみませんか? 選択肢にもなります。

于 2013-02-20T15:29:00.037 に答える