用户活动数据的理想数据存储区?

时间:2016-02-29 05:29:14

标签: database scala playframework nosql

是否有用于存储用户活动数据的首选数据库?数据看起来像这样:

UserId,Timestamp,Activity(字符串,最多255个字符),userGroup(将用户划分为组的任意方式)

要求是:  1.高写入吞吐量  2.(相对较高)可用性  3.读取仅适用于仪表板/报告,因此可以容忍更高的延迟。  4.允许使用大表:几天内可以轻松获得100M记录,读取速度会变慢但写入不能。

我想到的堆栈看起来像这样:

WebApp - > Play2App(Scala) - > [数据库]

AdminUI< - Play2App(Scala)< - (Spark?或者什么也没有)< - [数据库]

这个用例有什么好的数据库技术?我已经拥有驱动其他所有内容的RDB,但希望另一个(最有可能的)NoSQL数据库只存储用户活动数据。在这种情况下是否有一个首选数据库?

目前最有竞争力的竞争者: MongoDB,CouchDB,Hbase(但不想管理它),Cassandra

1 个答案:

答案 0 :(得分:2)

根据您的要求,像Cassandra这样的声音是可行的。

Cassandra具有高度优化的写入路径,并且对写入密集型工作负载执行得非常好。由于您已经致力于分析数据,因此Cassandra还可以轻松容纳更多的记录。限制因素是每个分区大约100MB(userGroup),这应该可以很好地规划每个用户组的用户数。

请注意,Cassandra没有灵活的架构,这对于您计划的内容很好,但如果您希望将来能够生成更多可自定义的报表,那就不好了。