聚合剖析 aggregation

es 在搜寻性能之外,提供的针对数据统计分析的性能

  1. 功能丰富,提供bucket metric pipeline 等多种剖析形式
  2. 实时性高,所有后果都是即时返回,而hadoop等大数据系统是t+1级别

聚合剖析品种

  1. bucket 分桶类型 相似sql中的group by 语法
  2. metric 指标剖析类型 如计算最大值 最小值 平均值等
  3. pipeline 管道剖析类型,基于上一级的聚合剖析后果进行再剖析
  4. matrix 矩阵剖析类型

metric 聚合剖析

  1. 单值剖析

    1. min max avg sum
    2. cardinality
  2. 多值剖析

    1. stats extends stats
    2. percentile percentile rank
    3. top hits

bucket 聚合剖析

将文档归类为不同的bucket中

  1. terms
  2. range
  3. date range
  4. histogram

    1. 直方图 以固定距离策略来宰割数据
  5. date histogram

pipeline

  1. pipeline 的剖析后果会输入到原后果中 依据输入地位不同 分为两类

    1. parent 后果内嵌到现有的聚合剖析后果中

      1. derivative
      2. moving average
      3. cumulative sum
    2. sibling 后果与现有聚合剖析后果同级

      1. max min avg sum bucket
      2. stats extended stats bucket
      3. percentile bucket

作用范畴

  1. es默认的作用范畴是query后果集,也能够设置其余范畴

    1. filter 为了聚合剖析设定过滤条件,不更改整体query语句的状况下调整作用范畴
    2. post_filter 作用域文档过滤 但在聚合剖析后失效
    3. global 忽视query过滤条件 基于全副文档进行剖析

排序

能够应用自带的要害数据进行排序

  1. _count文档数
  2. _key依照key值排序

原理与精准度问题

起因 数据扩散在多个shard上

  1. 设置shard为1 打消苏韩剧扩散问题
  2. 设置shard size 即每次从shard上额定取得文档

terms聚合返回后果中有如下两个统计值

  1. doc_count_error_upper_bound 被脱漏的term的可能的最大值
  2. sum_other_doc_count返回后果bucket的term外其余term的文档总数

shard size 默认大小如下 size*1.5 + 10
通过调整shard size的大小升高 doc_count_error_upper_bound 来晋升准确度 大了整体计算量 升高了响应工夫