Elasticsearch cardinality存在误差
概述
cardinality 度量是一个近似算法。 它是基于 HyperLogLog++ (HLL)算法的。 HLL 会先对我们的输入作哈希运算,然后根据哈希运算的结果中的 bits 做概率估算从而得到基数。
优点:性能快,亿级别的记录在1秒内完成
缺点:存在只能保证最大40000条记录内的精确,超过的存在5%的误差,不适合需要精确去重场景
1、示例:
GET /myindex/mytype/_search
{"size" : 0,"aggs" : {"distinct_idCard" : {"cardinality" : {"field" : "idCard","precision_threshold" : 100 }}}
}
上面代码是ES 按照idCard去重,统计结果count(distinct),这个统计结果会随你的数据条数发生变化,会存在误差。
如果你统计的数据有100万条,idCard 唯一计数大于100,想对这100万条中的用户身份进行去重。上面的结果会存在5%的误差。
如果你的数据只有100条数据,idCard 唯一计数小于100,那么这个统计结果准确率100%。
那么唯一计数在多少以内,这个准确率几乎能达到100%呢?
precision_threshold:接受 0–40000 之间的数字,更大的值还是会被当作 40000 来处理。
precision_threshold值设置的越大,占用内存越大。
对于指定的阈值,HLL 的数据结构会大概使用 precision_threshold * 8
字节的内存,所以就必须在牺牲内存和获得额外的准确度间做平衡。
比如你查询的结果有10000条数据,里面唯一计数为9800,你设置的precision_threshold
=10000,你需要牺牲掉
10000 * 8 = 80000/1000=80KB的内存来取保结果准确率。
Elasticsearch cardinality存在误差相关推荐
- ElasticSearch cardinality基数 算法优化内存开销及HLL算法
2019独角兽企业重金招聘Python工程师标准>>> cardinality 可用于聚合函数,可计算某个字段的基数,即该字段的distinct值,它基于HLL算法来实现的.HHL会 ...
- 2000个软件开发领域的高频特殊词及精选例句
1101.单词 uuids 的匹配文本: For example, when accessing /_uuids, you get a list of UUIDs from the system. G ...
- ElasticSearch教程——cardinality(去重)算法之优化内存开销以及HLL算法
ElasticSearch汇总请查看:ElasticSearch教程--汇总篇 说明,一般使用第一种和第二种方法,很少使用第三种HLL优化(效果不是特别明显) 1.cardinality语法 es,去 ...
- 转-聚合查询变慢-详解Elasticsearch的Global Ordinals与High Cardinality
转自: https://blog.csdn.net/zwgdft/article/details/83215977 [README] Elasticsearch中的概念很多,本文将从笔者在实践过程中 ...
- 聚合查询越来越慢?——详解Elasticsearch的Global Ordinals与High Cardinality
Elasticsearch中的概念很多,本文将从笔者在实践过程中遇到的问题出发,逐步详细介绍 Global Ordinals 和 High Cardinality ,这也是笔者的认知过程.文中的E ...
- ElasticSearch搜索语法进阶学习(搜索+聚合,过滤+聚合)
ElasticSearch聚合+搜索语法学习 目录 搜索+聚合:统计指定品牌下每个颜色的销量 global bucket:单个品牌与所有品牌销量对比 过滤+聚合:统计价格大于1200的电视平均价格 b ...
- SpringBoot 整合ElasticSearch全文检索
ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口.Elasticsearch是用Java语言开发的,并作为Apa ...
- SpringBoot整合Spring Data Elasticsearch
特点: 分布式,无需人工搭建集群(solr就需要人为配置,使用Zookeeper作为注册中心) Restful风格,一切API都遵循Rest原则,容易上手 近实时搜索,数据更新在Elasticsear ...
- Elasticsearch学习--索引快速检索
如何快速检索? Elasticsearch是通过Lucene的倒排索引技术实现比关系型数据库更快的过滤.特别是它对多条件的过滤支持非常好,比如年龄在18和30之间,性别为女性这样的组合查询.倒排索引很 ...
最新文章
- python快速入门 pdf-Python快速入门PDF高清完整版本下载
- Python 字符串笔记(转自木木)
- Spring.Resource与Spring资源获取方式
- 活动最后72小时:购书优惠劵,折后再折,赶紧来抢啊
- LeetCode 327. 区间和的个数(multiset二分查找/归并排序)
- 8266不通过usb供电_HomePod mini?电源线同样不可拆卸:但或能用USB-C移动电源供电...
- P2839 畅通工程
- 导入jasperreports出现Cannot resolve com.lowagie:itext:2.1.7.js6异常、生成PDF中文不显示中文解决方法、使用命令安装jar包
- 基于国产处理器架构的高能物理数据处理系统
- Scrapy框架-阳光政务平台爬虫(二)
- 计算机平面设计要学语数英吗,《计算机平面设计与制作》课程标准规范.doc
- 问题在新浪:新浪微博注销后,为什么还保存着我的资料?
- 信息安全方面优秀论文
- 今天拿到小米正式Offer啦
- 数学建模神经网络模型,数学建模神经网络算法
- php获取视频信息,支持优酷土豆新浪腾讯等多家网站
- ps把白底图片改为透明
- PADS学习之路09-PADS LOGIC创建原理图工程文件
- linux双系统启动引导,linux windows 双系统并存与启动引导
- 微信浏览器 MP4播放失败,安卓下微信浏览器不能播放MP4问题的解决,gzip捣的鬼
热门文章
- 求∑_(k=1)^100▒k + ∑_(k=1)^50▒k^2 + ∑_(k=1)^10▒1/k
- mondrian mysql 实例,windows7环境下将Mondrian例子数据库导入到mysql中
- 对计算机的认识英语作文,介绍关于电脑的英语作文
- 全面解读亚马逊云科技 Private 5G 的革新理念
- 【安全知识分享】五星级酒店员工入职安全培训.ppt(附下载)
- $merge()合并两个数组方法
- 一起做一款自己的英语学习助手吧(小程序)
- 通辽市智慧城市视频信息共享平台入选内蒙古PPP推介项目库
- 2022年城市商品房销售价格趋势,房价是涨还是跌?
- 华为S5700EI固件升级