论文部分内容阅读
随着近年来数据搜集手段的长足发展,很多企业所拥有的生产与管理的数据量已经非常巨大,如何存储和检索这些数据指导企业下一步战略变得越来越重要。伴随着Google提出著名的MapReduce计算模型,将关系性数据仓库与该模型整合来处理海量数据上已经成为解决该问题的有效方案之一。但是当前实现的MapReduce模型下的数据仓库在进行分布式存储时并没有考虑到数据间的相关性。如果对数据进行相关存储会在很大程度提高分布式数据仓库上的检索性能。针对这个问题,本文做了三项工作:设计了数据仓库中事实表进行多维衍生水平划分的方案;并将其应该到本文设计的MDChunkDB多维分布数数据仓库中;另外还扩展了Hadoop开源框架中的InputFormat数据接口,使在MDChunkDB数据仓库上运行Hadoop的检索作业成为现实。首先,事实表的多维衍生水平划分方案是将事实表按照指定的参照维的取值不同进行水平分片,划分后的事实表分片中的各个数据元组的参照维的取值上具有相关性。这种分片方减少了检索时启动Map任务的数据节点数量,只有在与SQL查询相关的数据分片上启动Map任务即可,可以在检索时大大提高检索效率。其次,MDChunkDB数据仓库是一个可以建立部署在廉价的超大PC集群上的分布式数据仓库。它通过整合MapReduce计算框架和传统的关系数据库技术,将其两者的优势结合在一起。在MDChunkDB数据仓库中,存储数据的载体是集群中数据节点上的集中式数据库,而对该数据仓库进行并行检索的操作是由MapReduce计算模型来实现。文中详细的阐述了MDChunkDB数据仓库的整体架构及设计中的各个要点:元数据信息、存储策略、容错性与扩展性等等。最后,为了实现MapReduce计算模型与MDChunkDB数据仓库的融合,扩展了Hadoop的InputFormat接口,使MDChunkDB数据仓库上可以运行Hadoop的查询检索任务。通过实验测试了MDChunkDB多维分布式数据仓库的加载性能和检索性能。MDChunkDB数据仓库的加载性能不及HadoopDB,但是大数据量时检索性能优于HadoopDB,并且MDChunkDB可以有效的支持星型模型下的多表连接操作。MDChunkDB数据仓库的并没有完全优于HadoopDB,故在今后的研究中可以通过改进数据仓库中分片存储策略等环节进一步提高其并行检索性能。