计算任何时间范围内的唯一访问者?

oaxa6hgo  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(355)

我们有一个用例,在这个用例中,我们希望在任何时间范围(小时粒度)报告应用程序中的唯一访问者。
示例:假设在第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。

jecbmhm3

jecbmhm31#

你可以使用hyperloglog算法。hyperloglog草图非常节省空间,可以很容易地合并以构造并集。看到了吗http://algo.inria.fr/flajolet/publications/flfugame07.pdf.

相关问题