1

cassandra如何计算partitioning key和clustering key的大小。例如,我们的表具有相对较大的分区键(UUID 和 UUID 的组合)以及较大的集群键

mydb/parent/6E219A7E21044B48B8816B931925CCDB/child1/29E6E709854D49CFAC72ECD5E1AEBFA3/ mydb/parent/6E219A7E21044B48B8816B931925CCDB/child2/29E6E709854D49CFAC72ECD5E1AEBFA4/ mydb/parent/6E219A7E21044B48B8816B931925CCDB/child3/29E6E709854D49CFAC72ECD5E1AEBFA5/

这里 PK - 6E219A7E21044B48B8816B931925CCDB 聚类列是 - /child1/29E6E709854D49CFAC72ECD5E1AEBFA3/

我们在第 n 级上有子级(现在我们正在做直到 100 级)

现在,当我们拥有大约 3 亿的海量数据时,拥有大键是否会对性能产生影响,以及对磁盘使用量的影响

4

1 回答 1

1

拥有大的分区键或集群键不是问题。它对性能没有影响。

唯一应该避免的是有大分区。例如,在您的情况下,单个分区中有 100 行。因此,如果所有行的大小组合在 10MB ( Ideal size of a Cassandra partition is equal to or lower than 10MB with a maximum of 100MB.) 以内,那么您就可以了。您可以参考此链接来计算您的分区大小。

如果您的分区大小很大,那么您必须优化您的数据模型以减小您的分区大小。以下是一些通常用于减小分区大小的技术

  1. Bucketing - 用你的分区键引入一个数字。一般应用于时间序列数据。(可以在这里阅读更多内容。
  2. 从表中引入另一列作为分区键的一部分。
于 2021-07-13T08:55:07.027 回答