美文网首页
【elasticsearch】11、聚合分析简介

【elasticsearch】11、聚合分析简介

作者: cutieagain | 来源:发表于2020-03-13 21:49 被阅读0次

    什么是聚合 (aggregation)

    • elasticsearch出搜索意外,提供的针对es数据进行统计分析的功能
      • 实时性高
      • hadoop (t+1)
    • 通过聚合,我们会得到一个数据的概览,试分析和总结全套的数据,而不是寻找单个文档
      • 尖沙咀和香港岛的客房数量
      • 不同价格区间,可预订的经济型酒店和五星级酒店的数量
    • 高性能,只需要一条语句,就可以从elasticsearch得到分析结果
      • 无需在客户端自己去实现分析逻辑

    kibana可视化报表 - 聚合分析

    • 公司程序员的工作岗位分部
    • 公司采用的变成框架分布
    • 公司圆通薪水分布
    • 客户的地理位置分布
    • 订单的增长情况等

    集合的分类

    • bucket aggregation - 一些列满足特定条件的文档的集合
    • metric aggregation - 一些数学运算,可以对文档字段进行统计分析
    • pipeline aggregation - 对其他的聚合结果进行二次聚合
    • matrix aggregation - 支持对多个字段的操作并提供一个结果矩阵

    bucket & metric

    image.png

    bucket

    • 一些例子
      • 杭州属于浙江 / 一个演员属于男或者女
      • 嵌套关系 - 杭州属于浙江属于中国属于亚洲
    • elasticsearch提供了很多类型的bucket,帮助你用多种方式划分文档
      • term & range(时间/年龄取件/地理位置)


        bucket

    metric

    • metric会基于数据集计算结果,除了支持在字段上进行计算,同样也支持在脚本(painless script)产生的结果之上进行计算
    • 大多数metric是数学计算,仅输出一个值
      • min/max/sum/avg/cardinality
    • 部分metric支持输出多个数值
      • stats/percentiles/percentile_ranks

    一个bucket的例子

    bucket的例子

    加入metrics

    • 查看航班的目的地统计信息,增加均价,最高最低价格


      image.png
      image.png

    嵌套

    • 查看航班的目的地统计信息,平均票价,以及天气状况
    image.png
    image.png
    #按照目的地进行分桶统计
    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
                      }
                    }
    
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:【elasticsearch】11、聚合分析简介

          本文链接:https://www.haomeiwen.com/subject/pruyshtx.html