HLL 算法(HyperLogLog)
HyperLogLog,下面简称为HLL,它是 LogLog 算法的升级版,作用是能够提供不精确的去重计数。存在以下的特点:
代码实现较难。
能够使用极少的内存来统计巨量的数据,在 Redis 中实现的 HyperLogLog,只需要12K内存就能统计2^64个数据。
计数存在一定的误差,误差率整体较低。标准误差为 0.81% 。
误差可以被设置辅助计算因子进行降低。
特点--关键词
1.比特串
2.分桶
3:偏差修正
方法
pfadd key value,将 key 对应的一个 value 存入
pfcount key,统计 key 的 value 有多少个
应用场景
基数不大,数据量不大就用不上,会有点大材小用浪费空间
有局限性,就是只能统计基数数量,而没办法去知道具体的内容是什么
和bitmap相比,属于两种特定统计情况,简单来说,HyperLogLog 去重比 bitmap 方便很多
一般可以bitmap和hyperloglog配合使用,bitmap标识哪些用户活跃,hyperloglog计数
一般使用:
统计注册 IP 数
统计每日访问 IP 数
统计页面实时 UV 数
统计在线用户数
统计用户每天搜索不同词条的个数
HLL 算法(HyperLogLog)相关推荐
- 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法
文章目录 概述 官方说明 precision_threshold优化准确率和内存开销 HyperLogLog++ (HLL)算法性能优化 概述 继续跟中华石杉老师学习ES,第47篇 课程地址: htt ...
- ElasticSearch cardinality基数 算法优化内存开销及HLL算法
2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...
- 49深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法
cardinality=count(distinct),5%的错误率,性能在100ms左右,如何对cardinality进行优化呢? 1.precision_threshold优化准确率和内存开销 G ...
- ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...
- 49.ardinality算法之优化内存开销以及HLL算法
主要知识点 precision_threshold参数的理解 HLL算法优化(hash) cardinality,count(distinct),5%的错误率,性能在100ms左右 一.precisi ...
- UV 统计- HLL算法(JAVA实现)
HLL是什么 HyperLogLog(HLL)算法经常在数据库中被用来统计某一字段的Distinct Value,比如Redis的HyperLogLog结构.目前在我们项目中用于UV统计. 网上有一篇 ...
- 优秀的基数统计算法——HyperLogLog
为什么要使用 HyperLogLog? 在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,该用什么的类型来统计? 如果我们使用 Redis 中的集合来统计,当 ...
- 【Hll】Hll HyperLogLog: Cardinality Estimation(基数估计算法源码解析)
1.概述 好文章,转载防丢失 主要是这里有源码,我遇到问题了,问题是flink在累加器中使用的时候,每次累加最终结果是1,2 每次到了2 就会重新回到1,很郁闷于是看看源码 2.背景 我们经常会统计某 ...
- 神奇的HyperLogLog算法
2019独角兽企业重金招聘Python工程师标准>>> 原文链接:http://rainybowe.com/blog/2017/07/13/%E7%A5%9E%E5%A5%87%E7 ...
最新文章
- 如何提高3D点云目标检测的难例精度?
- 汇总pandas中dataframe的删除操作
- Java基础-锁机制
- 获取指定文件夹下的所有文件名
- JavaScript 编程精解 中文第三版 十、模块
- simulink显示多个数据_Stateflow数据介绍(一)
- C#使用iTextSharp操作PDF文件
- 单人开发场景下的测试环境实践
- python封装介绍_谈python3的封装
- IT历史:IT史重大失败教训
- java web 锁_Java中锁的分类
- mysql 分析函数 平均_mysql平均函数
- Android基于讯飞AIUI的聊天Demo
- Keras实现两个优化器:Lookahead和LazyOptimizer
- 我的世界Java版最大村庄_我的世界:java版完美种子,开局两村庄齐铁套
- ubuntu设置MySQL密码
- 被百度AI官方认证的大学,究竟是哪所?
- 新学期,新气象,新目标
- 数据结构实验+理解1 基于c++的二叉树函数实现
- ApiPost与PostMan,你可以任选一款不错的接口管理工具