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

时间:2013-08-30 17:41:26

标签: cassandra

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

有人可以建议一种以预先聚合的方式存储和检索此数据的方法吗?

1 个答案:

答案 0 :(得分:1)

在Cassandra之外我建议使用stream-summary或计算最小草图,你可以用更少的空间解决这个问题,并立即得到结果。只需更新并定期序列化并保持它(假设您不需要保证准确性)

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

通常情况下,将这些视为操作日志会很好,每次有事件存储它并让批处理作业使用hadoop或custom对其进行分析。如果需要它,实时id建议采用上述方法将流摘要保存在内存中。