论文部分内容阅读
摘 要:ETL是数据仓库解决方案的主要功能,组件分布和互操作性方面的不足被视为是ETL当前面临的主要问题,因为ETL组件以紧耦合方式存在ETL框架里。通过分布提取、转换和加载组件以实现松耦合展开探讨,互操作性是如何应用于这些分布式ETL组件,面向服务的架构(SOA)可通过重构当前的ETL框架来解决分布和互操作性不足的问题,使用SOA标准来重构ETL过程。最后,对ETL框架的分布式互操作组件进行实验检测。
关键词:ETL 分布 互操作性 面向服务的架构 紧耦合 松耦合
中图分类号:TP311.5 文献标识码:A 文章编号:1007-3973(2013)004-072-03
1 引言
提取、转换和加载过程除了在数据仓库解决方案中起关键作用,还是成功的数据仓库项目的核心组件。它们对多元异构数据进行物理集成后将其存储在一个名为数据仓库的中央资料库里。出于对其重要性和费用高的考虑,先后有许多项目进行过相关研究希望能改进ETL框架。在过去的几年里,大多数这些项目都只关注实时数据仓库方法,以解决提取、转换和加载的周期性问题。但相关研究工作仍较有限,不足以弥补ETL组件分布和互操作性方面的缺陷,导致这样一种尴尬局面的原因是此前所有的研究只从ETL作为紧耦合软件架构而非松耦合组件的研究角度。
数据仓库从位于不同空间隔离位置的数据源中获取数据。各数据源有时需要一个完整的ETL工具来执行提取过程。若该提取是在数据源位置进行,则需要在每个数据源位置安装一个ETL工具,它的所有功能充当一个紧耦合软件。这里,转换和加载功能是多余的,因为数据源位置只要求执行提取过程,而这两个多余的功能只会在数据仓库目的地才“派上用场”。因此,对于一个数据仓库项目,如果使用推举法来从数据源中提取数据,那么,各数据源得配有一个对应的ETL授权。而且,不管任何时候只要有新的数据源纳入数据仓库项目,授权数就会增加,这同时也增加了任何数据仓库项目的费用。若ETL组件分布并安装在应用服务器上,任何数据源管理员均可远程使用相同的提取组件来推动数据过渡到ETL的转换阶段。对新数据源的使用而言,这无疑是一个经济型的选择。
为了从众多不同数据源中提取数据而对许多的ETL工具进行管理,需要有额外的管理和维修工作的支持,因为管理员经常调动,从一处到另一处。相比之下,如果将ETL组件分布到可互操作组件上并安装在应用服务器上充当web服务,这些组件的管理工作对项目的所有ETL管理员而言就显得较集中和规范。
而且,有时鉴于复杂性、可用ETL工具学习曲线长以及实现附加功能的扩展性有难度等缘故,许多单位组织宁可采用内部开发方式来执行ETL任务,以节约项目时间和人力。
所以说,将ETL组件分布到互操作且松耦合组件上对解决复杂性问题起着关键作用。基于ETL框架的一些问题,可以通过将组件分布与互操作性增加到当前的ETL框架来解决紧耦合ETL框架面临的问题,这方面可以采用SOA架构,它可通过重构当前的ETL框架来解决分布和互操作性方面的缺陷问题。
2 当前的ETL框架
根据研究,传统的ETL框架具有紧耦合功能。这些功能,相关概念以及它们之间的相互关系在图1的框架中一一体现出来。
图1 传统的ETL框架
在数据层,所描述的是整个过程使用到的存储数据。左边是原始数据提供者,主要涉及关联数据库和文件。通过提取历程从这些数据源提取数据(如图1的左上部分)。然后,这些数据分布到数据集结区(DSA),在这里进行转换和清理后加载到数据仓库。数据仓库储存库见图1的右侧,由目标数据源构成。最后,借助于图1右上方的加载历程将数据加载到中央仓库。
3 带分布式互操作组件的ETL框架
这一节介绍增强型ETL框架的设计过程。图2是一个基于SOA架构的新框架。在数据层,存储数据与传统框架里的数据完全相同。新框架的业务层也是基于SOA架构创建的,包含四个主要部分:
(1)服务编制点(也称目录服务中心或服务注册中心)。
涉及提取、转换和加载域可提供的服务项目,统称为编制点的服务提供者和注册中心。
图2 一个分布式ETL成分的互操作框架
(2)服务提供者。
每个服务提供者即一个组件,针对客户要求执行响应。新框架带三个服务提供者即提取、转换和加载服务提供者。
(3)服务消费者。
每个服务消费者也即一个组件,消费服务提供者提供的结果。框架的主要服务消费者是客户,代表的是ETL管理员。同时,上述三个服务提供者也可以是其它服务的服务消费者。如,转换服务可以向提取服务发出一些功能要求,只要提取和转换过程是在一个区域内进行。
(4)服务界面。
服务界面定义了上述三种服务的编程访问,并建立起服务的身份以及服务调用的规则。服务提供者与消费者之间的关系是动态的,运行时通过编制点的一个约束机制确立。这种动态的约束关系使得服务消费者与提供者之间的依赖程度尽可能最低,从而在事实上支持了新的ETL框架的松耦合功能。
换言之就是,提取、转换和加载功能是通过将它们分布到互操作的web服务里面来实现松耦合的。编制点囊括了各项服务方面的信息(如界面)。客户可通过查询编制点来发掘服务。查找到所需的ETL服务后,客户与分布的任意ETL服务继续直接进行远程通信。实际上,客户是服务消费者,ETL服务是提供者。当然,这一项ETL服务还可以是另一项ETL服务的消费者,利用编制点它可以发现该项服务的可用性。
图3给出的简易流程图向我们清晰展示了客户要求执行一项ETL功能时的动作流程。当客户要求消费(即执行)一项具体的ETL服务时,编制点开始"接收"活动,从中检索客户的请求。然后,通过调用合适的ETL服务继续这项工作,最后回馈给客户以结束工作。 一个编制点进程(也可以是一项web服务)通常与一个或多个ETL web服务交互作用。我们称这些ETL web服务为伙伴服务或外部服务。
4 分析与结论
根据重构的框架设计出一个原型,通过它,可以对传统ETL框架与文中新构建的框架进行比较。结果表明新框架具有诸多优点,概括如下:
(1)互操作性。
客户(即ETL管理员)与松耦合ETL服务之间的交互作用具有广泛的互操作性。这就要求不论在什么操作平台环境下,客户与服务都能相互通信、相互理解。这个目标得以实现是因为客户与ETL服务彼此之间形成了一种标准的通信方式。另外,互操作性为ETL框架组件在各平台、系统和语言之间保持一致。
(2)灵活性。
ETL框架的松耦合服务较紧耦合的明显灵活多变。在传统框架里,ETL组件是紧密耦合的,共享语义、资料库且还经常共享状态,这使得组件的应用难以“与时俱进”满足不断变化的业务需求。松耦合服务基于文档且具有异步性,便于组件灵活应用,且易于不断改进满足变化要求。因此,新的ETL框架可以有其它组件,而不至于显得复杂。基于上述新增特性,未来还可以对这种新框架进行扩展,不断添加新组件以满足企业新的业务需求。
(3)可再用性。
采用新的ETL框架时,数据仓库行业的ETL开发人员可再利用任何其它ETL提供商所开发的现有ETL组件的代码来满足新ETL业务需求,这就便于对企业内、外部已有功能进行再利用,而不必重新开发这方面的代码,从而大大节约了开发成本和时间。
(4)可扩展性。
既然新的ETL框架服务是松耦合,我们就很容易对采用这种框架标准的应用程序进行功能扩展,至少较那些紧耦合框架的应用程序要容易。可扩展性能得以实现是因为请求应用程序与其使用的服务之间的依赖程度较低,这就使得该项服务能处理更多请求,因为它不像紧耦合组件,需要考虑通信费用巨大这个问题。
(5)经济有效。
基于SOA架构的ETL框架能提供更经济实惠的解决方案,因为客户与服务的整合既免去了繁琐的分析工作,也不必定制个性化解决方案。再者,由于增强型框架方面的服务是松耦合,使用这些服务的应用程序的维护成本较定制解决方案的更低,且便于扩展。故我们可以得出基于SOA架构的新型ETL框架能很好地解决紧耦合ETL框架目前面临的问题,更适合以松耦合方式来执行ETL过程。
参考文献:
[1]D.Salter and F.Jennings.Building SOA-Based CompositeApplications Using NetBeans IDE,2008:101-108.
[2]X.Zhou,B.Liu,Y. Wang, R.Zhang,P.Li,S.Chen,Yufeng,Guo,Z.Gao,and H.Zhang.Building Clinical Data Warehouse forTraditional Chinese Medicine Knowledge Discovery.International Conference on BioMedical Engineering and Informatics,IEEE,2008:56-62.
[3]T.J rg and S.Deloch.Towards Generating ETL Processes for Incremental Loading.ACM,2008:12-19.
[4]R. Abrahiem.A New Generation of Middleware Solutions for aNear-Real-Time Data Warehousing Architecture.IEEE,2007:45-49.
[5]P. Vassiliadis, A. Simitisis, and S. Skiadopoulos.Conceptualmodeling for ETL processes.ACM,2002:89-94.
[6]P. Vassiliadis, A. Simitsis, M. Terrovitis, and S. Skiadopoulos.Blueprints and measures for ETL workflows.Lecture notes incomputer science,2005:385-392.
[7]E. Newcomer and G.Lomow.Understanding SOA with WebServices (Independent Technology Guides): Addison-Wesley Professional,2004:122-129.
[8]T. Hau,N. Ebert,A.Hochstein, and W.Brenner.Where to Startwith SOA Criteria for Selecting SOA Projects.Proceedings of the41st Hawaii International Conference on System Sciences,IEEE,2008:678-684.
[9]A. D. Kshemkalyani and M.Singhal, Distributed Computing Principles, Algorithms,and Systems,2008:234-241.
关键词:ETL 分布 互操作性 面向服务的架构 紧耦合 松耦合
中图分类号:TP311.5 文献标识码:A 文章编号:1007-3973(2013)004-072-03
1 引言
提取、转换和加载过程除了在数据仓库解决方案中起关键作用,还是成功的数据仓库项目的核心组件。它们对多元异构数据进行物理集成后将其存储在一个名为数据仓库的中央资料库里。出于对其重要性和费用高的考虑,先后有许多项目进行过相关研究希望能改进ETL框架。在过去的几年里,大多数这些项目都只关注实时数据仓库方法,以解决提取、转换和加载的周期性问题。但相关研究工作仍较有限,不足以弥补ETL组件分布和互操作性方面的缺陷,导致这样一种尴尬局面的原因是此前所有的研究只从ETL作为紧耦合软件架构而非松耦合组件的研究角度。
数据仓库从位于不同空间隔离位置的数据源中获取数据。各数据源有时需要一个完整的ETL工具来执行提取过程。若该提取是在数据源位置进行,则需要在每个数据源位置安装一个ETL工具,它的所有功能充当一个紧耦合软件。这里,转换和加载功能是多余的,因为数据源位置只要求执行提取过程,而这两个多余的功能只会在数据仓库目的地才“派上用场”。因此,对于一个数据仓库项目,如果使用推举法来从数据源中提取数据,那么,各数据源得配有一个对应的ETL授权。而且,不管任何时候只要有新的数据源纳入数据仓库项目,授权数就会增加,这同时也增加了任何数据仓库项目的费用。若ETL组件分布并安装在应用服务器上,任何数据源管理员均可远程使用相同的提取组件来推动数据过渡到ETL的转换阶段。对新数据源的使用而言,这无疑是一个经济型的选择。
为了从众多不同数据源中提取数据而对许多的ETL工具进行管理,需要有额外的管理和维修工作的支持,因为管理员经常调动,从一处到另一处。相比之下,如果将ETL组件分布到可互操作组件上并安装在应用服务器上充当web服务,这些组件的管理工作对项目的所有ETL管理员而言就显得较集中和规范。
而且,有时鉴于复杂性、可用ETL工具学习曲线长以及实现附加功能的扩展性有难度等缘故,许多单位组织宁可采用内部开发方式来执行ETL任务,以节约项目时间和人力。
所以说,将ETL组件分布到互操作且松耦合组件上对解决复杂性问题起着关键作用。基于ETL框架的一些问题,可以通过将组件分布与互操作性增加到当前的ETL框架来解决紧耦合ETL框架面临的问题,这方面可以采用SOA架构,它可通过重构当前的ETL框架来解决分布和互操作性方面的缺陷问题。
2 当前的ETL框架
根据研究,传统的ETL框架具有紧耦合功能。这些功能,相关概念以及它们之间的相互关系在图1的框架中一一体现出来。
图1 传统的ETL框架
在数据层,所描述的是整个过程使用到的存储数据。左边是原始数据提供者,主要涉及关联数据库和文件。通过提取历程从这些数据源提取数据(如图1的左上部分)。然后,这些数据分布到数据集结区(DSA),在这里进行转换和清理后加载到数据仓库。数据仓库储存库见图1的右侧,由目标数据源构成。最后,借助于图1右上方的加载历程将数据加载到中央仓库。
3 带分布式互操作组件的ETL框架
这一节介绍增强型ETL框架的设计过程。图2是一个基于SOA架构的新框架。在数据层,存储数据与传统框架里的数据完全相同。新框架的业务层也是基于SOA架构创建的,包含四个主要部分:
(1)服务编制点(也称目录服务中心或服务注册中心)。
涉及提取、转换和加载域可提供的服务项目,统称为编制点的服务提供者和注册中心。
图2 一个分布式ETL成分的互操作框架
(2)服务提供者。
每个服务提供者即一个组件,针对客户要求执行响应。新框架带三个服务提供者即提取、转换和加载服务提供者。
(3)服务消费者。
每个服务消费者也即一个组件,消费服务提供者提供的结果。框架的主要服务消费者是客户,代表的是ETL管理员。同时,上述三个服务提供者也可以是其它服务的服务消费者。如,转换服务可以向提取服务发出一些功能要求,只要提取和转换过程是在一个区域内进行。
(4)服务界面。
服务界面定义了上述三种服务的编程访问,并建立起服务的身份以及服务调用的规则。服务提供者与消费者之间的关系是动态的,运行时通过编制点的一个约束机制确立。这种动态的约束关系使得服务消费者与提供者之间的依赖程度尽可能最低,从而在事实上支持了新的ETL框架的松耦合功能。
换言之就是,提取、转换和加载功能是通过将它们分布到互操作的web服务里面来实现松耦合的。编制点囊括了各项服务方面的信息(如界面)。客户可通过查询编制点来发掘服务。查找到所需的ETL服务后,客户与分布的任意ETL服务继续直接进行远程通信。实际上,客户是服务消费者,ETL服务是提供者。当然,这一项ETL服务还可以是另一项ETL服务的消费者,利用编制点它可以发现该项服务的可用性。
图3给出的简易流程图向我们清晰展示了客户要求执行一项ETL功能时的动作流程。当客户要求消费(即执行)一项具体的ETL服务时,编制点开始"接收"活动,从中检索客户的请求。然后,通过调用合适的ETL服务继续这项工作,最后回馈给客户以结束工作。 一个编制点进程(也可以是一项web服务)通常与一个或多个ETL web服务交互作用。我们称这些ETL web服务为伙伴服务或外部服务。
4 分析与结论
根据重构的框架设计出一个原型,通过它,可以对传统ETL框架与文中新构建的框架进行比较。结果表明新框架具有诸多优点,概括如下:
(1)互操作性。
客户(即ETL管理员)与松耦合ETL服务之间的交互作用具有广泛的互操作性。这就要求不论在什么操作平台环境下,客户与服务都能相互通信、相互理解。这个目标得以实现是因为客户与ETL服务彼此之间形成了一种标准的通信方式。另外,互操作性为ETL框架组件在各平台、系统和语言之间保持一致。
(2)灵活性。
ETL框架的松耦合服务较紧耦合的明显灵活多变。在传统框架里,ETL组件是紧密耦合的,共享语义、资料库且还经常共享状态,这使得组件的应用难以“与时俱进”满足不断变化的业务需求。松耦合服务基于文档且具有异步性,便于组件灵活应用,且易于不断改进满足变化要求。因此,新的ETL框架可以有其它组件,而不至于显得复杂。基于上述新增特性,未来还可以对这种新框架进行扩展,不断添加新组件以满足企业新的业务需求。
(3)可再用性。
采用新的ETL框架时,数据仓库行业的ETL开发人员可再利用任何其它ETL提供商所开发的现有ETL组件的代码来满足新ETL业务需求,这就便于对企业内、外部已有功能进行再利用,而不必重新开发这方面的代码,从而大大节约了开发成本和时间。
(4)可扩展性。
既然新的ETL框架服务是松耦合,我们就很容易对采用这种框架标准的应用程序进行功能扩展,至少较那些紧耦合框架的应用程序要容易。可扩展性能得以实现是因为请求应用程序与其使用的服务之间的依赖程度较低,这就使得该项服务能处理更多请求,因为它不像紧耦合组件,需要考虑通信费用巨大这个问题。
(5)经济有效。
基于SOA架构的ETL框架能提供更经济实惠的解决方案,因为客户与服务的整合既免去了繁琐的分析工作,也不必定制个性化解决方案。再者,由于增强型框架方面的服务是松耦合,使用这些服务的应用程序的维护成本较定制解决方案的更低,且便于扩展。故我们可以得出基于SOA架构的新型ETL框架能很好地解决紧耦合ETL框架目前面临的问题,更适合以松耦合方式来执行ETL过程。
参考文献:
[1]D.Salter and F.Jennings.Building SOA-Based CompositeApplications Using NetBeans IDE,2008:101-108.
[2]X.Zhou,B.Liu,Y. Wang, R.Zhang,P.Li,S.Chen,Yufeng,Guo,Z.Gao,and H.Zhang.Building Clinical Data Warehouse forTraditional Chinese Medicine Knowledge Discovery.International Conference on BioMedical Engineering and Informatics,IEEE,2008:56-62.
[3]T.J rg and S.Deloch.Towards Generating ETL Processes for Incremental Loading.ACM,2008:12-19.
[4]R. Abrahiem.A New Generation of Middleware Solutions for aNear-Real-Time Data Warehousing Architecture.IEEE,2007:45-49.
[5]P. Vassiliadis, A. Simitisis, and S. Skiadopoulos.Conceptualmodeling for ETL processes.ACM,2002:89-94.
[6]P. Vassiliadis, A. Simitsis, M. Terrovitis, and S. Skiadopoulos.Blueprints and measures for ETL workflows.Lecture notes incomputer science,2005:385-392.
[7]E. Newcomer and G.Lomow.Understanding SOA with WebServices (Independent Technology Guides): Addison-Wesley Professional,2004:122-129.
[8]T. Hau,N. Ebert,A.Hochstein, and W.Brenner.Where to Startwith SOA Criteria for Selecting SOA Projects.Proceedings of the41st Hawaii International Conference on System Sciences,IEEE,2008:678-684.
[9]A. D. Kshemkalyani and M.Singhal, Distributed Computing Principles, Algorithms,and Systems,2008:234-241.