cassandra 分区键增长限制?
cassandra partion key grow limit?
我的分区变大是什么意思?我认为 cassandra 可以处理非常大的数据量。为什么他们在此示例中使用 2 个分区键?
我的做法可能是两个分区键都太大了?
您举的例子是防止分区过大的方法之一。在 Cassandra partition key
(主键的一部分)用于对相似的行集进行分组。
此处在左侧数据模型中,user_id
是分区键,这意味着该用户的每个视频交互都将放置在同一分区中。如示例评论中所述,如果用户活跃并且每天有 1000 次交互,那么在 60 天(2 个月)内您将拥有该用户的 60000 行。这可能会违反 Cassandra 允许的分区大小(就存储在单个分区中的数据大小而言)。
因此,为了避免这种情况,您可以通过多种方式避免分区大小变得过大。例如,你可以做
从 table 中创建另一列作为分区键的一部分。这是在上面的示例中完成的。 video_id
与 user_id
.
一起成为分区键的一部分
分桶 - 这是通常用于时间序列数据的策略,您可以在其中对分区键进行多个分桶。例如,如果 date
是您的分区键,那么您可以创建 24 个存储桶作为 date_1, date_2,.....,date_24
。现在您已经将分区键划分为更小的分区键,因此您将一个大分区划分为 24 个小分区。
主要思想是避免您的分区变得太大。这是在为 Cassandra 创建数据模型时应该注意的一种数据建模技术。
如果分区大小仍然很大,则需要根据可用的各种数据建模技术重新建模数据模型。为此,我建议您了解您的数据、估计增长率、计算估计的分区大小,如果您的数据模型不满足分区大小需求,那么优化您的数据模型。
我的分区变大是什么意思?我认为 cassandra 可以处理非常大的数据量。为什么他们在此示例中使用 2 个分区键?
我的做法可能是两个分区键都太大了?
您举的例子是防止分区过大的方法之一。在 Cassandra partition key
(主键的一部分)用于对相似的行集进行分组。
此处在左侧数据模型中,user_id
是分区键,这意味着该用户的每个视频交互都将放置在同一分区中。如示例评论中所述,如果用户活跃并且每天有 1000 次交互,那么在 60 天(2 个月)内您将拥有该用户的 60000 行。这可能会违反 Cassandra 允许的分区大小(就存储在单个分区中的数据大小而言)。
因此,为了避免这种情况,您可以通过多种方式避免分区大小变得过大。例如,你可以做
从 table 中创建另一列作为分区键的一部分。这是在上面的示例中完成的。
一起成为分区键的一部分video_id
与user_id
.分桶 - 这是通常用于时间序列数据的策略,您可以在其中对分区键进行多个分桶。例如,如果
date
是您的分区键,那么您可以创建 24 个存储桶作为date_1, date_2,.....,date_24
。现在您已经将分区键划分为更小的分区键,因此您将一个大分区划分为 24 个小分区。
主要思想是避免您的分区变得太大。这是在为 Cassandra 创建数据模型时应该注意的一种数据建模技术。
如果分区大小仍然很大,则需要根据可用的各种数据建模技术重新建模数据模型。为此,我建议您了解您的数据、估计增长率、计算估计的分区大小,如果您的数据模型不满足分区大小需求,那么优化您的数据模型。