开源ESB-Talend产品研究

标签: IT咨询 | 发表时间:2016-03-16 16:47 | 作者:人月神话
出处:http://blog.sina.com.cn/cmmi
对于ETL部分要注意,当前用的更多的是ELT,其最大的差别就在于首先是将源数据库中的数据抽取到目标数据库中,然后再在目标数据库中进行相应的数据映射和转换等操作,刚方法比传统的ELT在性能方面有明显的优势。在Oracle ODI产品里面当前即用的ELT方式,在Talend产品里面可以看到这部分也是通过ELT方式来实现,但是在ESB产品里面可以看到,对于ELT方式的数据集成提供的相应组件并不多,要实现负责的数据转换和处理往往并不容易。

数据集成的重点是实现源数据库和目标数据库之间的数据传递,同样的目标表操作有两种方式,一种是对目标表进行全部truncate操作,然后再进行批量插入,还有就是根据主键对目标表进行插入或更新操作。这两种方式下性能有巨大差别,一般情况是至少有10倍以上的性能差异。因此对于数据集成建议更多的还是采用先清空目标数据库表,然后再批量进行插入的方式进行。

对于Talend-ESB的数据库组件部分,可以看到对于Oracle,Sql Server和Mysql等常见主流数据库都有专门的数据库组件进行处理。组件本身也可以对数据库表的Schema信息自动发现和获取,如果源和目标的数据传递中间没有任何数据变化和映射,则可以连Map组件都不增加。经过实际测试情况发现,增加Map组件节点不会对性能有较大的影响。

在Mysql组件设计中提供了MySqlBulk和MySqlBulkExec组件,这是对数据进行批处理和导入的重要组件。使用了是Mysql原生的数据导入接口。经过测试10个字段100万条数据,导出文件在180M左右的大小,如果用传统的MysqlOutput组件情况下需要运行25秒左右完成数据导入,而如果采用MySqlBulk组件则只需要11秒左右即完成,如果数据量更大的话采用MySqlBulk组件优势会更加明显。

这也给我们对于异构数据库的集成提供了一个重要的方法,即首先导出txt文本文件,然后还可以对txt文件进行压缩传递,完成后再通过BulkExec进行批量数据装载,只有这种方法往往能获取最大的性能。但是这种方法本身缺点也必将明细,即不能再数据集成过程中做复杂的映射转换和逻辑处理。

在Talend-ESB的Integration集成组件中暂时没有找到Timer定时器组件,但是在Mediation集成模式下有Timer组件,因此对于定时调度类任务变通的处理方法即是在Mediation中设计Route,在Route中添加Timer组件和TalendJob组件,即Route在实际部署运行后可以调用到Integration模式下设计的Job。对于这种Route在打包的时候也可以看到会自动打包对应的Job相关组件和代码,而实际我们在ESB服务端部署后,在Bundle里面是可以看到两个组件,一个是Route组件,一个是Talend Job组件。

对于ELT组件,在测试访问远程的Mysql数据库获取数据并导入本地Mysql库的时候,虽然组件可以成功运行,但是最终显示插入的数据为0条,由于没有明确的错误日志信息,该问题暂时还没有找到原因解决。通过tRowGenerator组件可以很方便的批量模拟生成大量的数据插入到数据库中,这对于我们需要进行大数据量的数据集成测试前期准备工作相对方便。

对于Talend-ESB本身自带的对于大数据集成能力比较弱,如果需要大数据方面的集成,可以下载专门的Talend-BigData版本,该产品可以支撑目前大部分的大数据采集和集成操作。但是从实际的产品对比可以看到,对于社区版缺少的功能仍然较多。

在商用集成包里面,Talend附带有医疗行业的HL7标准组件,该组件需要自己手工安装相关的Jar包,但是安装完成后输入符合HL7标准的消息文本进行测试,没有测试通过,具体问题待查。

在Talend-ESB中,对于Http Rest服务接口的集成也提供了强大的可视化设计和映射能力。对于常见的几种常见,包括Http+DB Query,Http+DB Insert,Http Proxy等都已经测试通过。在设计过程中也可以到,Talend对于Json格式数据的可视化设计,Json数据格式和xml间的转换和映射等都支持的相当好。

 

相关 [开源 esb talend] 推荐:

开源ESB-Talend产品研究

- - 人月神话的BLOG
对于ETL部分要注意,当前用的更多的是ELT,其最大的差别就在于首先是将源数据库中的数据抽取到目标数据库中,然后再在目标数据库中进行相应的数据映射和转换等操作,刚方法比传统的ELT在性能方面有明显的优势. 在Oracle ODI产品里面当前即用的ELT方式,在Talend产品里面可以看到这部分也是通过ELT方式来实现,但是在ESB产品里面可以看到,对于ELT方式的数据集成提供的相应组件并不多,要实现负责的数据转换和处理往往并不容易.

