Percentile Ranks Aggregation
Percentile Ranks Aggregation
一个multi-value指标聚合,它通过从聚合文档中提取数值来计算一个或多个百分比。这些值可以从特定数值字段中提取,也可以由提供的脚本生成。
注意:请参考百分比(通常)近视值(percentiles are (usually approximate))和压缩(Compression)以获得关于近视值的建议和内存使用的百分比排位聚合。
百分比排位展示那些在某一值之下的观测值的百分比。例如,假如某一直大于等于被观测值的95%,则称其为第95百分位数。
假设你的数据由网页加载时间组成。你可能有一个服务协议,95%页面需要在15ms加载完全,99%页面在30ms加载完全。
让我们看一下代表加载时间的百分位数:
{"aggs" : {"load_time_outlier" : {"percentile_ranks" : {"field" : "load_time", 【1】"values" : [15, 30]}}}
}
【1】load_time必须是一个数值字段
应答看起来像这个样子:
{..."aggregations": {"load_time_outlier": {"values" : {"15": 92,"30": 100}}}
}
从这些信息你可以确定,你已经达到了99%的加载时间目标,但没有达到95%的加载时间目标。
Script
百分位数度量支持脚本。例如,假如加载时间是在毫秒级,当我们想指定值在秒级,我们可以使用脚本来实时转化它们:
{"aggs" : {"load_time_outlier" : {"percentile_ranks" : {"values" : [3, 5],"script" : {"lang": "painless","inline": "doc['load_time'].value / params.timeUnit", 【1】"params" : {"timeUnit" : 1000 【2】}}}}}
}
【1】field参数被一个script参数替代,使用脚本生成计算百分位数的值。
【2】脚本支持参数化输入,就像其它任何脚本一样
通过painless脚本语言和无脚本参数将script参数翻译为一个inline脚本。要使用文件脚本,使用以下语法:
{"aggs" : {"load_time_outlier" : {"percentile_ranks" : {"values" : [3, 5],"script" : {"file": "my_script","params" : {"timeUnit" : 1000}}}}}
}
TIP:索引脚本通过id参数替代file参数
HDR Histogram
警告:该功能是实验性的,并且在将来的版本中可能被修改或者完全移除。Elastic采用最大努力来解决任何问题,但是试验功能不受SLA官方GA功能的支持。
HDR Histogram(高动态范围柱状图)是一种替代实现,在计算延迟测量的百分比数量级时可能很有用,因为它比t-digest实现更快,同时占用更大的内存空间。该实现维持固定的较差的百分比错误(指定为有效数字的数量)。这意味着如果在柱状图中设置3位有效数字的数据被记录在1微妙至1小时(3600,000,000微妙)之间,它将保持从1微妙值增加到为最大跟踪值(1小时)保留1毫秒和3.6分钟(或更好)分辨率。
HDR Histogram可以通过在request中指定method参数来使用:
{"aggs" : {"load_time_outlier" : {"percentile_ranks" : {"field" : "load_time","values" : [15, 30],"hdr": { 【1】"number_of_significant_value_digits" : 3 【2】}}}}
}
【1】hdr对象表示应该使用HRD Histogram来计算百分位数,并且可以在对象内部指定该算法的具体设置。
【2】number_of_significant_value_digits表示以有效数字值表示柱状图的分辨率。
HDR Histogram仅仅支持绝对值,假如传递的是一个相对值则将错误。假如值范围不知道,使用HDR Histogram也不是一个好的主意,因为它将导致高内存使用。
Missing value
missing参数定义该如何处理缺省值的文档。默认情况下,他们将被忽略,但是假如他们已经有一个值了,它也可能被处理。
{"aggs" : {"grade_ranks" : {"percentile_ranks" : {"field" : "grade","missing": 10 【1】}}}
}
【1】在grade字段中没有值的文档将和有值10的文档放入相同的bucket中。
原文地址:https://www.elastic.co/guide/en/elasticsearch/reference/5.0/search-aggregations-metrics-percentile-rank-aggregation.html
转载于:https://www.cnblogs.com/benjiming/p/7099638.html
Percentile Ranks Aggregation相关推荐
- 白话Elasticsearch49-深入聚合数据分析之 Percentile Ranks Aggregation-percentiles rank以及网站访问时延SLA统计
文章目录 概述 官方说明 案例 概述 继续跟中华石杉老师学习ES,第49篇 课程地址: https://www.roncoo.com/view/55 官方说明 Percentiles Ranks Ag ...
- ElasticSearch+聚合+Aggregation+示例
ElasticSearch+聚合+Aggregation+示例 聚合提供了分组并统计数据的能力.理解聚合的最简单的方式是将其粗略地等同为SQL的GROUP BY和SQL聚合函数.在Elasticsea ...
- 01.elasticsearch metric aggregation 查询
文章目录 1. 数据准备 2. metric aggregation分类 3.使用样例 1 . Avg Aggregation : 求query出来的结果的average 值 2 . Weighted ...
- Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation
什么是聚合(Aggregation) 1. elasticsearch 除了搜索以外,提供的针对ES数据进行统计分析的功能 实时性高.Hadoop(T+1) 2.通过聚合,我们会得到一个数据的概览,是 ...
- Elasticsearch笔记(七):聚合查询
聚合框架有助于根据搜索查询提供聚合数据.聚合查询是数据库中重要的功能特性,ES作为搜索引擎兼数据库,同样提供了强大的聚合分析能力.它基于查询条件来对数据进行分桶.计算的方法.有点类似于 SQL 中的 ...
- ElasticSearch核心基础之聚合
一 聚合的分类 1.1 分组聚合(bucket) 分组聚合,就是指依据哪一个字段进行分组,然后该字段相同的值的文档都在一个bucket中 GET /索引/类型/_search { "s ...
- 七.全文检索ElasticSearch经典入门-聚合查询
前言 今天我们讲ES的高亮和聚合查询,聚合功能是ES很重要的功能,它基于查询条件来对数据进行分桶和计算.它提供了类似于关系型数据库的SUM,COUNT, AVG , Group By 等功能.聚合也可 ...
- A081_Lucene_ElasticSearch
目录 1.内容介绍 2.认识全文检索 2.1.什么是全文检索 2.2.全文检索的特点 2.3.常见的全文检索方案 3.Lucene介绍 3.1.什么是Lucene 3.2.Lucene实现全文检索架构 ...
- Elasticsearch 5.x Java api Aggregations(聚合)
Ealsticsearch 5.x Java API聚合string类型的时候,会报错(json的错),则需要在聚合的string类型字段的后面添加.keyword , 虽然使用watch查看聚合的e ...
- 聚合中返回source_大数据搜索与可视化分析(9)elasticsearch聚合分析Metric Aggregation...
在上一篇文章中,我们介绍了<大数据搜索与可视化分析(8)kibana入门教程-2-Discover>,本文学习elasticsearch聚合分析,是对<大数据搜索与可视化分析(3)e ...
最新文章
- 基于pytorch后量化(mnist分类)---浮点训练vs多bit后量化vs多bit量化感知训练效果对比
- 反射__获取delegate的信息
- python解析雷达数据_【学习笔记】使用python带时间戳提取rosbag中的图像和雷达数据...
- 画瀑布图_常见的招财风水画之含义
- C++ Vector详解
- 广义表head tail 运算_双链表实现LRU缓存淘汰策略
- OA办公系统需要专业的系统管理员
- 算法怎么就这么难?----使用欧几里得算法求两数的最大公约数
- vue显示农历_vue农历日历
- uac2+android,iBasso UAC
- OCR目标识别(车辆VIN码识别效果)
- springboot整合Redis+elasticsearch时的异常问题
- 教你如何用Python抓取QQ音乐歌单及分析
- python 调用Google Translate API 翻译
- Android 后台服务(Service)
- 华为云搭建web服务器(WordPress)
- 教你Java5分钟制作海报、彻底解决APP兼容性问题
- Ajax之不可或缺的setRequestHeader()
- 1.Hibernate框架核心组件 (转自冯岩)
- 新一代版本控制系统Git,你真的掌握了吗?