在前面谈ESB服务设计器和轻量的ESB服务编排的时候可以看到,在和数据库适配相关层面,我们重点只在解决一类问题,通过数据库适配的方式来发布一个查询服务或导入服务。对于查询服务具体转化为对数据库的Select操作,而对于导入服务则转化为对数据库的Insert操作。
即ESB的服务设计或轻量编码,数据库端是后端适配,最终目的是查询或导入数据,最终则发布一个服务。
我今天谈面向服务的ETL集成,和原来谈的数据库适配和服务发布最大的区别就在于数据库适配仍然存在,但是在服务编排过程中不产生新的服务,而是产生一个类似定时调度的任务,这是和前面场景最大区别。对于这种模式我们举例来进行说明。
场景一:定时调用某个查询服务获取增量数据,同时将增量数据插入到某个数据库表
在该场景下可以看到,我们需要形成一个定时调度任务,输入增量查询条件对查询服务自动触发调用,在调用完成后获取到增量数据后,再通过数据库适配,将数据写入到某个数据库表中。在整个过程中实际上有三个重点,一个是触发服务调用,一个是数据转换映射,一个是数据库适配。
场景二:定时调用某个ETL查询操作,获取到数据集,再去触发对某个导入服务的调用导入数据
这个场景刚好是场景一的逆向场景,即定时调度任务首先是通过数据库适配获取到数据集,但是在获取到数据集后不是将其发布为服务,而是直接去调用另外一个外部导入服务,将数据推送到这个导入服务里面。当然也可以是将数据推送到某个JMS消息管道中。
场景三:定时调用ETL操作获取数据,再调用服务返回数据,再调用ETL操作将返回结果导入数据库表
这场景实际上对接的两个系统,一个提供服务,一个提供DbLink连接的对接场景。首先是通过ETL获取数据,然后调用导入服务推送数据,同时将导入服务调用的结果信息再次调用ETL操作将返回结果插入到数据库。
场景四:先调用查询服务获取数据,再调用ETL操作插入库表,如果存在异常调用服务写入异常信息
这种场景实际也是服务和ETL之间的一个组合,即先调用查询服务获取增量数据,然后调用数据库适配将增量数据写入到数据库表,如果在写入过程中出现异常,则将调用异常信息导入服务将异常信息返回。
对于原来我们经常谈到的类似ODI模式的WS+ETL的集成,本身没有变化,即将一个数据库的ETL操作发布一个WS服务,通过调用查询服务来输入查询条件,通过基于查询条件获取数据并ETL操作到目标数据库,然后再返回具体的输出结果。这种WS和ETL集合的模式,由于大数据量的ETL没走ESB总线,因此能够获得更好的性能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法分析(C++版)(第3版)
Clifford A. Shaffer / 张铭、刘晓丹、等译 / 电子工业出版社 / 2013 / 59.00元
本书采用当前流行的面向对象的C++程序设计语言来描述数据结构和算法, 因为C++语言是程序员最广泛使用的语言。因此, 程序员可以把本书中的许多算法直接应用于将来的实际项目中。尽管数据结构和算法在设计本质上还是很底层的东西, 并不像大型软件工程项目开发那样, 对面向对象方法具有直接的依赖性, 因此有人会认为并不需要采用高层次的面向对象技术来描述底层算法。 但是采用C++语言能更好地体现抽象数据类型的......一起来看看 《数据结构与算法分析(C++版)(第3版)》 这本书的介绍吧!