我正在学习apache cassandra,并致力于样本数据的插入、检索等.
文档非常有限.
我有兴趣知道
- 我们能用Cassandra完全取代像mysql/oracle这样的关系数据库吗?
- cassandra支持回滚/提交吗?
- Cassandra客户端(Thrift/Hector)是否支持获取关联对象(将一个超列的键保存在另一个超列系列中的对象)?
这将对我进一步的工作有很大帮助.
提前谢谢您.
我正在学习apache cassandra,并致力于样本数据的插入、检索等.
文档非常有限.
我有兴趣知道
这将对我进一步的工作有很大帮助.
提前谢谢您.
简短的回答是:没有.
通过设计,Cassandra更看重可用性和分区容错,而不是一致性1.基本上,在保持所有这三个特性的同时获得可接受的延迟是不可能的:必须牺牲其中一个.这就是所谓的CAP定理.
在Cassandra中可以使用一致性级别配置一致性的数量,但是不存在任何用于回滚的语义.不能保证即使第一次写入成功,您也能够回滚更改.
如果您希望在Cassandra之上构建具有事务或锁应用程序,则可能需要查看ZooKeeper,它可用于提供分布式同步.
你可能已经猜到了,但卡桑德拉没有外键或类似的东西.这必须手动处理.我对赫克托不太熟悉,但更高级别的客户可以半自动完成这项工作.
是否可以使用Cassandra轻松替换RDBMS取决于您的特定用例.在您的用例中(根据您的问题),可能很难做到这一点.