cassandra如何计算分区键和集群键的大小。我们有一些表具有相对较大的分区键(UUID和UUID的组合(以及较大的集群键,例如
mydb/父母/6E219A7E21044B48B8816B931925CCDB/子女1/29E6E709854D49CFAC72ECD5E1AEBFA3/mydb/父母/6E219A7E21044B48B8816B931925CCDB/子女2/29E6E709854D49CFAC72ECD5E1AEBFA4/mydb/父母/6E219A7E21044B48B8816B931925CCDB/子女3/29E6E709854D49CFAC72ECD5E1AEBFA5/
此处PK-6E219A7E21044B48B8816B931925CCDB聚类列为-/child1/29E6E709854D49CFAC72ECD5E1AEBFA3/
我们有第n级的子级(现在我们做到100级(
现在,当我们有大约3亿的巨大数据时,拥有大密钥是否会对性能产生影响,以及对磁盘使用的影响
拥有大的分区键或集群键不是问题。它对性能没有影响。
唯一应该避免的就是使用大分区。例如,在您的案例中,在一个分区中有100行。因此,如果所有行的大小加起来都在10MB(Ideal size of a Cassandra partition is equal to or lower than 10MB with a maximum of 100MB.
(以内,那么您做得很好。您可以参考此链接来计算分区大小。
如果您的分区大小很大,那么您必须完善数据模型,以减少分区大小。以下是一些通常用于减少分区大小的技术
- Bucketing-用分区键引入一个数字。通常适用于时间序列数据。(更多内容可在此处阅读
- 引入表中的另一列作为分区键的一部分