载入中…
公告栏:
当前位置: 中国商业智能网 >> CIO >> BI知识 >> 文章正文
基于可复用构件思想的ETL架构设计
作者:佚名    来源:本站原创    点击数:    时间:2010-7-12
【摘要】数据仓库的数据来源常包含着噪声数据、不完整数据、甚至是不一致的数据。为了得到高质量的数据,必须对抽取(Extract)出来的原始数据做一系列复杂转换(Transform)处理,最后装载(Load)到数据仓库中。这种从原始数据到数据仓库之间,对数据进行的操作称为 ETL过程,其工作量大约占系统的60%

数据仓库的数据来源常包含着噪声数据、不完整数据、甚至是不一致的数据。为了得到高质量的数据,必须对抽取(Extract)出来的原始数据做一系列复杂转换(Transform)处理,最后装载(Load)到数据仓库中。这种从原始数据到数据仓库之间,对数据进行的操作称为 ETL过程,其工作量大约占系统的60%,实现ETL过程的效率和质量很大程度上决定了数据仓库系统的构建效率和质量。目前研究ETL过程都是集中于个案的研究,强调ETL系统的可扩展性和灵活性,对于如何在类相似或相近的数据仓库项目中共享ETL过程的研究则很少,很大程度上阻碍了数据仓库项目建设效率的进一步提高。如何在一类相似或相近的数据仓库项目中发现其共同特征、知识和需求,使得ETL过程可以在这些数据仓库项目中被反复使用,大幅度提高实现ETL过程的效率,从而提高数据仓库构建的效率,研究该问题具有一定理论意义及实用价值。

基于此,这里研究了基于构件的思想,设计并实现了可重用的ETL架构,经北京银联、江苏银联、浙江银联筹10家银联省级分公司的数据仓库项目实际应用,表明该架构是有效的。

1  基于可复用构件思想的ETL架构设计

1.1  设计思想   

基于构件技术的软件复用提倡以已有的工作为基础,充分利用过去工作中积累的知识和经验,将已经辨识的具有相对独立功能的构件应用于新系统的开发,保证新系统开发的过程中,能够将重点集中于辨识和实现应用系统特有的构成成分,最终缩短系统开发周期,提高系统的质量。

基于构件技术的软件复用的核心思想包括如下几个方面:

(1)构件化设计。通过系统地分析一类相似或相近的数据仓库项目,识别出其共同特征和可变特征,并对这些特征进行抽象,形成领域分析模型,并据此进一步识别出可复用的构件。

(2)层次化设计。层次化设计可以提高系统的可扩展性和可维护性。通过层次化设计可以将所有识别的构件按一定的规则(如抽象级别、处理对象和处理的功能)分类管理,然后以分层的形式来组织,进而确定不同层构件之间的交互方式,保证每个构件的变化只涉及它的邻近两层的相关构件,实现系统一定程度上的开放性。

(3)接口化设计。不同层次的构件之间需要沟通,沟通需要规范,通过规范的接口可实现构件之间沟通的规范化。接口只制定规范,具体实现交由构件内部完成。接口化设计将构件的差异放到实现阶段,而不是在设计阶段,使得设计阶段可以致力于软件架构设计的完整性和复用性,使得不同系统之间处理的差异通过替换构件而无需变动架构就可得到解决。

1.2  ETL架构模型设计

基于可复用构件思想的ELT架构(如图1所示)主要分成基础服务层、抽取层、集成转换层、特殊处理层四个层次,每个层次的功能如下所述。

1.2.1  抽取层

抽取层构件位于ETL架构的最底层,直接面对数据源,完成数据抽取阶段的工作。鉴于数据仓库数据源差异性大的特点,这个层的ETL构件在不同数据仓库间差异很大,可重用程度总体上比较低。

1.2.2集成转换层

集成转换层构件主要将抽取层抽取的数据转换成格式规范、含义统一、质量良好的数据,并集成到数据仓库中。由于是在两个层接口构件之间,所以集成转换层构件的输入和输出都要满足层间接口构件的约定,在相似数据仓库项目之间的差异主要体现在业务处理规则上。集成转换层为每类数据对象提供一类ETL处理构件,同层构件之间相对独立,通过抽象各个相似数据仓库项目业务规则,将其封装在构件内,保证ETL架构在相似数据仓库之间移植时,只要通过配置业务规则,ETL构件即可投入使用。

1.2.3特殊处理层

为了保证后续功能开发者可以将注意力放在功能关注的指标上,而不要关心指标的具体口径,更不要担心指标口径变化和指标口径在相似数据仓库项目之间的差异对功能移植造成不利影响,在集成转换层构件处理的基础上,专门增加了特殊处理层,负责将数据仓库中按流水交易形式组织的数据换算成按KPI组织的形式。

1.2.4  基础服务层

为了给ETL提供一个相对稳定和灵活的架构,在元数据管理的构件识别的基础上引入了基础服务层,扩展了传统意义上的元数据管理的功能,包含元数据管理构件、层间接口构件、KPI自动测试构件三大类:这些构件构成了ETL基础和骨架,为系统的稳定性和适应性奠定了基础。

(1)元数据管理构件。元数据是关于数据的数据,元数据管理构件主要完成ETL子系统中元数据管理模块的功能,具体分成三小类,分别是负责维护数据仓库架构的维护类构件、负责维护业务规则的维护类构件和调度类构件。

(2)层间接口构件。为了在各个数据仓库项目之间平稳的移植ETL,在此设计了层间接口构件。从抽象层面上为各数据仓库项目提供一个相同的ETL处理框架,为ETL处理过程各层次的各种功能构件提供接口,实现构件具体处理过程对架构的透明化,为系统功能扩展留下了余地。

(3)KPI(关键绩效指标)自动测试构件。测试无疑是保证系统质量的一个重要方法,ETL也不例外,但是,ETL过程测试和一般的软件测试在测试过程、测试方法、评价标准等方面都有比较大的不同,它是一个非常繁琐、工作量巨大、有一定规律的过程。

从抽象层面上看,一类相似或相近的数据仓库项目每个KPI(关键绩效指标)的维度组合是相对固定的,测试标准和过程是一致的,所以,在ETL架构中,专门提供了KPI自动测试类构件,为每类KPI提供一个自动测试构件,其基本处理逻辑如图2所示。

该类构件能够快速发现ETL架构中集成层和转换层中相关构件数据处理过程中隐藏的问题,从而降低ETL过程测试的难度和工作量,大幅度提高ETL架构的效率和质量。

2银联统计分析系统ETL构件识别与架构设计

为了说明基于可重用构建思想的ETL架构的有效性,下面介绍该架构在多家银联统计分析系统中的实际应用。

责任编辑:朱莉   
 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    ChinaBI版权、投稿与免责申明:
    1)凡本网署名文字、图片和音视频稿件,版权均属中国商业智能网所有。任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明稿件来源:中国商业智能网,违者本网将依法追究责任。
    2)本网注明“本站来源处不写本站原创”的文章均为转载稿,本网转载出于传递更多信息之目的。如本网转载稿涉及版权等问题,请作者速来电或来函与本网联系。
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    最新热点
    娱乐资讯
    最新推荐
    网站合作、内容监督、商务咨询、投诉建议 电话:0512-62861389  邮箱:chianbi@126.com
    Copyright 2004-2014 中国商业智能网版权所有   |    苏 ICP 备 13004727 号