2016-02-29 73 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

真的取决于你想要报告的样子。报告是否适合特定用户,如他们活动的时间表。或者它将成为整个用户组的时间表。或者它会不会是一个时间表 - 聚合活动类型? –