Cassandra和范围查询中的虚拟分区键

时间:2019-11-21 13:14:32

标签: database cassandra

我是Cassandra的新手,在我所有的研究中,我发现很难提出一个体面的解决方案。我的最终目标是能够对我的数据进行范围查询,但是对于要进行的查询类型,我没有一个很好的分区键。

想象一下,我有他们创建的用户,评论和时间戳,我想按特定日期之前所有评论的范围进行搜索。我知道对集群键进行范围查询很容易,但是我不能让分区键成为用户,因为他们会有很多评论,并且会导致无边界和偏斜的分区。

因此,我发现很难找到适合的分区键。我发现的一种伪解决方案是虚拟列。如果可以的话:

((users,dummy),comments,timestamp)

作为我的主键可以帮助我,但是也会导致无限的分区。现在我的问题是,如果没有更好的方法来执行此操作,是否有可能计算我的分区何时达到我希望读取的最大大小(100mb)并更换虚拟对象?

如果我正确理解这个概念,就可以像分片一样: ((users,shard1)...),按照我的逻辑,当我发现分片1达到最大所需容量时,我开始将值放入下一个分片(shard2)中,依此类推。然后,我有一个类似(users,shards)的表,该表为我提供了每个用户拥有的分片数量。

这可能吗?我在Cassandra中遇到了这个问题,我正在寻找最可行的解决方案,或者是否真的没有。

0 个答案:

没有答案