20 - Elasticsearch聚合分析简介

什么是聚合(Aggregation)

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

Kibana可视化报表:聚合分析

  • 公司程序员的工作岗位分布
  • 公司采用的编程框架分布
  • 公司员工薪水分布
  • 客户的地理位置分布
  • 订单的增长情况
  • 等待...
kibana 聚合报表

聚合的分类

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

Bucket & Metric

  • Metric:一些系列的统计方法(例:select count(*))
  • Bucket:一组满足条件的文档(例:group by brand)

Bucket

  • 一些例子
    • 杭州属于浙江 / 一个演员属于男性或女性
    • 嵌套关系:杭州属于浙江属于中国属于亚洲
  • Elasticsearch提供了很多类型的Bucket,帮助你用多种方式划分文档
    • Term & Range(时间,年龄区段,地理位置)
分桶聚合

Metric

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

一个Bucket的例子

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

航班统计

结果示例

加入Metrics

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

metric统计示例

结果示例

嵌套聚合

查看航班目的地的统计信息,平均票价,以及天气情况

嵌套聚合查询

嵌套聚合结果
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容