ElasticSearch(七):聚合分析简介

ElasticSearch(七):聚合分析简介

学习课程链接《Elasticsearch核心技术与实战》


什么是聚合(Aggregation)

  • ElasticSearch除了搜索外,还提供了针对ElasticSearch数据进行统计分析的功能
  • 通过聚合,会得到一个数据的概览,这样就可以分析和总结全套的数据,而不是仅仅能寻找单个文档
  • 易用性,只需要一条语句,就可以从ElasticSearch中得到分析结果,从而避免在客户端实现分析逻辑


聚合的分类

  • Bucket Aggregation:一些列满足特定条件的文档集合,其相当于SQL中的Group By
  • Metric Aggregation:一些数学运算,可以对文档字段进行统计分析
    • 其相当于SQL中对于字段进行运算的函数,如Sum、Count等。它除了可以在字段上进行计算,还可以在脚本产生的结果上进行计算
    • 大多数Metric是数学计算,输出一个值,如:min/max/sum/avg/cardinality
    • 部分支持输出多个值,如:stats/percentiles/percentile_ranks
  • Pipeline Aggregation:对其他的聚合结果进行二次聚合
  • Matrix Aggregation:支持对多个字段的操作并提供一个结果矩阵


一些聚合分析例子

#按照目的地进行分桶统计
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
                  }
                }

            }
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/czbxdd/p/12033894.html