【发布时间】:2014-05-17 12:37:08
【问题描述】:
有人可以解释或链接到有关如何使用 HLL 计算集合的基数用于时间序列分析的解释吗?
我很确定 druid.io 确实做到了这一点,但我正在寻找一个关于如何单独使用 HLL 做到这一点的一般解释,没有任何特定的库/数据库或特定的 HLL 实现。
一种天真的方法是在我们计算的事物上加上时间戳。例如,以redis HLL API 为例,如果您正在统计事件,从第 1000001 秒开始到第 1000060 秒:
PFADD SOMEHLLVAR "1000001-event1" "1000001-event2" ...
PFADD SOMEHLLVAR "1000002-event1" "1000002-event3" ...
PFADD SOMEHLLVAR "1000003-event2" "1000003-event3" ...
# Get count of occurrences of event1 in a minute long range:
PFCOUNT "1000001-event1" -> 1
PFCOUNT "1000002-event1" -> 1
PFCOUNT "10000..-event1" -> ..
PFCOUNT "1000060-event1" -> 0
...add all numbers! -> 2
其中一个问题是,您需要遍历给定范围内的每一秒,以找出最后一分钟特定事件的计数。
【问题讨论】:
标签: counting druid hyperloglog