2011-12-30 67 views
2

我們需要跟蹤不同時間段(如24小時,7天等)的用戶活動。我們預計不會有很多不同的時期,但用戶數量會非常多很大,可能是數百萬美元。每晚用cronjob來總結每個用戶的統計數據聽起來不太合理。我知道在過去,我跟蹤了RRD表中的網絡使用情況,但這些僅僅是BerkeleyDB的數據,並且每個統計數據都必須是一個文件,這是行不通的,但是這個想法看起來像我之後的想法。有沒有我忽略的模式/最佳實踐?用於跟蹤最近活動的循環SQL查詢表

+1

什麼樣的用戶活動?在運行Apache的Unix系統上訪問網頁?是SQL中的日誌記錄,如果是這樣,你可以發佈數據庫模式的相關部分嗎? – Andomar 2011-12-30 22:51:54

+0

爲什麼cronjob聽起來不合理?它不一定是每晚可以每隔6個小時左右... – Ben 2011-12-30 23:22:40

+0

操作將包括登錄,或點擊鏈接,可以通過SQL在一個SQL表中跟蹤。關於cron,我的想法是,如果我們有100萬用戶,並且必須根據該操作表計算每個用戶,即使使用日期索引,它的速度也將非常慢。 – heyyouyayou 2012-01-03 23:56:56

回答

0

這取決於您想要使用哪種架構以及您可以負擔哪些硬件。

對於海量數據分析,我會選擇像Hadoop這樣的基於羣集的框架:並構建可處理數據的map/reduce函數。

參見http://hadoop.apache.org/

用戶活動可以存儲在dailiy文件中以上傳到Hadoop集羣,然後進行處理。

這樣的解決方案可以爲您提供所需的可擴展性,只需要商品硬件。