聚合剖析 aggregation
es 在搜寻性能之外,提供的针对数据统计分析的性能
- 功能丰富,提供bucket metric pipeline 等多种剖析形式
- 实时性高,所有后果都是即时返回,而hadoop等大数据系统是t+1级别
聚合剖析品种
- bucket 分桶类型 相似sql中的group by 语法
- metric 指标剖析类型 如计算最大值 最小值 平均值等
- pipeline 管道剖析类型,基于上一级的聚合剖析后果进行再剖析
- matrix 矩阵剖析类型
metric 聚合剖析
单值剖析
- min max avg sum
- cardinality
多值剖析
- stats extends stats
- percentile percentile rank
- top hits
bucket 聚合剖析
将文档归类为不同的bucket中
- terms
- range
- date range
histogram
- 直方图 以固定距离策略来宰割数据
- date histogram
pipeline
pipeline 的剖析后果会输入到原后果中 依据输入地位不同 分为两类
parent 后果内嵌到现有的聚合剖析后果中
- derivative
- moving average
- cumulative sum
sibling 后果与现有聚合剖析后果同级
- max min avg sum bucket
- stats extended stats bucket
- percentile bucket
作用范畴
es默认的作用范畴是query后果集,也能够设置其余范畴
- filter 为了聚合剖析设定过滤条件,不更改整体query语句的状况下调整作用范畴
- post_filter 作用域文档过滤 但在聚合剖析后失效
- global 忽视query过滤条件 基于全副文档进行剖析
排序
能够应用自带的要害数据进行排序
- _count文档数
- _key依照key值排序
原理与精准度问题
起因 数据扩散在多个shard上
- 设置shard为1 打消苏韩剧扩散问题
- 设置shard size 即每次从shard上额定取得文档
terms聚合返回后果中有如下两个统计值
- doc_count_error_upper_bound 被脱漏的term的可能的最大值
- sum_other_doc_count返回后果bucket的term外其余term的文档总数
shard size 默认大小如下 size*1.5 + 10
通过调整shard size的大小升高 doc_count_error_upper_bound 来晋升准确度 大了整体计算量 升高了响应工夫