1)环境准备
启动Elasticsearch https://blog.csdn.net/qq_36918149/article/details/104221934
启动Kinbana https://blog.csdn.net/qq_36918149/article/details/104224625
备注:一定要提前导入demo数据
2)哪些场景在用聚合分析?
场景一:搜索页面预览统计
一般用于检索页面,分组统计。
场景二:Kibana 可视化报表-聚合分析
3)什么是聚合(Aggregation)?
4)集合的分类
5)Bucket&Metric 与sql对比
6)桶(Bucket)
7)指标(Metric)
8)桶(Bucket)演示
#按照目的地进行分桶统计
GET kibana_sample_data_flights/_search
{
"size": 0,
"aggs":{
"flight_dest":{
"terms":{
"field":"DestCountry"
}
}
}
}
结果:下图结果中看出按目的地进行了航班班次统计
9)指标(Metric)演示
#查看航班目的地的统计信息,增加平均,最高最低价格
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"
}
}
}
}
}
}
结果:
9)嵌套演示
#价格统计信息+天气信息
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
}
}
}
}
}
}
结果:按DestCountry分桶后,按票价AvgTicketPrice进行继续count、nim、max、avg并按DestWeather字段再次分桶统计