我们有一个用例,在这个用例中,我们希望在任何时间范围(小时粒度)报告应用程序中的唯一访问者。
示例:假设在第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条答案
按热度按时间jecbmhm31#
你可以使用hyperloglog算法。hyperloglog草图非常节省空间,可以很容易地合并以构造并集。看到了吗http://algo.inria.fr/flajolet/publications/flfugame07.pdf.