Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(一)计数指标-百分位数
percentiles 百分位聚合
百分位数显示出现一定百分比的观测值的点。
默认统计的百分位数为:[ 1, 5, 25, 50, 75, 95, 99 ]
请求示例:
GET latency/_search {"size": 0,"aggs": {"load_time_outlier": {"percentiles": {"field": "load_time" }}} }
返回:
{..."aggregations": {"load_time_outlier": {"values": {"1.0": 5.0,"5.0": 25.0,"25.0": 165.0,"50.0": 445.0,"75.0": 725.0,"95.0": 945.0,"99.0": 985.0}}} }
查询统计加载时间load_time的百分位数情况,可知50%情况为445毫秒,比445毫秒快的不到50%,其余都是比445毫秒慢的,75%,95%,99%类似;
percentileRanks 百分位数排名
百分位数排名显示低于特定值的观测值的百分比。例如,如果某个值大于或等于观测值的 95%,则称为第 95 百分位排名。
假设您的数据由网站加载时间组成。您可能有一个服务协议,即95%的页面加载在500毫秒内完成,99%的页面加载在600毫秒内完成。
请求示例:
GET latency/_search {"size": 0,"aggs": {"load_time_ranks": {"percentile_ranks": {"field": "load_time", "values": [ 500, 600 ]}}} }
统计加载时间为500,600的百分排名情况;
返回:
{..."aggregations": {"load_time_ranks": {"values": {"500.0": 90.01,"600.0": 100.0}}} }
可知,500毫秒的占比为90.01%,600毫秒的为100%
根据此信息,您可以确定您正在达到 99% 的加载时间目标,但未完全达到 95% 的加载时间目标
medianAbsoluteDeviation 中位数绝对偏差
应用于数值类字段
中位数绝对偏差是可变性的度量。它是一个可靠的统计量,这意味着它可用于描述可能具有异常值或可能不正态分布的数据。对于此类数据,它可以比标准偏差更具描述性。
假设我们的数据以一到五星的比例表示产品评论。此类评论通常被总结为平均值,这很容易理解,但并不描述评论的可变性。估计中位数绝对偏差可以深入了解评论之间的差异。
在此示例中,我们有一个平均评级为 3 星的产品。让我们看一下其评级的绝对偏差中位数,以确定它们之间的差异有多大
请求示例:
GET reviews/_search {"size": 0,"aggs": {"review_average": {"avg": {"field": "rating"}},"review_variability": {"median_absolute_deviation": {"field": "rating" }}} }
返回:
{..."aggregations": {"review_average": {"value": 3.0},"review_variability": {"value": 2.0}} }
可知中位数为3.0,即评价的中位数为三星,而可变性为2,与中位数相差不多,说明此评价的可变性大;
cardinality 基数聚合
- 计算非重复值的近似计数的指标聚合
- 类似去重
- 请求示例:
POST /sales/_search?size=0 {"aggs": {"type_count": {"cardinality": {"field": "type"}}} }
返回:
{..."aggregations": {"type_count": {"value": 3}} }
可知,不同的商品种类有3种;
topHits 点滴聚合
- 指标聚合器跟踪要聚合的最相关的文档。此聚合器旨在用作子聚合器,以便可以聚合每个存储桶中匹配的顶级文档。
- 不推荐用作最外层聚合
- 支持nested嵌套聚合和reverse_nested反向嵌套聚合
- 聚合后,每一个聚合Bucket里面仅返回指定顺序的前N条数据。
- 应用场景:
- 统计每个班级中的期末成绩总分最高的两个人,我们可以先按班级聚合,再应用top_hits统计按总分排序
- 详细参照:官网
scriptedMetric 脚本度量聚合
- 应用script脚本,自定义聚合条件,高度自制
- 请求示例:
POST ledger/_search?size=0 {"query": {"match_all": {}},"aggs": {"profit": {"scripted_metric": {"init_script": "state.transactions = []", "map_script": "state.transactions.add(doc.type.value == 'sale' ? doc.amount.value : -1 * doc.amount.value)","combine_script": "double profit = 0; for (t in state.transactions) { profit += t } return profit","reduce_script": "double profit = 0; for (a in states) { profit += a } return profit"}}} }
返回:
{"took": 218,..."aggregations": {"profit": {"value": 240.0}} }
上面的聚合演示了如何使用脚本聚合计算销售和成本交易的总利润。
Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(一)计数指标-百分位数相关推荐
- Elasticsearch 7.X-8.0 AggregationBuliders 相关聚合函数(二)桶聚合-嵌套查询
global 全局聚合 定义搜索执行上下文中所有文档的单个存储桶.此上下文由要搜索的索引和文档类型定义,但不受搜索查询本身的影响. 全局聚合器只能作为顶级聚合器放置,因为将全局聚合器嵌入到另一 ...
- mysql相关聚合函数应用商品分类表
多表查询 一.多表之间建表关系分析 一对多:商品和分类 一对一:人和身份证(比较少) 多对多:课程和学生 拆分成2个1对多的关系,建立一个中间表,让中间表的两个外键分别去指向两张表的主 ...
- hql查询过滤器及相关聚合函数查询详解
一.参数查询 参数查询其实是使用等价代换的方法,使用设置的值替换字符串中指定位置的符号,或者通过使用参数名称,使用字符串来替换参数名称的值,这样能避免sql注入的问题,拼接字符串会出现sql注入的问题 ...
- 第一章 聚合函数概述
文章目录 第一章 聚合函数概述 支持聚合函数 使用聚合函数 组合聚合和字段 列名和别名 使用ORDER BY DISTINCT关键字子句 使用DISTINCT和GROUP BY 行数 聚合.事务和锁定 ...
- 第十三章 SQL聚合函数 XMLAGG
文章目录 第十三章 SQL聚合函数 XMLAGG 大纲 参数 描述 XML和XMLAGG XMLAGG和ORDER BY 相关聚合函数 示例 第十三章 SQL聚合函数 XMLAGG 一个聚合函数,它创 ...
- ElasticSearch 文档检索、查询建议、数据聚合
目录 结构化搜索 term 单词匹配(单个值) terms 单词匹配(多个值) range 范围查询 exists 存在查询.miss 缺失查询 ids id匹配 prefix 前缀匹配 wildca ...
- 阿里云PyODPS 0.7.18发布,针对聚合函数进行优化同时新增对Python 3.7支持
近日,阿里云发布PyODPS 0.7.18,主要是针对聚合函数进行优化同时新增对Python 3.7支持. PyODPS是MaxCompute的Python版本的SDK,SDK的意思非常广泛,辅助开发 ...
- elasticsearch学习笔记--聚合函数篇
Elasticsearch 有一个功能叫聚合(aggregations),允许我们基于数据生成一些精细的分析结果.聚合与 SQL 中的 GROUP BY 类似但更强大. 首先看一下我当前megacor ...
- web2.0及其相关技术
一 什么是web2.0? 1 产生的背景 1) 互联网质的变化-互联网正在升级换代 截至2005 年12 月底,全球有9 亿多互联网用户,中国有1.11 亿多互联网用户. ...
最新文章
- shell 读取配置文件
- python从1到n出现了多少个1-【算法21】从1到n的正数中1的出现次数
- 在Linux下安装aws命令行操作
- html js更改title,如何使用js改变HTML中title里面固定的文字
- Unity3D 自定义数据格式
- 前端学习(1057):面向对象目标
- pip 安装 scipy 出现错 no lapack/blas resources
- openlayers2 开发如何判断一个marker所在的点是否在一个多边形内部
- python递归函数基例_函数和代码复用 --Python
- Subclipse与Subversive比较
- [NLP] 中文文本相似度实战
- J2EE,J2SE,J2ME三者有什么不同?
- docker快速搭建http服务器
- Kali Linux入门
- 分享两篇适合程序员看的书籍——《谁动了我的奶酪》、《你的灯亮着吗?》读后感
- 爱奇艺自主研发的动态化框架!
- pandas.Series.plot的简单参数使用说明
- eclipse @override 报错 解决
- javascript百炼成仙 第一章 掌握JavaScript基础1.4数据类型
- 「 SLAM lesson-2.3 」SLAM数学描述、运动方程、观测方程
热门文章
- 用BitmapShader实现圆形图片
- 如何给电脑系统重置系统?方法其实很简单
- gps测试软件怎么算正常,完整的GPS测试和经济实用的解决方案
- php notice 影响,PHP notice/warning 对性能的影响
- [论文笔记]Self-Attention Generative Adversarial Networks
- HTML5游戏开发实战
- 利用LSTM 做文本分类
- Oracle Spatial中上载GIS空间数据方法研究
- 睡不着听什么音乐睡得快,失眠入睡音乐歌单推荐
- linux xmanager使用教程,Xmanager企业版中各软件功能简介