论文部分内容阅读
做为数据仓库的重要组成部分,ETL(Extraction Transformation Loading)贯穿于数据仓库的全过程,担负着整合数据的重要职责。本文分别从ETL的2个方面进行了深入的研究和优化。一方面,ETL数据质量的好坏直接关系到上层决策支持系统的分析结果,正确的数据才能产生正确的结果,因此如何保证ETL的数据质量是非常重要的。本文针对触发器增量数据抽取方法进行了分析,发现传统方法中对快照表的并发操作可能导致快照记录失效,从而不能如实反映出数据变化的历史,出现源与目标数据不一致的情况,影响了ETL的数据质量。文中以操作系统的同步模型为参考,通过向快照表增加锁字段的方式,对并发操作进行了同步,保证了快照记录的正确性,提高了触发器增量数据抽取下ETL的数据质量。另一方面,数据仓库要求ETL具备较高的执行效率以保证数据的时效性,同时ETL在适用性和开发方面需要足够灵活才能满足用户复杂多变的业务需求。通过对SEDA(Staged Event-Driven Architecture)架构和ETL过程的深入研究,本文提出了将ETL构建于SEDA之上的方案,对ETL过程进行了优化。首先,经过与多线程模式下的ETL进行对比,证明了SEDA ETL不仅在执行效率上与之相当,而且更提供了细粒度调优、支持数据优先级以及负载控制等手段,极大的提高了ETL的适用性。其次,SEDA ETL不再以一个完整的ETL业务流程做为基本执行单元,取而代之的是SEDA中的阶段。阶段的模块化将复杂的资源管控调度变得透明,使最终用户在进行二次开发时只需要关注业务实现,同时其可重用性也为快速构建ETL应用奠定了基础,从而缩短了企业进行ETL开发所需的周期,降低了开发的成本。