概述
继续跟中华石杉老师学习ES,第45篇
课程地址: https://www.roncoo.com/view/55
易并行聚合算法
有些聚合分析的算法,是很容易就可以并行的,比如说 max
有些聚合分析的算法,是不好并行的,比如说,count(distinct),并不是说,在每个node上,直接就出一些distinct value,就可以的,因为数据可能会很多.
es会采取近似聚合的方式,就是采用在每个node上进行近估计的方式,得到最终的结论,cuont(distcint),假设数据有100万,近似聚合算法可能估计出来105万或者95万 --> 5%左右的错误率
近似估计后的结果,不完全准确,但是速度会很快,一般会达到完全精准的算法的性能的数十倍
三角选择原则
精准+实时+大数据 --> 3个里面只能选择2个
- (1)精准+实时: 没有大数据,数据量很小,那么一般就是单击跑,随便你则么玩儿就可以
- (2)精准+大数据:hadoop,批处理,非实时,可以处理海量数据,保证精准,可能会跑几个小时
- (3)大数据+实时:es,不精准,近似估计,可能会有百分之几的错误率
近似聚合算法
近似聚合算法 : https://www.elastic.co/guide/cn/elasticsearch/guide/current/_approximate_aggregations.html
- 如果采取近似估计的算法:延时在100ms左右,0.5%错误
- 如果采取100%精准的算法:延时一般在几秒~几十秒,甚至几十分钟,几小时, 0%错误