这是一个示例用例:
您需要在基于 timeuuid 的列中存储最后 N 个(假设 1000 个作为固定存储桶大小)用户操作以及所有详细信息。
通常,每个用户的操作已经在“UserAction”列族中,其中用户 id 作为行键,而操作在 timeuuid 列中。您可能还有“AllActions”列族,它存储所有具有相同 timeuuid 作为列名和用户 id 作为列值的操作。它基本上是一个关系列族,但不幸的是没有任何用户操作的细节。我想用这个列族查询很昂贵,因为随机分区。另一方面,如果您将所有详细信息存储在“AllActions”CF 中,那么 cassandra 一次无法正确处理该大行。这就是为什么我想将最后 N 个用户操作以及所有详细信息存储在固定数量的基于 timeuuid 的列中。
也许您可能对此用例有更好的设计解决方案...我喜欢听...
如果没有,问题是如何有效地在 cassandra(使用 CQL)中实现固定数量的(timeuuid)列?
插入后,如果我们在 cql 的 DELETE 中有某种范围支持,我们可以删除旧的(溢出)列。AFAIK 不支持这一点。
那么,有什么想法吗?提前致谢...