论文部分内容阅读
ETL工具负责从分布的、异构数据源中抽取数据并对其进行清洗和转换,最后装载到数据集市或数据仓库中,是数据挖掘和联机分析处理的基础。ETL工具通常提供了一些常用的基本操作,但是由于ETL应用场景多样、操作逻辑复杂,这些通用操作往往并不能满足用户的需求,这就要求ETL工具必须具有一定的可扩展性,以满足各种特殊需求。同时,在大数据时代,ETL工具通过整合云计算技术以处理海量数据。传统ETL工具通过集成并行ETL工具Hive和Pig的方式来弥补大数据处理方面的不足,但是存在商用工具价格高昂而开源工具集成度不够的问题,因此,较好地集成Hive和Pig以实现功能的扩展非常重要。另一方面,ETL流程作为一个逻辑计划,在解析成物理计划的过程中需要根据优化规则进行一系列的优化,而优化规则并不是一成不变的,在ETL工具的使用过程中,新的优化规则会被总结出来,因此,还需要使优化规则具有较高的可扩展性。本文开发基于Hadoop的、B/S模式的并行ETL工具,并研究如何实现对并行ETL工具进行扩展,完成了如下几项主要工作:通过分析MapReduce并行计算框架的实现细节,设计实现了两种方案来向现有工具中嵌入定制的MapReduce代码以完成功能扩展从而可以处理复杂的需求。通过分析总结Hive和Pig脚本语言的语法特点,结合实际应用需求,选取了一整套基本操作,并针对性地将基本操作设计为功能组件,然后通过分析基本操作间的依赖关系设计和实现了流程解析模块,解析出来的脚本拥有和手工编写的脚本一样的逻辑。这种集成方式扩展了并行ETL的功能,同时保证了系统能够提供一个统一的图形用户界面。通过分析开源ETL工具Hive和Pig的优化规则实现机制,设计实现了自己的优化规则实现机制。实现上是通过将规则需要匹配的样式和对应的操作关联起来,将规则的匹配机制和计划的游走机制进行隔离和抽象。基于这种设计方式,可以很方便地扩展优化规则。