以下是一个用例示例:
您需要存储最后N个(假设为固定存储区大小为1000个)用户操作,其中包含基于timeuuid的列中的所有详细信息。
通常,每个用户的操作都已在“UserAction”列系列中,其中用户ID为行键,timeuuid列中的操作。您可能还有“AllActions”列系列,它将所有具有相同timeuuid的操作存储为列名,将用户ID存储为列值。它基本上是一个关系列系列,但遗憾的是没有任何用户操作的细节。由于随机分区,我猜这个列系列的查询价格昂贵。另一方面,如果您将所有细节存储在“AllActions”CF中,那么cassandra无法在某一点正确处理该大行。这就是为什么我想在最后N个用户操作中存储固定数量的基于timeuuid的列的所有细节。
也许你可能有一个更好的设计解决方案用于这个用例...我喜欢听到......
如果没有,问题是如何有效地在cassandra(使用CQL)中实现固定数量的(timeuuid)列?
插入后,如果我们在cql的DELETE中有某种范围支持,我们可以删除旧的(溢出)列。 AFAIK对此没有任何支持。
那么,任何想法?提前谢谢......
答案 0 :(得分:2)
也许,我们需要列系列的一些配置(存储)选项,使它们适合“最新数据”。