【发布时间】:2019-04-27 10:35:16
【问题描述】:
类似于 BigTable 的数据库存储按其键排序的行。
Cassandra 使用分区键和集群键的组合来保持数据的分布和排序;然而,您只能通过分区键来选择行!
Cassandra 的架构是如何以这种方式工作的?
例如,在 RocksDB 中解决此问题的一种方法是,您可以通过分区键拥有一个默认列族,而另一个具有分区和集群组合键的默认列族,并迭代排序的数据并按默认列族检索,您最终会得到非常空间复杂度高!
更新:我猜 Cassandra 尝试将每一列存储在不同的键中,它从分区键开始并迭代不同的“列名”——也许是其他集群列的组合。参考底层存储引擎图片-.
SELECT * From authors WHERE name = 'Tom Clancy' AND year = '1993'。 在一个表中,“name”是分区键,“year”和“title”是集群列。
The visulatiation of Cassandra Storage Layer for the above query.
【问题讨论】: