一、什么是聚合
image.png二、Kibana的可视化报表 - 聚合分析
image.png三、集合的分类
- Bucket Aggreation -- 一些列满足特定条件的文档集合
- Metric Aggregation -- 一些数学运算,可以对文档字段进行统计分析
- Pipeline Aggregation -- 对其他的聚合结果进行二次聚合
- Matrix Aggregation -- 支持多个字段的操作并提供一个结果矩阵
四、Bucket & Metric
image.pngBucket
image.pngMetric
image.png五、一个Bucket的例子 --- terms
需要通过Kibana导入Sample Data的飞机航班数据。
image.png
- 聚合操作被置于顶层参数
aggs
之下(如果你愿意,完整形式aggregations
同样有效)。 - 然后,可以为聚合指定一个我们想要名称,本例中是:
flight_dest
。 - 最后,定义单个桶的类型
terms
。
关于size:0
image.png
六、加入Metrics --- avg 、max、stats(多值统计)
查看航班目的地的统计信息,增加均价,最高最低价格
image.png
image.png
七、嵌套
查看航班目的地的统计信息,平均票价,以及天气状况
image.png
image.png
https://www.elastic.co/guide/cn/elasticsearch/guide/current/_buckets_inside_buckets.html
#按照目的地进行分桶统计
GET kibana_sample_data_flights/_search
{
"size": 0,
"aggs":{
"flight_dest":{
"terms":{
"field":"DestCountry"
}
}
}
}
#查看航班目的地的统计信息,增加平均,最高最低价格
GET kibana_sample_data_flights/_search
{
"size": 0,
"aggs":{
"flight_dest":{
"terms":{
"field":"DestCountry"
},
"aggs":{
"avg_price":{
"avg":{
"field":"AvgTicketPrice"
}
},
"max_price":{
"max":{
"field":"AvgTicketPrice"
}
},
"min_price":{
"min":{
"field":"AvgTicketPrice"
}
}
}
}
}
}
#价格统计信息+天气信息
GET kibana_sample_data_flights/_search
{
"size": 0,
"aggs":{
"flight_dest":{
"terms":{
"field":"DestCountry"
},
"aggs":{
"stats_price":{
"stats":{
"field":"AvgTicketPrice"
}
},
"wather":{
"terms": {
"field": "DestWeather",
"size": 5
}
}
}
}
}
}
https://www.elastic.co/guide/en/elasticsearch/reference/7.1/search-aggregations.html
网友评论