论文部分内容阅读
现代社会的信息量日益增加,众多企业为了能更好地应对大数据时代商业环境的变化,需要建立数据仓库,对已有的业务数据及外部数据进行及时处理分析,从中发掘具有价值的商业信息,方便企业决策者快速正确地做出经营决策。在数据仓库中,ETL过程占了70%以上的工作量,所以对ETL的研究与优化具有重要的意义。随着大数据时代的到来,数据呈爆炸式增长,传统的ETL面临巨大的挑战,不仅价格昂贵而且采用集中式架构,处理效率低下。为了提高海量数据的处理效率,基于MapReduce框架的分布式ETL在企业中广泛应用。Map Reduce框架具有高扩展性,高容错性等优点,并采用并行方式处理数据,操作简单,能大大提高数据处理效率。ETL数据处理主要是事实数据的处理和维度数据的处理,其中,维度数据是数据分析的重要组成部分。而维度数据中的渐变维度数据较为复杂,本文运用大数据分布式ETL处理技术和Map Reduce作业调度算法知识,重点研究了在分布式ETL中的维度数据并行处理优化以及MapReduce作业调度的优化。本文的主要研究内容以及实现的工作如下:(1)研究了分布式ETL技术和Map Reduce作业调度算法的现状,阐述了本文研究的意义。对MapReduce编程模型、分布式ETL技术、数据分割策略、渐变维度数据更新策略以及MapReduce作业调度算法进行了深入的研究与分析。(2)渐变维度数据并行处理研究。针对渐变维度数据在map/reduce处理过程中产生的大量网络传输开销,提出了MOAP(Map-only and Partition)算法。将reduce任务本地化操作,具有相同业务键的数据被放在同一个计算节点进行计算。为了方便后续增量数据的处理,处理完的数据依然按照业务键值分区存放。实验以Type-1和Type-2渐变维度数据为实验对象,分别比较了在初始化时和进行增量加载两种情况下,Type-1和Type-2这两类渐变维度数据使用MOAP算法和不使用MOAP算法处理时所需要的时间。实验结果表明,使用该算法时,由于减少了网络传输开销,处理这两类渐变维度数据时时间明显减少,ETL的执行效率也得到了提高。(3)reduce任务调度算法研究。针对小作业的reduce任务饥饿问题以及资源利用率低问题,提出了SBOTA算法,在已有的公平调度器中嵌入SBOTA算法,对大任务和小任务采取交替调度策略。实验中,将使用公平调度算法和使用SBOTA调度算法进行比较,发现本文提出的SBOTA算法不仅减少了大任务和小任务的处理时间,也提高了CPU和内存资源的利用率。(4)基于MapReduce的分布式ETL的应用。针对已有的数据分析决策系统的缺点,设计了新的数据分析决策系统,对系统架构,事实表及维度表进行了分析介绍,并将本文提出的算法应用到新的数据分析决策系统,加快了中间数据的处理。