2011-12-30 5 views
2

24時間、7日間などのさまざまな期間でユーザーの活動を追跡する必要があります。非常に多数の異なる期間が予想されますが、ユーザーの数は非常に多くなります多分、おそらく何百万人も。各ユーザーの統計を要約する夜間のcronjobは妥当に聞こえません。過去に私はRRDテーブルでこのようなネットワークの使用状況を追跡しましたが、それらはBerkeleyDBだけであり、統計的に1つのファイルでなければ動作しませんでしたが、そのアイデアは私の後ろにあるようです。私が見落としているパターン/ベストプラクティスはありますか?最近の活動を追跡するためのラウンドロビンのようなSQLテーブル

+1

どのような種類のユーザーアクティビティですか? Apacheを実行しているUnixシステムでのWebページ訪問? SQLにログインしていますか?そうであれば、データベーススキーマの関連部分を投稿できますか? – Andomar

+0

なぜcronjobのサウンドは合理的ではありませんか?夜間に6時間ごとに実行する必要はありません。 – Ben

+0

アクションには、ログイン、またはSQLテーブルのphpで追跡されるリンクのクリックが含まれます。 cronに関して私の考えは、100万人のユーザーがいて、そのアクションテーブルに対して各ユーザーを計算する必要がある場合、日付インデックスを使用しても、それは非常に遅くなるということです。 – heyyouyayou

答えて

0

どのアーキテクチャを使用するか、どのハードウェアで購入できるかによって異なります。

大量のデータを分析するには、Hadoopのようなクラスタベースのフレームワークを利用し、データを扱うmap/reduce関数を作成します。

http://hadoop.apache.org/を参照してください。

ユーザーアクティビティをDailiyファイルに保存して、Hadoopクラスタにアップロードしてから処理することができます。

このようなソリューションは、商品のみのハードウェアが必要な場合に必要なスケーラビリティを提供します。

関連する問題