2016-02-29 55 views
1

是否有用於存儲用戶活動數據的前往數據庫?這些數據將是這個樣子:用戶活動數據的理想數據存儲?

用戶ID,時間戳,活動(字符串,最多255個字符),userGroup表示

要求(將用戶分爲組的任意方式)是: 1.高寫入吞吐量 2.(相對較高)可用性 3.讀取將僅用於儀表板/報告,因此可以容忍更高的延遲。 4.允許使用巨大的表格:可以在幾天內輕鬆獲得100M記錄,讀取速度可以變慢,但寫入不能。

堆棧我想到會是這個樣子:

Web應用程序 - > Play2App(斯卡拉) - > [數據庫]

AdminUI < - Play2App(斯卡拉)< - (火花或可能?沒有)< - [數據庫]

什麼是這個用例的好數據庫技術?我已經有RDB驅動其他所有內容,但希望另一個(很可能)NoSQL數據庫僅存儲用戶活動數據。在這種情況下是否有一個前往數據庫?

目前頂級的競爭者: 的MongoDB,CouchDB的,HBase的(但會討厭要管理它),卡桑德拉

回答

2

根據您的要求,聽起來像Cassandra是要走的路。

Cassandra具有高度優化的寫入路徑,並且對於寫密集型工作負載的性能表現非常好。 Cassandra也可以輕鬆地容納更多數量的記錄,因爲您已經承諾分段存儲數據。限制因素是每個分區(userGroup)大約有100MB,在規劃每個用戶組有多少用戶時應該沒問題。

請注意,Cassandra沒有靈活的模式,這對於您的計劃來說很合適,但如果您希望將來能夠生成更多可自定義的報告,則效果不佳。

+0

我會用分區的時間戳範圍嗎?每個UserGroup可能擁有數十萬個用戶。 (提示,這是一個AB測試系統) – BZapper

+0

真的取決於你想要報告的樣子。報告是否適合特定用戶,如他們活動的時間表。或者它將成爲整個用戶組的時間表。或者它會不會是一個時間表 - 聚合活動類型? –

相關問題