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. 基于pytorch后量化(mnist分类)---浮点训练vs多bit后量化vs多bit量化感知训练效果对比
  2. 反射__获取delegate的信息
  3. python解析雷达数据_【学习笔记】使用python带时间戳提取rosbag中的图像和雷达数据...
  4. 画瀑布图_常见的招财风水画之含义
  5. C++ Vector详解
  6. 广义表head tail 运算_双链表实现LRU缓存淘汰策略
  7. OA办公系统需要专业的系统管理员
  8. 算法怎么就这么难?----使用欧几里得算法求两数的最大公约数
  9. vue显示农历_vue农历日历
  10. uac2+android,iBasso UAC
  11. OCR目标识别(车辆VIN码识别效果)
  12. springboot整合Redis+elasticsearch时的异常问题
  13. 教你如何用Python抓取QQ音乐歌单及分析
  14. python 调用Google Translate API 翻译
  15. Android 后台服务(Service)
  16. 华为云搭建web服务器(WordPress)
  17. 教你Java5分钟制作海报、彻底解决APP兼容性问题
  18. Ajax之不可或缺的setRequestHeader()
  19. 1.Hibernate框架核心组件 (转自冯岩)
  20. 新一代版本控制系统Git,你真的掌握了吗?

热门文章

  1. html语言剖析十六 调色原理
  2. CIO40知识星球—5年工程师升职IT主管(22-27岁)
  3. 【办公实用网站收集】免费模板
  4. TDB和SPARQL
  5. 理解IaaS、SaaS、paas的含义及区别
  6. 邮件签名html qq,QQ邮箱:域名邮箱/个性化签名
  7. java http data chunk_HTTP协议之chunk编码(分块传输编码)
  8. C语言中的逗号的作用,c语言中什么是逗号运算符并举例
  9. Vue中自定义指令directive的使用
  10. 一年半的桌面运维经验小结,欢迎有类似经历的伙伴评论交流