版权所有:内蒙古大学图书馆 技术提供:维普资讯• 智图
内蒙古自治区呼和浩特市赛罕区大学西街235号 邮编: 010021
作者单位:上海交通大学
学位级别:硕士
导师姓名:傅育熙;李国强
授予年度:2018年
学科分类:12[管理学] 1201[管理学-管理科学与工程(可授管理学、工学学位)]
主 题:大数据 分布式系统 数据库 查询优化 索引 Spark SQL
摘 要:Spark SQL使得开发者和数据分析师可以在Spark应用程序中便捷地直接使用SQL语句在结构化或非结构化的数据集上查询数据。它给开发者和数据分析员提供了极大的便利去利用关系型数据模型的优点,并且Spark内部的RDD数据模型也提升了在大规模数据集上查询的性能。但是,Spark SQL不是面向长期“服务的。其提供的DataSource数据源在每次扫描表的时候都会从底层的存储系统中加载数据。尽管用户可以通过cache命令显式地将待查询的数据缓存在内存中,但是这样缓存的粒度非常大,一次会将整张表在内存中缓存,而且一旦应用程序崩溃或者重启之后,内存中缓存的数据就会消失。尽管工业界出现了许多列式存储的文件格式来加速数据的查询,但是Spark SQL在较大规模数据集上查询的延时依旧不尽人意。对此,本文实现了一种Spark SQL之上的定制化查询引擎,它引入了一种新的数据文件格式以及索引结构来加速Spark SQL引擎的查询速度。它允许用户创建数据表的索引,从而来加速结构化数据的查询,满足了用户即席查询的需求。与此同时该定制化查询引擎还提供了更细粒度的缓存机制。可以将表数据或索引数据分块以更细的粒度缓存在内存中,从而更好地支持在内存中对―热点数据‖的缓存以及―冷数据‖的驱逐。此外,定制化的查询引擎提供了对Parquet格式的兼容,支持Parquet格式上的索引创建及查询。定制化的文件格式、索引结构以及细粒度的缓存机制使得Spark SQL更加地面向服务化,更好地满足即席查询的需求。经过一系列的性能评估及测试表明,与原生的Spark SQL相比,该定制化查询引擎的查询执行性能有较大的提升,定制化的服务及易用性对用户也更加友好。