所以,我是Cassandra的新手,我想知道学习Cassandra的最佳方法是什么。
我应该首先关注数据库的设计并从头开始构建数据库吗? 正如我读到的那样,卡桑德拉非常适合写作。怎么能观察到呢?是否有可以使用的开源数据? (我真的不知道在哪里看。)
答案 0 :(得分:2)
Cassandra入门的一个好处是来自DataStax(企业级Cassandra发行版)的免费在线课程:https://academy.datastax.com/courses
对于Cassandra擅长编写数据 - 请看一下:https://docs.datastax.com/en/cassandra/3.0/cassandra/dml/dmlHowDataWritten.html
写路径归结为以下几点:
所以就磁盘而言,写操作首先是对commitlog的简单附加。没有数据直接写入sstables(它在commitlog和memtable中,有时会像sstables一样刷新到磁盘),更新不会改变磁盘上的sstable(sstables是不可变的,更新是用新的时间戳单独写的) ,删除不会从sstables中删除数据(sstables是不可变的 - 而是写一个墓碑)。
所有更新和删除都会在memtable和sstables中生成新条目,删除已删除的数据并从更新中删除旧版本的数据。磁盘上的sstables会不时地压缩为新版本。
还可以阅读有关不同压缩策略(可以帮助您提供良好性能),复制因素(群集应保留的数据副本数量)和一致性级别(Cassandra应如何确定写入或读取成功的时间,提示:ALL几乎都是错的,请找QUORUM)。