2013-07-10 27 views
1

我需要創建一個數據庫來處理點擊流(從〜240個子域)。我使用Java腳本來抓取每次點擊的信息,例如(主機,頁面,日期,用戶ID,Referer,主機名,RefererPath,uniqueUserID),並通過Java web動態應用程序將數據插入數據庫。每天大約有900萬條新記錄,我必須每分鐘插入新記錄。另一個應用程序需要能夠在最後(10分鐘,20分鐘,30分鐘,1小時... 24小時)內檢索關於特定文章/子域的綜合瀏覽量/唯一訪問者/等的信息。我只需要保留最近3個月的記錄。什麼數據庫用於點擊流應用程序RELATIONAL OR NOSQL?

最初我想過使用MySQL,因爲我只對開源有興趣。但是我正在考慮NoSQL解決方案。問題是,我只有關係數據庫方面的經驗,而且我們無法確定NoSQL是否會成爲更好的解決方案。如果我選擇使用NoSQL,還應該使用哪個數據庫?並且Key-value商店會是最好的選擇嗎?

回答

2

我猜這個數據的一致性並不重要(統計?),所以你確實可以保留一點的一致性。 NoSQL似乎是一個不錯的選擇,一個關鍵的價值商店也是我的選擇。現在真正的問題是:什麼是最適合的?

我給一個考慮的Redis和了Riak(這基本上是最知名的):

了Riak(AP系統):

Redis的(CP系統):

  • 真快
  • 在內存中的:你需要內存!這也意味着你需要複製,所以你不會失去所有的崩潰。 Redis也使用我相信的磁盤快照。
  • 主/從與reelection
  • BASE

兩個有更多的功能,你應該去閱讀陷阱的文檔。 Redis主要用作緩存,因爲它速度很快,而Riak專注於容錯。考慮到您的可擴展性要求,兩者都可以滿足您的需求。因此,您必須根據以上內容進行選擇。

+0

非常感謝:)一致性並不重要我也不需要任何主鍵或外鍵 – tramwaj29

相關問題