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

  1. 白话Elasticsearch49-深入聚合数据分析之 Percentile Ranks Aggregation-percentiles rank以及网站访问时延SLA统计

    文章目录 概述 官方说明 案例 概述 继续跟中华石杉老师学习ES,第49篇 课程地址: https://www.roncoo.com/view/55 官方说明 Percentiles Ranks Ag ...

  2. ElasticSearch+聚合+Aggregation+示例

    ElasticSearch+聚合+Aggregation+示例 聚合提供了分组并统计数据的能力.理解聚合的最简单的方式是将其粗略地等同为SQL的GROUP BY和SQL聚合函数.在Elasticsea ...

  3. 01.elasticsearch metric aggregation 查询

    文章目录 1. 数据准备 2. metric aggregation分类 3.使用样例 1 . Avg Aggregation : 求query出来的结果的average 值 2 . Weighted ...

  4. Elasticsearch7.X 入门学习第九课笔记-----聚合分析Aggregation

    什么是聚合(Aggregation) 1. elasticsearch 除了搜索以外,提供的针对ES数据进行统计分析的功能 实时性高.Hadoop(T+1) 2.通过聚合,我们会得到一个数据的概览,是 ...

  5. Elasticsearch笔记(七):聚合查询

    聚合框架有助于根据搜索查询提供聚合数据.聚合查询是数据库中重要的功能特性,ES作为搜索引擎兼数据库,同样提供了强大的聚合分析能力.它基于查询条件来对数据进行分桶.计算的方法.有点类似于 SQL 中的 ...

  6. ElasticSearch核心基础之聚合

    一 聚合的分类 1.1    分组聚合(bucket) 分组聚合,就是指依据哪一个字段进行分组,然后该字段相同的值的文档都在一个bucket中 GET /索引/类型/_search { "s ...

  7. 七.全文检索ElasticSearch经典入门-聚合查询

    前言 今天我们讲ES的高亮和聚合查询,聚合功能是ES很重要的功能,它基于查询条件来对数据进行分桶和计算.它提供了类似于关系型数据库的SUM,COUNT, AVG , Group By 等功能.聚合也可 ...

  8. A081_Lucene_ElasticSearch

    目录 1.内容介绍 2.认识全文检索 2.1.什么是全文检索 2.2.全文检索的特点 2.3.常见的全文检索方案 3.Lucene介绍 3.1.什么是Lucene 3.2.Lucene实现全文检索架构 ...

  9. Elasticsearch 5.x Java api Aggregations(聚合)

    Ealsticsearch 5.x Java API聚合string类型的时候,会报错(json的错),则需要在聚合的string类型字段的后面添加.keyword , 虽然使用watch查看聚合的e ...

  10. 聚合中返回source_大数据搜索与可视化分析(9)elasticsearch聚合分析Metric Aggregation...

    在上一篇文章中,我们介绍了<大数据搜索与可视化分析(8)kibana入门教程-2-Discover>,本文学习elasticsearch聚合分析,是对<大数据搜索与可视化分析(3)e ...

最新文章

  1. Oracle命令--数据文件被误删后的处理
  2. php order by where,无合适where条件过滤时尽量选择order by后的字段以驱动表进行查询...
  3. spring mvc学习(34):restful的delete
  4. 【LeetCode笔记】215. 数组中的第K个最大元素(Java、快排、堆排、并发快排)
  5. 怎么调整字段长短_【芝士蛋糕怎么总烤不熟呢?】
  6. ImportError: cannot import name *
  7. delphi中exit,abort,break,continue 的区别
  8. [经典php视频]构建正则表达式解析网页中的图像标记img
  9. python设置多级标题_Mac Office Word设置多级标题
  10. 服务器系统如何设置屏幕保护,在windows中要设置屏幕保护程序可以使用控制面板的什么功能?_网站服务器运行维护,windows,屏幕保护程序,控制面板...
  11. 2021年计算机二级web题库,2021年全国计算机等级考试(二级Web程序设计)经典试题及答案...
  12. DeviceOrientation ---实现指南针
  13. 项目实战:动态系统的设计(类似朋友圈)
  14. 智合同丨企业数智化转型,AI技术起到了什么作用?
  15. 一名数据仓库工程师的自我修养
  16. javascript 方法 一直提示 对象不支持此属性或方法
  17. 张量网络算法基础(七、张量网络中的有效哈密顿思想)
  18. 带你认识一下“京东到家-网关系统”
  19. 阿里大变局,马云女弟子掌舵淘宝
  20. 如何在Windows中启用“立体声混音”并从PC录制音频

热门文章

  1. 【日用】获取pfx证书序列号
  2. 计算机如何连接隐藏的无线网络,笔记本电脑怎么连接隐藏的无线网wifi
  3. 推荐术语:CPM、CPC、CPA、CPI、CTR、CPV、CVR
  4. Firefox 地址栏的“手气不错”
  5. CentOS7 分区合并
  6. 钟汉良日记:2年10个月后第一次坐车回家
  7. [Android]按阶段编译Android kernel中的代码
  8. 前端研发生态环境构建经验谈
  9. 成功解决xgboost\core.py:614: UserWarning: Use subset (sliced data) of np.ndarray is not recommended beca
  10. Rectangling Panoramic Images via Warping算法要点分析