论文部分内容阅读
随着大数据的发展,数据呈现出增长快速且格式多样的特点,传统关系型数据库在处理此类数据的复杂分析任务时,其局限性越来越凸显。因此,更多的数据开始以非关系型数据存储,如图数据、文档数据、Key-Value数据等。由此带来的是,异构数据复杂分析任务越来越普遍,这类分析任务在涉及多种数据模型的异构数据组合中执行查询。而数据的异构不仅在数据维护、管理等方面异常困难,更主要的是在执行分析任务时难以获得最优的执行效果,同时消耗更多的资源。因此,有必要将异构数据进行统一处理,转换为同一种数据模型用于分析任务。如何确定合适的数据模型,用于统一查询中包含的异构数据,以获得更高的数据分析效率,是一个亟待解决的问题。传统解决方案是将所有数据集成到一起,以XML数据作为中间转换模型,之后分析任务基于XML格式数据执行。由于XML数据自身的查询特点,其难以满足大数据量的分析需求。而且,NoSQL数据库技术的发展,可以很好地支持关系型数据与非关系型数据之间的转换,为我们的数据存储方式提供了更多的选择,使得我们能够完全以非关系型数据的存储模型完成分析任务。我们认为在分析任务涉及的异构数据组合中,存在一种最优数据模型,将异构数据统一为该模型进行分析,能够获得最优的执行性能。由此,本文提出一种基于代价估算的数据模型选择方法,将代价模型引入该方法,估算查询任务在不同数据模型上的查询代价,将其作为衡量数据模型的标准,选择出查询代价最小的数据模型,分析任务在该模型下可以获得最优分析性能。本文主要研究内容是:(1)研究异构数据组合中涉及的数据模型及其查询特点;(2)设计并实现基于非关系型数据的查询代价估算模型;(3)基于代价估算对比关系型数据与非关系型数据的查询代价,完成异构数据组合中最优数据模型的选择;(4)基于BigBench大数据评测基准生成的数据集,设计查询用例,验证该方法的准确性及有效性。