Cassandra 分区与 NoSql 分区

Cassandra Partition vs NoSql Partition

我了解差异 b/w Cassandra 分区键、复合键、集群键。但是没有找到足够的信息来了解 cassandra 中分区是如何处理的。
在 cassandra 中,分区键的范围存储在像 partition/shard 这样的节点上。我的理解对不对..?
每个分区键在数据库中都有不同的文件(在系统级别)吗?如果是这样,读取速度会不会更慢..?
如果每个分区键在数据库中没有不同的文件。它是如何处理的..?

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

在OS级别,数据存储在sstables文件中。一个分区可以分布在多个 sstable 中。这就是为什么您还需要压缩,这是合并这些 sstables 的过程,因此您的分区不会分布在很多 sstables 上。减少分区分布的 sstables 数量,也会缩短读取时间。值得注意的是 sstables 是不可变的。

我建议阅读 this,尤其是 "How Cassandra reads and writes data"。