我有一个包含品牌和消费数据的数据流;我需要按需提供实时平均消费数据。
这是一个高容量,低延迟的标记
典型的最后5个滴答可能是:
P&G 345.21
J&J 124.9
P&G 127.9
WAL 789
KMR 78.5
可能的选择:
填充数组/列表中的数据 - 按需求汇总和返回平均值(考虑到数量不可行)
在tick上填充带有键和聚合数据的地图。使用kep和tick count保持一个单独的地图。根据需要计算地图1和2的平均值并返回平均值。
是否有更好的数据结构/算法来实现这一目标?
答案 0 :(得分:0)
对于您的问题,最好维护另一个包含{brand: (num, mean)}
字典的地图,然后在获得新消费x
时,您可以使用
new_mean = mean + (x-mean)/(n+1)
n = n+1