乐趣区

关于java:elastic-stack-那些事7

聚合剖析 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 来晋升准确度 大了整体计算量 升高了响应工夫

退出移动版