ElasticSearch聚合分析

ElasticSearch 聚合分析分析

什么是聚合(Aggregation)

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

聚合的分类

  • Bucket Aggregation : 一些列满足特定条件的文档的集合 (group by)
  • Metric Aggregation : 一些数学运算,可以对文档字段进行统计分析 (sum(),count(),avg())
  • Pipeline Aggregation : 对其他的聚合结果进行二次聚合
  • Matrix Aggregation : 支持对多个字段的操作并提供一个结果矩阵

Bucket

在这里插入图片描述

  • 一些例子:

    • 杭州属于浙江 / 把用户分为 男性 / 女性
    • 嵌套关系 : 杭州 属于浙江 属于 中国 属于亚洲
  • ElasticSearch 提供了很多类型的 Bucket,帮助你用多种方式划分文档

    • Term & Range (时间 / 年龄区间 / 地理位置)

查看航班目的地的统计信息

GET kibana_sample_data_flights/_search
{
  "size":0,  
  "aggs":{
    "flight_dest":{
      "terms":{
        "field":"DestCountry"  # 按照字段DestCountry的Terms 进行分桶
      }
    }
  }
}

在这里插入图片描述

嵌套

查看航班的目的地统计信息,平均票价,以及天气情况统计(相当于两次group by)

GET kibana_sample_data_flights/_search
{
  "size":0,
  "aggs":{
    "flight_dest":{
      "terms":{
        "field": "DestCountry"
      },
      "aggs": {
        "avg_price": {
          "avg": {
            "field": "AvgTicketPrice"
          }
        },
        "weather":{
          "terms": {
            "field": "DestWeather"
          }
        }
      }
    }
  }
}

返回结果:
在这里插入图片描述

Metric (运算)

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

查看航班目的地的统计信息,均价,最高最低价
在这里插入图片描述
返回结果:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值