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)相关推荐

  1. 白话Elasticsearch47-深入聚合数据分析之Cardinality Aggs-cardinality算法之优化内存开销以及HLL算法

    文章目录 概述 官方说明 precision_threshold优化准确率和内存开销 HyperLogLog++ (HLL)算法性能优化 概述 继续跟中华石杉老师学习ES,第47篇 课程地址: htt ...

  2. ElasticSearch cardinality基数 算法优化内存开销及HLL算法

    2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...

  3. 49深入聚合数据分析_cardinality算法之优化内存开销以及HLL算法

    cardinality=count(distinct),5%的错误率,性能在100ms左右,如何对cardinality进行优化呢? 1.precision_threshold优化准确率和内存开销 G ...

  4. ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法

    ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...

  5. 49.ardinality算法之优化内存开销以及HLL算法

    主要知识点 precision_threshold参数的理解 HLL算法优化(hash) cardinality,count(distinct),5%的错误率,性能在100ms左右 一.precisi ...

  6. UV 统计- HLL算法(JAVA实现)

    HLL是什么 HyperLogLog(HLL)算法经常在数据库中被用来统计某一字段的Distinct Value,比如Redis的HyperLogLog结构.目前在我们项目中用于UV统计. 网上有一篇 ...

  7. 优秀的基数统计算法——HyperLogLog

    为什么要使用 HyperLogLog? 在我们实际开发的过程中,可能会遇到这样一个问题,当我们需要统计一个大型网站的独立访问次数时,该用什么的类型来统计? 如果我们使用 Redis 中的集合来统计,当 ...

  8. 【Hll】Hll HyperLogLog: Cardinality Estimation(基数估计算法源码解析)

    1.概述 好文章,转载防丢失 主要是这里有源码,我遇到问题了,问题是flink在累加器中使用的时候,每次累加最终结果是1,2 每次到了2 就会重新回到1,很郁闷于是看看源码 2.背景 我们经常会统计某 ...

  9. 神奇的HyperLogLog算法

    2019独角兽企业重金招聘Python工程师标准>>> 原文链接:http://rainybowe.com/blog/2017/07/13/%E7%A5%9E%E5%A5%87%E7 ...

最新文章

  1. 如何提高3D点云目标检测的难例精度?
  2. 汇总pandas中dataframe的删除操作
  3. Java基础-锁机制
  4. 获取指定文件夹下的所有文件名
  5. JavaScript 编程精解 中文第三版 十、模块
  6. simulink显示多个数据_Stateflow数据介绍(一)
  7. C#使用iTextSharp操作PDF文件
  8. 单人开发场景下的测试环境实践
  9. python封装介绍_谈python3的封装
  10. IT历史:IT史重大失败教训
  11. java web 锁_Java中锁的分类
  12. mysql 分析函数 平均_mysql平均函数
  13. Android基于讯飞AIUI的聊天Demo
  14. Keras实现两个优化器:Lookahead和LazyOptimizer
  15. 我的世界Java版最大村庄_我的世界:java版完美种子,开局两村庄齐铁套
  16. ubuntu设置MySQL密码
  17. 被百度AI官方认证的大学,究竟是哪所?
  18. 新学期,新气象,新目标
  19. 数据结构实验+理解1 基于c++的二叉树函数实现
  20. ApiPost与PostMan,你可以任选一款不错的接口管理工具

热门文章

  1. CCNP基础知识-路由(二)
  2. unity游戏引擎下的UGUI(2)
  3. 机器学习(ML)在钙钛矿中的实践与应用
  4. 【转】浅析深究什么是SOA?
  5. 手把手教你利用Python网络爬虫获取链家网的房产信息
  6. 关于FIR滤波器的系数
  7. 吴甘沙清华演讲:大数据的十个技术前沿(完结篇)
  8. 快速复制电脑C盘——轻松备份系统
  9. python怎么遍历文件_Python 遍历文件夹所有文件并查找文件中的字符串
  10. Centos7更换yum源为阿里源