ES运维(五)聚合分析流程及精准度

二龙3年前技术文章2077

1、 概述

ES是一个近实时的搜索引擎,提供近实时海量数据的聚合分析功能,但这个海量数据聚合分析是会损失一定的精准度来满足实时性能需要的。

 

2、 分布式系统的近似统计算法

如下图,在分布式数据分析平台,当同时考虑到数据量,分析精准度及分析实时性的话,最多只能满足其中的两点:

001.png

3、 聚合分析的执行流程

aMin最小值聚合(可准确返回)

002.png

如上图,是对一个索引做Min值聚合,数据分布在三个节点的三个分片上,Coordinating节点接收到请求后就会同时到这三个分片上找到每个分片的最小值,然后在Coordinating节点对返回的三个值再次求最小值。此时聚合是精准的。

bTerms聚合分析(不一定准确)

003.png

如上图,此次取索引top3,与a流程相同,在每个分配上同时取到top3,然后汇总再次取top3,但此次聚合分析结果不一定精确。c案例及可说明此问题。

cTerms聚合不准确案例

004.png

如上图,此次top3聚合由于在每个分配只取top3,导致在第二次汇总分析时结论不准确(非全局top3

Terms Aggregation的返回值

Terms Aggregation 的返回中有两个特殊的数值

doc_count_error_upper_bound:被遗漏的 term 分桶,包含的文档,有可能的最大值

sum_other_doc_count: 处理返回结果 bucket terms 以外,其他 terms 的文档总数(总数 - 返回的总数)

 

4、 聚合不精确问题分析与解决

解决Terms不准的问题:

        不准的原因:Terms 聚合分析不准的原因,数据分散在多个分片上,Coordinating Node 无法获取数据全貌

解决方案 1:当数据量不大时,设置 Primary Shard 1;实现准确性

解决方案 2:在分布式数据上,设置 shard_size 参数,提高精确度(每次从 Shard 上额外多获取数据,提升准确率)

相关文章

Hive架构图及Hive SQL的执行流程

Hive架构图及Hive SQL的执行流程

1、Hive产生背景MapReduce编程的不便性HDFS上的文件缺少Schema(表名,名称,ID等,为数据库对象的集合)2、Hive是什么Hive的使用场景是什么?基于Hadoop做一些数据清洗啊...

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC:疫情下,第三方云管理服务市场逆势增长!

IDC预测,中国第三方云管理服务在2019年到2023年间将保持54.7%的增长率,2023年市场规模预计达到32.1亿美元。2019年第三方云管理服务市场呈现出如下特点:云管理服务成为众多服务商的战...

ranger对接metastore

ranger对接metastore

前提:本文前提是基于集群中已经安装部署了ranger组件、hive组件的情况下,增加ranger metastore插件的对接。安装部署1、ranger metastore插件编译插件下载 https...

nginx配置反向代理某个url

nginx配置反向代理某个url

本文讲的这个漏洞 主要是为了解决漏洞扫描的问题我先介绍下这个漏洞主要是因为访问https://172.16.120.17:18090/ws/v1/cluster/info这个 yarn rest的一个...

大数据监控系列(一)——Prometheus+Grafana监控概述

大数据监控系列(一)——Prometheus+Grafana监控概述

1 概述这是介绍Prometheushe和Grafana主要是为了监控大数据产品,数栈平台也是使用Prometheushe+Grafana作为底层大数据组件的监控,并且均有配置模板,导入即在Grafa...

trino组件对接alluxio(三)

trino组件对接alluxio(三)

本文是基于已经部署了trino和alluxio的基础上,进行的trino与alluxio的组件对接,alluxio已经开启了高可用模式。安装部署1、增加alluxio配置在core-site.xml和...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。