基于代价模型的SparkSQL查询优化研究

来源 :电子科技大学 | 被引量 : 16次 | 上传用户:datangkang123
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
近几年,Spark作为下一代通用大数据计算平台,因其高效的海量数据处理能力得到了越来越多企业和研究人员的关注。Spark SQL作为Spark上的结构化数据查询引擎被越来越多的企业、机构用于分析他们积累的结构化数据,从中挖掘有价值的信息。然而,相较于传统的数据库以及MapReduce类查询引擎而言,Spark SQL仍然缺乏基于代价模型的查询优化手段。因此,本文借鉴数据库领域以及MapReduce上的查询优化技术,结合Spark自身的特点,提出了一个基于代价模型的查询优化原型,用以提高Spark SQL在关系查询上的执行效率。本文研究的重点是根据Spark计算平台自身的特点,提出一个基于代价模型的查询优化原型。相较于MapReduce类系统,Spark在计算过程中的中间结果可以缓存在内存中,减少了磁盘的读写I/O消耗。本文针对关系查询中常见的几种操作——选择、投影、分组聚合在Spark中的物理实现定义了代价模型。对等值连接的两种在Spark中的物理实现Shuffle join和Broadcast join分别定义了成本模型。在本论文中,对已有的数据库领域的查询优化方法以及MapReduce类系统上的查询优化研究进行了调研,对基于代价模型的查询优化方法进行了深入的研究。为了能更准确的估算查询计划的执行代价,优化器原型利用等深直方图这一种商业数据库常用的统计技术来获得更准确的中间结果估算。在等深直方图的基础上,定义了查询中间结果大小的估算方法。根据中间结果的估算来选择合适的表之间的连接顺序。在中间结果大小的基础上,结合Spark系统的特点,给出了Spark上的代价模型。根据定义的代价模型对等价的物理查询计划进行执行代价估算,从中找出执行代价最小的查询计划,提交给Spark计算引擎执行,并向用户返回最终结果。最后,本文对提出的基于代价模型的优化原型进行了性能测试。设定了2种不同的集群状态和4个不同的查询任务。将未优化的查询时间与优化后的查询时间进行对比。实验表明,与Spark SQL未优化前相比,优化原型可以使得查询效率提升13.51%。
其他文献
近年来,随着微电子技术、计算技术和低功耗无线通信技术的快速发展,种由微型传感单元、数据处理单元和无线通信模块集成的无线传感器出现。无线传感器网络就是由大量这些微型
互联网技术的迅猛发展,推动了网络信息的爆炸式增长。如何从这些异常丰富的网络信息资源中发现有价值的信息,已经成为信息处理领域的一个亟待解决的问题。网页自动分类技术可
随着信息的高速增长与网络的普及,互联网已发展成目前最大的信息资源库,在海量的网络信息中,如何从中快速和准确找到所需要的信息,已成为人们不得不面对一个问题。搜索引擎的
基于对象存储系统中,元数据存储量小,但是访问量大且管理复杂,元数据服务器在整个对象存储系统中占据重要的地位。现有的负载平衡策略中,当需要选择服务器存储热点数据副本时
随着深亚微米工艺的广泛应用,集成电路特征尺寸急剧减小,于此同时,工作电压持续降低,工作频率急剧升高,这一切都使得集成电路对于空间中的中子和封装材料中的α粒子,对电路的
视网膜眼底图像被广泛地应用于诊断各种眼底病变:如青光眼、白内障、老年退化性黄斑病变等,甚至也能帮助高血压、糖尿病、中风等全身性疾病的诊断。通过计算机图像处理和分析
P2P作为一种新兴的、高性能的分布式计算技术,近年来得到了迅速的发展。国内外众多的研究机构和企业都对其进行了大量的研究,同时也有很多基于P2P技术的应用系统问世,业界普遍都
P2P网络的自组织、分布式和匿名性等特点为病毒传播、自私行为、恶意欺诈行为提供了便利,导致节点之间缺乏信任,网络稳定性差。P2P网络中节点之间的信任关系和人类社会的信任
随着软件产业的蓬勃发展,软件的规模和复杂度越来越高。在软件开发过程中,调试工作的难度也随之提高。使用一般的调试方法,往往会遇到这样的困境:第一,由于系统的并行性和外
TD/GSM双模手机需求的多样性,使得传统的双模手机软件架构已达不到系统和用户的需求,为了有一个稳定、先进、可扩展的TD/GSM双模手机软件架构供开发商使用,利用分层模型和“框架