统计任何时间范围分析中的唯一身份访问者?

时间:2017-04-05 02:31:00

标签: hadoop apache-spark hive bloom-filter hyperloglog

我们有一个用例,我们希望在任何时间范围内(小时粒度)报告我们应用中的唯一身份访问者。

示例:假设在0时我们有以下访客{A,B,C,D},在第1小时我们有{C,D,E,F},在第2小时我们有{E,F,A, B}在第3小时我们有{A,C}。我们需要回答1小时到3小时之间有多少独立访问者,同时应该能够在0到3小时之间回答唯一身份访问者的数量等?

当然,我们无法保存所有唯一身份访问者ID,但我们可以在指定时间内保存BloomFilter。

我计划使用包含 - 排除属性来计算联合,但是想看看是否有任何框架或某些框架有一个很好的解决方案。

大数据技术:我们有hdfs设置,有hive,还有Spark,Kafka。

1 个答案:

答案 0 :(得分:0)

您可以使用HyperLogLog算法。 HyperLogLog草图非常节省空间,可以轻松合并以构建联合。请参阅http://algo.inria.fr/flajolet/Publications/FlFuGaMe07.pdf