在前面谈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总线,因此能够获得更好的性能。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Sureness 集成 Jfinal - 面向 REST API 的高性能认证鉴权框架
- 面向Python,面向对象(基础)
- 面向Python,面向对象(基础3)
- Swift 中的面向协议编程:是否优于面向对象编程?
- <<深入PHP面向对象、模式与实践>>读书笔记:面向对象设计和过程式编程
- Python 面向对象
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
JavaScript Web应用开发
[阿根廷] Nicolas Bevacqua / 安道 / 人民邮电出版社 / 2015-9 / 59.00元
本书是面向一线开发人员的一本实用教程,对最新的Web开发技术与程序进行了全面的梳理和总结,为JavaScript开发人员提供了改进Web开发质量和开发流程的最新技术。本书主要分两大块,首先是以构建为目标实现JavaScript驱动开发,其次介绍如何管理应用设计过程中的复杂度,包括模块化、MVC、异步代码流、测试以及API设计原则。一起来看看 《JavaScript Web应用开发》 这本书的介绍吧!