CCUG
CCUG copied to clipboard
请问Cassandra最适合存储怎么样的业务数据?
比如:用户信息, 文章评论, 行为日志, 交易信息, 和传统关系数据库比, 有哪些优势呢
之前看到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企业版要重点解决的问题。
受益颇深, 非常感谢