惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
爱范儿
爱范儿
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
M
MIT News - Artificial intelligence
L
LangChain Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
J
Java Code Geeks
Recent Announcements
Recent Announcements
Stack Overflow Blog
Stack Overflow Blog
人人都是产品经理
人人都是产品经理
IT之家
IT之家
F
Fortinet All Blogs
博客园 - 聂微东
U
Unit 42
Martin Fowler
Martin Fowler
腾讯CDC
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
阮一峰的网络日志
阮一峰的网络日志
博客园 - Franky

祈雨的笔记

安全多方计算MPC spark原理解析 kueue执行源码分析 spark on k8s执行源码分析 spark-operator源码解析 系统压测遇到的缓存击穿问题 我的世界PC与安卓联机 蚂蚁金服流量投放平台的AIG改造 G1大对象致Old区占用率高 日志打印导致接口响应率下跌分析 Groovy加载类导致OOM分析 ERROR日志打印导致CPU满载 记OceanBase死锁超时 应用发版期间服务响应超时 Ark Serverless初探 系统优化复盘一二三 The user specified as a definer does not exist Kong网关初探 API网关选型调研 CPU火焰图常用工具 配置中心选型调研 root操作Nginx导致用户组错误 基于Proxifier使用代理 FastJSON字段智能匹配踩坑 Nacos初探 记一次Nginx服务器CPU满荷载故障 基于券系统分库分表的思考 limit不参与SQL成本计算致索引失效 Linux常用性能监控命令 golang低版本http2偶现400
elasticsearch聚合统计-度量聚合
祈雨的笔记 · 2018-09-20 · via 祈雨的笔记

平均值聚合

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_avg": {
"avg": {
"field": "field1"
}
}
}
}

对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing参数,给缺失统计字段的数据一个默认值进行聚合统计。

1
2
3
4
5
6
7
8
9
10
11
12
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_avg": {
"stats": {
"field": "field1",
"missing": 0
}
}
}
}

基数聚合

统计某字段唯一值得个数,相当于SQL中的SELECT COUNT(DISTINCT field1) FROM xxx

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_cardinality": {
"cardinality": {
"field": "field1"
}
}
}
}

对于缺失统计字段的数据,默认情况下聚合时会被忽略。可以通过设置missing参数,给缺失统计字段的数据一个默认值进行聚合统计。

1
2
3
4
5
6
7
8
9
10
11
12
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_cardinality": {
"cardinality": {
"field": "field1",
"missing": "N/A"
}
}
}
}

基数聚合的值并不是一个绝对的准确值,而是一个近似计数。由于es统计到高基数集时需要占用大量的内存,且各个节点之间的沟通也会占用大量的集群资源,因此效率较低。参数precision_threshold允许es为了基数统计的准确性而设置交换内存,实际的基数统计值低于precision_threshold则基数将接近准确,高于该值计数会更模糊,最大值为40000,默认值为3000。

最大值聚合

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_max": {
"max": {
"field": "field1"
}
}
}
}

最小值聚合

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_min": {
"min": {
"field": "field1"
}
}
}
}

和聚合

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_sum": {
"sum": {
"field": "field1"
}
}
}
}

值计数聚合

值计数聚合对聚合文档中提取的值进行计数,通常该聚合与其他单值聚合一起使用,例如计算平均聚合时,统计有多少个值参与了平均聚合。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_avg": {
"avg": {
"field": "field1"
}
},
"test_value_count": {
"value_count": {
"field": "field1"
}
}
}
}

统计聚合

统计聚合是多个单值聚合的汇总,包含:最小值、最大值、和、计数、平均值。

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_stats": {
"stats": {
"field": "field1"
}
}
}
}

百分比聚合

1
2
3
4
5
6
7
8
9
10
11
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_percentiles": {
"percentiles": {
"field": "field1"
}
}
}
}

默认情况下,百分比指标会计算一系列百分比:1、5、25、50、75、95、99,也可以自定义需要计算的百分比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_percentiles": {
"percentiles": {
"field": "price",
"percents": [
1,
5,
25,
50,
75,
95,
99
]
}
}
}
}

百分比分级聚合

计算测试值低于指定值得百分比。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
GET /index/type/_search
{
"size": 0,
"aggs": {
"test_percentile_ranks": {
"percentile_ranks": {
"field": "field1",
"values": [
10,
20
]
}
}
}
}