Cassandra 分区键和聚类列大小

时间:2021-07-13 08:15:28

标签: database cassandra uuid partitioning clustering-key

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

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

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

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

现在,当我们有大约 3 亿的海量数据时,使用大键会对性能产生影响,还会对磁盘使用产生什么影响

1 个答案:

答案 0 :(得分:1)

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

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

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

  1. 分桶 - 使用您的分区键引入一个数字。一般应用于时间序列数据。 (更多可以阅读here.
  2. 从表中引入另一列作为分区键的一部分。
相关问题