文章: Mule ESB 3.3与CloudHub

- - InfoQ cn
MuleSoft最近发布了企业服务总线(ESB)产品Mule ESB 3.3. 在新版本中,除了应用程序集成之外,Mule ESB还拥有了数据集成功能;从而为开发者提供了一个面向本地或云端应用的集成解决方案. 分享云计算在传统IDC、移动互联网、SaaS应用、PaaS平台等领域应用,阿里云开发者大会,免费报名中.

[SOA] Mule ESB Linux 部署

- - CSDN博客架构设计推荐文章
本文介绍如何在 Linux 上部署 Mule ESB. Mule 是一个以Java为核心的轻量级的消息框架和整合平台,基于EIP(Enterprise Integeration Patterns,由Hohpe和Woolf编写的一本书)而实现的. Mule的核心组件是UMO(Universal Message Objects,从Mule2.0开始UMO这一概念已经被组件Componse所代替),UMO实现整合逻辑.

集成ESB实现SOA

- - 企业架构 - ITeye博客
  服务消费者,服务提供者, 服务注册中心(UDDI模型). 由于UDDI模型过于复杂,而服务提供者与消费者点对点的进行协作依赖性大大增强,因此产生演变.    服务代理 -- ESB.    基于ESB总线,使得服务请求者统一入口,而ESB管理服务,使得耦合降低,由ESB来应对提供者提供的服务的改变而服务请求者不需要进行任何的修改.

谈ESB服务总线改进

- - 人月神话的BLOG
对于消息中间件部分进行单独剥离,即讲服务设计和ESB协议转换和适配部分同消息中间件分离,对于消息中间件部分初步考虑采用RabbitMQ或zeroMQ来实现,其中zeroMQ由于用c语言实现,相当来说更加轻量和高性能. 但是RabbitMQ本身更适合做一个企业级的消息系统,其在集群,持久化,高可用性和分布式可扩展性方面往往更加有优势.

ESB总线和能力开放平台

- - 人月神话的BLOG
上图是ESB企业服务总线和互联网Open API能力开放平台的一个简单对比. 对于在企业内部的服务集成和管控,由于需要面对企业内复杂的业务系统间集成和遗留系统适配,因此使用较多的仍然是ESB企业服务总线. 而对于互联网应用,更多考虑的是轻量和高性能,已经开发和接入的效率,当前使用较多的是类似Open API方式下的能力开放平台.

使用Mule Studio开发ESB应用 - Hello World

- - CSDN博客推荐文章
本文介绍如何使用Mule Studio开发一个简单的"Hello World"ESB应用. 第1步 - 下载和安装Mule Studio. 从 www.mulesoft.org下载Mule ESB Community Edition的发布包. 无需安装, 解压至本地硬盘即可使用. 第2步 - 启动Mule Studio.

[SOA] Mule ESB 3.x 入门(一)—— 消息流

- - CSDN博客架构设计推荐文章
关于Mule ESB,简单来说Mule接受一个消息,按照某种顺序处理这个消息,这样的处理可导致多种结果. 有时,Mule改变或变换消息返回到原来的消息来源(request-response). 或者,在其原有的基础上改变形式发送到一个或多个第三方(router, transfer). 而在其他一些情况下,如果消息没有达到的具体要求,Mule可以拒绝处理的消息validation, throttling).

再谈SOA和ESB总线平台价值

- - 人月神话的BLOG
关于SOA的咨询实施方法论,SOA平台和云平台的融合,SOA咨询方法论和EA企业架构思想的融合在前面很多文章都有谈到. 在多年的SOA咨询和实施中,经常遇到的一个问题就是SOA是不是已经过时了. 而这个问题追溯本源还是客户没有真正理解SOA咨询方法论,SOA组件化架构带来的好处,而是把SOA或ESB理解为了一个简单的接口平台或数据交换平台,如果一开始的思维方式或规划就是错误或偏差的,那么最终效果自然大打折扣.

Google开源LevelDB

- 酿泉 - Solidot
Google宣布在BSD许可证下开源其键值存储引擎LevelDB. LevelDB C++库可用于多种不同环境,如被浏览器用于存储最近访问的网页缓存,或者被操作系统使用去储存安装的软件包和依赖包清单,或被应用程序用于存储用户设置. Google称,即将发布的新版Chrome浏览器,就包含了基于LevelDB的IndexedDB HTML5 API实现.