1 开源数据汇集工具
1.1 Talend Open Studio
Talend Open Studio 是一个 ETL (Extract, Transform, and Load) 工具,可执行数据仓库到数据库之间的数据同步,提供基于 Eclipse RCP 的图形操作界面。
项目源码:http://talendforge.org/trac/tos
项目主页:
http://www.talend.com/products/talend-open-studio
1.2 Penthao Kettle
Kettle是一款国外开源的ETL工具,纯java编写,可以在Window、Linux、Unix上运行,数据抽取高效稳定。
Kettle 中文名称叫水壶,该项目的主程序员MATT 希望把各种数据放到一个壶里,然后以一种指定的格式流出。
Kettle这个ETL工具集,它允许你管理来自不同数据库的数据,通过提供一个图形化的用户环境来描述你想做什么,而不是你想怎么做。
Kettle中有两种脚本文件,transformation和job,transformation完成针对数据的基础转换,job则完成整个工作流的控制。作为Pentaho的一个重要组成部分,现在在国内项目应用上逐渐增多。
1.3 Clover
CloverETL 是一个基于Java的开源的ETL框架,同时还包含了一个 ETL设计器——CloverETL Designer。核心的算法就是一个数据流网络。
CloverETL支持大多数主流数据库系统,并且它是一个跨平台产品,支持Windows 系列,Linux系列,Unix系列操作系统,有很强的可移植性。
CloverETL目前最新稳定版是CloverETL3.0.1。官方也同时推有收费版和免费版。
收费版:桌面版(个人版),企业版,主要针对企业级大型开发;
免费版:社区版(有桌面版和基于eclipse的插件版,针对个人或小型开发),引擎版,针对开源化开发。
1.4 开源工具比较
这三款开源工具是目前使用最为广泛的,从年限上看,Kettle开始于2001年,Talend Open Studio开始于2006年,Clover开始于2009年。这三款工具都有开源版本和企业版本,企业版本可以提供一些额外的组件和咨询服务。从目前来看,这3框开源工具都可以满足我们的需求。
Talend: 基于Eclipse,具有很好的扩展性、稳定性以及可定制化(可以自己开发eclipse插件),并且服从Eclipse标准(如文件目录结构都是程序员熟悉的结构)。Talend具有很好的嵌入性,因为它生成的是Java代码,这些代码可以很好的和其他系统结合在一起,这就要求使用者会java。如果不会Java的话,Talend的缺点是学习曲线将会非常陡峭,但是如果会java的话,Talend将是一个绝佳的选择。
Penthao: 它是一个老牌的工具,在2001年就发布了第一个版本,Kettle是Penthao整个解决方案的一个组件,用来进行数据集成。它也是基于java开发的,但是它不要求用户会java,将底层实现细节都隐藏了。这样即使不会编程的用户也可以轻易的上手,学习曲线非常平缓。它主要的缺点是,和talend相比,它的扩展性较差。由于它很难扩展,所以在社区中可用的组件就比较少;同时,由于它是直接解析存放在xml中的任务信息,不直接生产java代码,使得它和现有的java开发的系统进行集成非常困难。
CloverETL: 它是在talend和penthao之后发展起来的工具,使用的人数没有talend和penthao多,它主要的优点是,轻量级、容易嵌入、易于使用。但是它的功能远没有talend和kettle强大。
性能:从clover的官网上,有如下两组性能测试报告(2009年),分别是1GB的文件大小和10GB的文件大小,从这两组系统报告可以看出,clover的性能是最好的,Talend的性能次之,Penthao的性能最差。
图 1
图 2
结论:考虑到公司现有系统、后续的扩展性以及性能,Talend Open Studio是目前最好的选择,因为它比Penthao灵活,性能比Penthao强,和Clover的性能差别也较小。