在Cassandra中添加和检索排序计数

在Cassandra中添加和检索排序计数,cassandra,Cassandra,我有一个例子,我需要在Cassandra中记录一个用户操作,然后在任意时间段内检索一个排序后的用户列表,其中用户的操作数最高 有人能提出一种方法来存储和检索预先聚合的数据吗?除了Cassandra,我建议使用或计数min sketch,这样您就可以用更少的空间解决这个问题,并立即得到结果。只需更新并定期序列化和持久化它(假设您不需要保证准确性) 在Cassandra中,您可以在每段时间(如按小时)保留一行,并在该行中为每个用户设置一个计数器,在使用时递增。然后使用批处理作业来遍历它们并找到重击者

我有一个例子,我需要在Cassandra中记录一个用户操作,然后在任意时间段内检索一个排序后的用户列表,其中用户的操作数最高


有人能提出一种方法来存储和检索预先聚合的数据吗?

除了Cassandra,我建议使用或计数min sketch,这样您就可以用更少的空间解决这个问题,并立即得到结果。只需更新并定期序列化和持久化它(假设您不需要保证准确性)

在Cassandra中,您可以在每段时间(如按小时)保留一行,并在该行中为每个用户设置一个计数器,在使用时递增。然后使用批处理作业来遍历它们并找到重击者。您将被限制在最小可查询时间为1小时,计算起来不会特别便宜或快速,但它会工作


一般来说,最好将这些作为操作日志处理,每次有事件存储时,使用hadoop或custom让批处理作业对其进行分析。如果需要实时,我建议使用上述方法将流摘要保存在内存中。

在Cassandra之外,我建议使用或计数min sketch,您可以用更少的空间解决此问题,并立即获得结果。只需更新并定期序列化和持久化它(假设您不需要保证准确性)

在Cassandra中,您可以在每段时间(如按小时)保留一行,并在该行中为每个用户设置一个计数器,在使用时递增。然后使用批处理作业来遍历它们并找到重击者。您将被限制在最小可查询时间为1小时,计算起来不会特别便宜或快速,但它会工作

一般来说,最好将这些作为操作日志处理,每次有事件存储时,使用hadoop或custom让批处理作业对其进行分析。如果需要实时id,建议使用上述方法在内存中保存流摘要