论坛首页 Java企业应用论坛

商业智能平台研究 (十) ETL 选型

浏览 14142 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-05-13  
商业智能平台研究 (十) ETL 选型
ETL (Extract-Transform-Load的缩写,即数据抽取、转换、装载的过程)作为BI/DW(Business Intelligence)的核心和灵魂,能够按照统一的规则集成并提高数据的价值,是负责完成数据从数据源向目标数据仓库转化的过程,是实施数据仓库的重要步骤。如果说数据仓库的模型设计是一座大厦的设计蓝图,数据是砖瓦的话,那么ETL就是建设大厦的过程。在整个项目中最难部分是用户需求分析和模型设计,而ETL规则设计和实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。

ETL工具从厂商来分为两种,一种是数据库厂商自带的ETL工具,Oracle warehouse builder 就是这种,另外一种是第三方工具提供商.开源世界也有一大票的ETL工具,功能各异,强弱不一,你可以从一下地址找到开源ETL工具的列表 http://www.manageability.org/blog/stuff/open-source-etl/view  , 提醒一句,选用工具的时候要慎重,真的,千万要慎重,不管你是选用商业的ETL工具(一般比较贵),还是开源的工具,都要在你充分了解产品的特性才去选择,千万不要听某某人说什么这个工具好,就购买了那个工具,一定要自己了解产品.

开源的ETL工具的列表 (排名是乱排的)
kettle  http://kettle.pentaho.org/  ,pentaho官方的ETL工具,是一个metadata-driven 的ETL工具,不需要自己写code .
talend  http://www.talend.com/    talend是talend自己公司的产品,宣传的是全功能的Data Integration 解决方案,基于eclipse 平台,包括很多的模块来实现商业流程建模,数据流程建模,最后输出的是perl 和 Java code
jasperETL  http://www.jaspersoft.com/   JasperETL是基于talend的平台,不太清楚有什么区别,jaspersoft开发的ETL产品.
Octopus   http://www.enhydra.org/tech/octopus/index.html    octopuc是enhydra 的一个ETL工具,enhydra是一个产品跨度非常大的开源站点,它有个开源的Workflow ,Shark ,pentaho就是使用的这个Workflow ,这个组织从workflow 到application server , 从ETL工具到application framework ,还有一些其他的中间件,octopus非常的原始,支持任何的JDBC数据源,用XML语言来定义的.也支持JDBC-DOBC ,和excel 和 access ,csv-files, XML files ,用Ant 和 JUnit 来创建表和测试.
CloverETL http://cloveretl.berlios.de/   CloverETL是提供给你一组API,用XML来定义ETL过程,同样支持JDBC数据源, CloverETL是开源的,但是它是没有图形界面的,它提供一个有图形界面的CloverGUI 来进行ETL的图形化开发过程,但是不是开源的,需要购买商业许可证.
KETL   http://www.ketl.org/    听说是几个前IBM员工做出来的ETL产品,
另外还有很多.不一一写介绍了,只列个表吧,
Joost        http://joost.sourceforge.net/    最近有个web2.0 网站也叫Joost,名字相同而已.
Xineo        http://software.xineo.net/xil.jspx
BabelDoc        http://sourceforge.net/projects/babeldoc
CB2XML        http://sourceforge.net/projects/cb2xml
mec-eagle        http://sourceforge.net/projects/mec-eagle/
Transmorpher        http://transmorpher.inrialpes.fr/
XPipe        http://xpipe.sourceforge.net/Articles/Miscellaneous/fog0000000018.html
DataSift        http://www.datasift.org/
Xephyrus Flume        http://www.xephyrus.com/flume/flume-intro.Prlx
Smallx        https://smallx.dev.java.net/
Nux        http://dsd.lbl.gov/nux/index.html
Netflux        http://www.netflux.org/
OpenDigger       https://opendigger.dev.java.net/
ServingXML        http://servingxml.sourceforge.net/
Scriptella        http://scriptella.javaforge.com/
ETL Integrator        http://www.glassfishwiki.org/jbiwiki/Wiki.jsp?page=ETLSE
Jitterbit        http://www.jitterbit.com/
Apatar        http://www.apatar.com/
Spring Batch       http://static.springframework.org/spring-batch/

大多数站点都是在sf.net上的.其中最后一个是Spring的,大名鼎鼎的Spring 也往ETL插一脚.实在是..........
根据talend官方介绍的数据,ETL工具的市场份额在2006好像是有160多亿美元.由于BI项目的成功,ETL的这一市场份额还会扩大,这也不难理解,为什么这么多的公司都在做ETL工具了.开源世界也免不了想要分一杯羹.再次废话一句,开源的东西你可以免费得到和使用,但是当你想应用到企业级开发的时候,省钱可不是唯一应该考虑的因素.还是那句话,慎重呀慎重.

下一篇介绍BI的基本概念.
   发表时间:2007-05-15  
一直不太明白,为什么大部分的开源etl都没有服务器端,像talend做的不错,但只是一个IDE,kettle的服务器端没有调度功能,真是奇怪,ETL的核心我觉得是性能,服务器端一定要强,而且要支持cluster,也要支持可监控和管理性。

以上列表中,Jitterbit        http://www.jitterbit.com/
倒是不错的东西,设计非常简洁,也支持服务器端。只是功能少了点,要是支持用户自定义功能,就完美了。
0 请登录后投票
   发表时间:2007-05-15  
eddie 可以为大家介绍一下Jitterbit 吗?
最好能有几张图,谢谢了
0 请登录后投票
   发表时间:2007-05-16  
jjjava 写道
eddie 可以为大家介绍一下Jitterbit 吗?
最好能有几张图,谢谢了


请看以下链接

http://eddie.iteye.com/blog/76955
1 请登录后投票
   发表时间:2007-05-22  
老实承认没仔细。不过ETL工具用Java做,好像不大可能被市场认可。
0 请登录后投票
   发表时间:2007-05-22  
不用java ,还能用什么,很多情况要跨平台和提供通用的API呀  ,当然如果只绑定在windows平台的工具就当我没说。
0 请登录后投票
   发表时间:2007-06-03  
jjjava 写道
不用java ,还能用什么,很多情况要跨平台和提供通用的API呀  ,当然如果只绑定在windows平台的工具就当我没说。

这世界上,不只是java可以跨平台。 如果你理解为,只有java才可以跨平台??
etl的时候要做什么:
1。最简单的是执行一条SQL就够了
2。存储过程实现
3。自行编写的ETL任务

第一种情况,用任何语言都可以实现,反正就是配一个sql。
第二种情况,需要考虑调用各种数据库的接口,如果是java语言实现,可以利用jdbc隔离,一套程序即可。在这点上,利用java编写ETL任务有优势。
第三种情况:编写的语言可能是C,java。而且通常C更合适。如果你要考虑跨平台,用C要付出代价。不过通常这类应用去考虑跨平台,都是吃多了撑的。
做数据仓库应用,这么多钱用来不是让你去考虑这种问题的。扎了这么多钱在这里面,客户要的是:效率!









0 请登录后投票
   发表时间:2007-06-03  
随便说下,所谓的数据仓库应用,不大可能是win能完成任务。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics