Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在cassandra(使用CQL)中实现固定数量的(timeuuid)列?_Cassandra_Cql - Fatal编程技术网

如何在cassandra(使用CQL)中实现固定数量的(timeuuid)列?

如何在cassandra(使用CQL)中实现固定数量的(timeuuid)列?,cassandra,cql,Cassandra,Cql,下面是一个示例用例: 您需要在基于timeuuid的列中存储最后N个(比如1000个作为固定的bucket大小)用户操作的所有细节 通常,每个用户的操作都已经在“UserAction”列族中,其中用户id作为行键,操作在timeuuid列中。您还可能有“AllActions”列族,它存储所有操作,其中timeuuid作为列名,用户id作为列值。它基本上是一个关系列族,但不幸的是没有任何用户操作的细节。我想,由于随机partitioner的存在,使用此列族进行查询的成本很高。另一方面,如果您将所有

下面是一个示例用例:

您需要在基于timeuuid的列中存储最后N个(比如1000个作为固定的bucket大小)用户操作的所有细节

通常,每个用户的操作都已经在“UserAction”列族中,其中用户id作为行键,操作在timeuuid列中。您还可能有“AllActions”列族,它存储所有操作,其中timeuuid作为列名,用户id作为列值。它基本上是一个关系列族,但不幸的是没有任何用户操作的细节。我想,由于随机partitioner的存在,使用此列族进行查询的成本很高。另一方面,如果您将所有细节存储在“AllActions”CF中,那么cassandra无法在某一点上正确处理这一大行。这就是为什么我想将最后N个用户操作和所有详细信息存储在固定数量的基于timeuuid的列中

也许你有一个更好的设计方案来解决这个用例。。。我喜欢听

如果没有,问题是如何在cassandra(使用CQL)中有效地实现固定数量的(timeuuid)列

插入之后,如果cql的delete中有某种范围支持,我们可以删除旧的(溢出)列。恐怕没有人支持这一点


你知道吗?提前感谢…

嗯,这是C*必须像压缩一样处理的事情。在客户端处理这个问题不是一个好主意

也许,我们需要一些列族的配置(存储)选项,使它们适合“最新数据”

这里有点像。