首页 文章

Cassandra分区与NoSql分区

提问于
浏览
1

我已经了解了差异b / w Cassandra分区键,复合键,聚类键 . 但是没有找到足够的信息来理解cassandra中如何处理分区 .
在cassandra中,分区键的范围存储在类似分区/分片的节点上 . 我的理解是否正确..?
每个分区键在DB中是否有不同的文件(在系统级别)?如果是这样,读取会不会更慢..?
如果每个分区键在DB中没有不同的文件 . 怎么处理..?

1 回答

  • 0

    数据以称为分区的宽行存储在Cassandra中 . 每行都有一个用于标识该分区的分区键 . 为了在集群中分发数据,Cassandra正在使用分区器,这些分区器基本上是分区键的计算哈希值,并且数据基于这些值在集群中分布 . Cassandra中的默认分区程序是Murmur3Partitioner .

    在OS级别,数据存储在sstables文件中 . 分区可以分布在许多sstables上 . 这就是为什么你还需要压缩,这是整合那些sstables的过程,所以你的分区不会分散在很多sstables中 . 减少分区分布的sstables数量也会缩短读取时间 . 值得注意的是,sstables是不可改变的 .

    我建议阅读this,特别是"How Cassandra reads and writes data" .

相关问题