我是否有效地汇总了Aerospike的数据?

时间:2015-06-13 13:23:28

标签: aerospike

在Aerospike中,我有一组ac_1_2015-06-13_15,其中包含2015-06-13帐户1的支出信息,按15分钟细分,即每条记录代表当天的15分钟段。由于一小时内有4个15分钟段,一天中有24小时段,因此有96条记录。每条记录都有一个bin spend

要计算当天使用AerospikeClient.scanAll()汇总所有支出值的总支出:

totalSpend += record.getDouble("spend");

这需要351毫秒。有没有更有效的方法来计算总和,或者这是吗?

1 个答案:

答案 0 :(得分:1)

通常,对于键值存储,您希望在可能的情况下在单个记录上就地进行此类聚合,并最小化用于对信息建模的记录数。

如果您的集合描述了一天,那么帐户是不是单个记录的原因?它可以每小时有一个bin,bin的数据类型是列表或包含段的地图。其他垃圾箱可以保存汇总数据。

我每天都要小心一套。有1023 sets per-namespace限制。有没有理由这一天不是一个整数或字符串,并在其上构建了二级索引?这样您就可以查询当天的数据。或者,如果它是unix-timestamp值(整数上的二级索引),则可以查询精确的时间范围。每天记录一次所有的分钟数据(假设限制)对我来说更有意义。