论文部分内容阅读
近年来,由于商业环境的瞬息万变,决策者需要更快更准的捕获商机。从存有大量历史数据的数据仓库中挖掘有价值的信息,对企业的运营及策略调整起着至关重要的作用。OLAP是决策支持的重要方法,在OLAP系统中,What-if分析是基于历史数据对假设场景进行分析的一类OLAP技术,它在决策者对多种方案进行预测和评估中扮演重要角色。基于Delta表存储是实现what-if分析的通用解决方案,其面临的主要难题是如何快速实现what-if更新和高效地执行OLAP查询。随着大规模并行处理数据仓库的发展,可提供高效的并行查询处理及强大的数据分析能力;同时,云计算具有高扩展性、计算能力强、资源整合、高容错性、处理海量数据以及低成本等特点。本文利用大规模并行数据处理和云计算的优势解决基于delta表存储的what-if分析的性能问题具有重要的意义。本文的主要工作包括:(1)设计与实现基于delta表的what-if分析云服务。首先,采用Proxmox VE构建轻量级云平台、大规模并行处理数据仓库Greenplum存储数据,为what-if分析提供环境支撑;其次,提供基于Mondrian的what-if分析引擎;最后,实现基于Docker的what-if分析云服务。(2)设计两种方案对基于分布式计算的what-if分析并行处理进行性能测试,然后针对OLAP查询中耗时较长的分布式聚集函数,提出并行执行策略;(3)分析基于delta表的what-if分析查询性能瓶颈,并在what-if更新阶段,提出基于bloom filter优化算法,实验结果表明bloom filter算法生成what-if视图比传统的表连接算法性能提高约32%;在OLAP查询阶段,设计并实现基于Redis的查询缓存算法WFQC,与传统的物化视图机制相比,基于Redis查询缓存的OLAP查询性能提升2倍。