我是否有效地聚合了来自 Aerospike 的数据



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

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

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

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

通常,对于键值存储,如果可能,您希望在单个记录上就地执行此类聚合,并最大程度地减少用于对信息进行建模的记录数。

如果您的集合描述的是一天,是否有理由说明帐户不是单个记录? 它可以每小时有一个箱,箱的数据类型是包含段的列表或地图。其他箱可以保存聚合数据。

我也会小心每天一套。每个命名空间有 1023 个设置的限制。是否有理由将日期不是在其上构建二级索引的整数或字符串?这样,您可以查询当天的数据。或者,如果它是一个 unix-timestamp 值(整数上的二级索引),则可以查询精确的时间范围。每天的记录,其中包含所有分钟数据(假设限制)对我来说更有意义。

最新更新