CCUG icon indicating copy to clipboard operation
CCUG copied to clipboard

请问Cassandra最适合存储怎么样的业务数据?

Open oxsean opened this issue 9 years ago • 2 comments

比如:用户信息, 文章评论, 行为日志, 交易信息, 和传统关系数据库比, 有哪些优势呢

oxsean avatar Sep 08 '15 07:09 oxsean

之前看到Spotify网站把用户登陆数据库从PostgreSQL迁移到Cassandra https://labs.spotify.com/2015/06/23/user-database-switch/ 里面放的就是用户信息, 但是它用了Cassandra的轻量级事务(LWT), LWT只能处理单行记录,内部使用改编过的没有选举的三阶段的Paxos实现,性能并不太好。

文章评论, 行为日志这些带有时间序的数据很适合用Cassandra存的。

交易的历史记录适合用Cassandra存, 但是处理当前的交易事务还不适合用Cassandra来做, 我们接下来的工作就是做Cassandra for OLTP的版本, 到时就可以用于所有MySQL这类传统关系数据库在分布式场景下的所有业务需求。

另外,Cassandra是为分布式环境而设计的, 如果业务只用单台机器就能满足,不需要用Cassandra,传统的单机RDBMS是个更好的选择。

Cassandra本身并不适合用来做数据分析的,它只适合多写、简单查询的场景,分析类的场景要把数据导到spark或hadoop集群做,对于复杂查询DataStax公司的企业版可以做,开源的版本没这个功能。

Cassandra的优点: 数据模型灵活、写性能超强、运维简单、比其他RDBMS和NoSQL的方案省1/3以上的机器;

Cassandra目前的缺点是什么呢? CQL3的功能还没有MongoDB丰富,更比不上SQL,也不支持事务,不能做到严格的强一致性。 没有关系,这些正是我们在做的Cassandra for OLTP企业版要重点解决的问题。

codefollower avatar Sep 08 '15 07:09 codefollower

受益颇深, 非常感谢

oxsean avatar Sep 09 '15 07:09 oxsean