http://www.fx114.net/qa-230-91…, 三大主流ETL工具选型
ETL(extract, transform and load)产品乍看起来似乎并不起眼,单就此项技术本身而言,几乎也没什么特别深奥之处,但是在实际项目中,却常常在这个环节耗费太多的人力,而在后续的维护工作中,更是往往让人伤透脑筋。之所以出现这种状况,恰恰与项目初期没有正确估计ETL工作、没有认真考虑其工具支撑有很大关系。
做ETL产品的选型,仍然需要从以前说的四点(即成本、人员经验、案例和技术支持)来考量。在此,主要列举三种主流ETL产品:Ascential公司的Datastage、Informatica公司的Powercenter、 NCR Teradata公司的ETL Automation。其中,ETL Automation相对其他两种有些特别之处,放在后面评述。
旗鼓相当:Datastage与Powercenter
就Datastage和Powercenter而言,这两者目前占据了国内市场绝大部分的份额,在成本上看水平相当,虽然市面上还有诸如Business Objects公司的Data Integrator、Cognos公司的DecisionStream,但尚属星星之火,未成燎原之势。
谈Datastage和Powercenter,如果有人说这个就是比那个好,那听者就要小心一点了。在这种情况下有两种可能:他或者是其中一个厂商的员工,或者就是在某个产品上有很多经验而在另一产品上经验缺乏的开发者。为什么得出这一结论?一个很简单的事实是,从网络上大家对它们的讨论和争执来看,基本上是各有千秋,都有着相当数量的成功案例和实施高手。确实,工具是死的,人才是活的。在两大ETL工具技术的比对上,可以从对ETL流程的支持、对元数据的支持、对数据质量的支持、维护的方便性、定制开发功能的支持等方面考虑。
一个项目中,从数据源到最终目标表,多则上百个ETL过程,少则也有十几个。这些过程之间的依赖关系、出错控制以及恢复的流程处理,都是工具需要重点考虑。在这一方面,Datastage的早期版本对流程就缺乏考虑,而在6版本则加入Job Sequence的特性,可以将Job、shell脚本用流程图的方式表示出来,依赖关系、串行或是并行都可以一目了然,就直观多了。Powercenter有Workflow的概念,也同样可以将Session串联起来,这和Datastage Sequence大同小异。
ETL的元数据包括数据源、目标数据的结构、转换规则以及过程的依赖关系等。在这方面,Datastage和Powercenter从功能上看可谓不分伯仲,只是后者的元数据更加开放,存放在关系数据库中,可以很容易被访问。此外,这两个厂家又同时提供专门的元数据管理工具,Ascential有Metastage,而Informatica拥有Superglue。你看,就不给你全部功能,变着法子从你口袋里面多掏点钱。
数据质量方面,两种产品都采用同样的策略——独立出ETL产品之外,另外有专门的数据质量管理产品。例如和Datastage配套用的有ProfileStage和QualityStage,而Informatica最近也索性收购了原先OEM的数据质量管理产品FirstLogic。而在它们的ETL产品中,只是在Job或是Session前后留下接口,所谓前过程、后过程,虽然不是专为数据质量预留的接口,不过至少可以利用它外挂一些数据质量控制的模块。
在具体实现上看,Datastage通过Job实现一个ETL过程,运行时可以通过指定不同参数运行多个实例。Powercenter通过Mapping表示一个ETL过程,运行时为Session,绑定了具体的物理数据文件或表。在修改维护上,这两个工具都是提供图形化界面。这样的好处是直观、傻瓜式的;不好的地方就是改动还是比较费事(特别是批量化的修改)。
定制开发方面,两者都提供抽取、转换插件的定制,但笔者认为,Datastage的定制开发性要比Powercenter要强那么一点点。因为Datastage至少还内嵌一种类BASIC语言,可以写一段批处理程序来增加灵活性,而Powercenter似乎还缺乏这类机制。另外从参数控制上,虽然两者的参数传递都是比较混乱的,但Datastage至少可以对每个job设定参数,并且可以job内部引用这个参数名;而Powercenter显得就有些偷懒,参数放在一个参数文件中,理论上的确可以灵活控制参数,但这个灵活性需要你自己更新文件中的参数值(例如日期更新)。另外,Powercenter还不能在mapping或session中引用参数名,这一点就让人恼火。
总起来看,Datastage和Powercenter可谓旗鼓相当,在国内也都有足够的支持能力,Datastage在2005年被IBM收购之后,可以说后劲十足。而Informatica则朝着BI全解决方案提供商方向发展,Powercenter显然还将是它的核心产品。
独树一帜:Teradata的ETL Automation
继续要说的第三种产品是Teradata的ETL Automation。之所以拿它单独来说是因为它和前面两种产品的体系架构都不太一样。与其说它是ETL工具,不如说是提供了一套ETL框架。它没有将注意力放在如何处理“转换”这个环节上,而是利用Teradata数据库本身的并行处理能力,用SQL语句来做数据转换的工作,其重点是提供对ETL流程的支持,包括前后依赖、执行和监控等。
这样的设计和Datastage、Powercenter风格迥异,后两者给人的印象是具有灵活的图形化界面,开发者可以傻瓜式处理ETL工作,它们一般都拥有非常多的“转换”组件,例如聚集汇总、缓慢变化维的转换。而对于Teradata的ETL Automation,有人说它其实应该叫做ELT,即装载是在转换之前的。的确,如果依赖数据库的能力去处理转换,恐怕只能是ELT,因为转换只能在数据库内部进行。从这个角度看,Automation对数据库的依赖不小,似乎是一种不灵活的设计。也正是这个原因,考虑它的成本就不单单是ETL产品的成本了。
其实,在购买现成的工具之外,还有自己从头开发ETL程序的。
ETL工作看起来并不复杂,特别是在数据量小、没有什么转换逻辑的时候,自己开发似乎非常节省成本。的确,主流的ETL工具价格不菲,动辄几十万;而从头开发无非就是费点人力而已,可以控制。至于性能,人大多是相信自己的,认为自己开发出来的东西知根知底,至少这些程序可以完全由自己控制。
就目前自主开发的ETL程序而言,有人用c语言编写,有人用存储过程,还有人用各种语言混杂开发,程序之间各自独立。这很危险,虽然能够让开发者过足编码的瘾,却根本不存在架构。
有位银行的朋友,他们几年前上的数据仓库系统,就是集成商自己用c语言专门为他们的项目开发的。单从性能上看似乎还不赖,然而一两年下来,项目组成员风雨飘零,早已物是人非,只有那套程序还在那里;而且,按照国内目前的软件工程惯例,程序注释和文档是不全或者是不一致的,这样的程序已经对日常业务造成很大阻碍。最近,他们已经开始考虑使用ETL工具重新改造了。
http://www.fx114.net/qa-252-79…, ETL工具大全,你了解多少,这个就是比较琐碎散乱了
这些年,几乎都与ETL打交道,接触过多种ETL工具。现将这些工具做个整理,与大家分享。 一 ETL工具 【国外】 1. datastage 点评:最专业的ETL工具,价格不菲,使用难度一般 下载地址:ftp://ftp.seu.edu.cn/Pub/Develop … taStage.v7.5.1A-iSO BT种子下载:http://pan.baidu.com/share/link?shareid=172289&uk=67437475 --------------------------------------- 2. informatica 点评:专业程度如Datastage旗鼓相当,价格似乎比Datastage便宜。 Informatica PowerCenter 8.6.1 for Win 32Bit 服务端下载:http://pan.baidu.com/share/link?shareid=183214&uk=67437475 客户端下载:http://pan.baidu.com/share/link?shareid=183217&uk=67437475 Informatica PowerCenter 8.6.0 for Win 32Bit BT种子下载:http://pan.baidu.com/share/link?shareid=172290&uk=67437475 Informatica PowerCenter 8.1.1 for Win 32Bit 安装包下载:http://pan.baidu.com/share/link?shareid=183201&uk=67437475 --------------------------------------- 3. kettle 点评:业界最有名的开源ETL工具。开源当然就免费,免费的有些东西使用就不是很方便。 下载地址:http://kettle.pentaho.com/ --------------------------------------- 4. ODI 点评:oracle数据库厂商提供的工具,有局限性,与oracle数据库耦合太深。 下载地址: www.oracle.com/technetwork/cn/… --------------------------------------- 5.Cognos 下载地址:http://www.ibm.com/developerworks/cn/downloads/im/cognosbi/ Cognos BI 8.3 BT种子下载: http://pan.baidu.com/share/lin… Cognos BI 8.4 BT种子下载:http://pan.baidu.com/share/link?shareid=172288&uk=67437475 ------------------------------------------ 【国内】 6. beeload 点评: 最好的国产ETL工具,但产品化程度还有一定距离。 下载地址: www.livbee.com --------------------------------------- 二 专业调度工具 有人说: ETL是BI的基础,而调度是ETL的灵魂,可见调度的重要性! 调度原本是ETL技术的一个分支,但这些年, 调度越来似乎有走独立工具的趋势。虽然在ETL工具有调度功能,但与独立调度工具相比,ETL工具的调度就显得很弱了。 【国外】 1. Control-M 点评:你当了大哥太多年,确实有点寂寞。不论是你的规模、价格、使用难度,都很伟大,但我一界平民,你对我只是传说。 官网地址:www.bmc.com -------------------------------------- 【国内】 2. taskctl 点评:调度新秀。专业,而且设计独特、体验友好。易安装、易使用,看好其前景。 下载地址:http://www.taskctl.com/html/2012 … 8b57714a50a15a.html -------------------------------------- 3. ETS 点评:专业化有待提升 官网地址:http://www.etlschedule.com/ -------------------------------------- 4. Moia 点评:产品与项目是有区别的,不要总是在产品化与客户化之间徘徊。 官网地址:http://www.adtec.com.cn/_d271218319.htm -------------------------------------- 5. ETL-Plus 点评:功能全,遗憾的是东南倒塌。 下载地址:[无]
只用过sqlserver自带的引用 1 楼 rucypli 的回复:只用过sqlserver自带的 6.SSIS 点评:微软数据产品套件之一.前身是mssql2000的DTS.第三方数据库源需要采用ODBC数据转换,效率上有一定折扣.若项目以msssql server数据库为主,采用它肯定是最佳方案. 官网地址:地球人都知道,哈哈
关注此话题,期待更多分享,谢谢
说实话,在好多项目中,ETL任务都自己写,就连建行ECIF上亿的项目,里面很多任务都是自己写存储过程;但调度就不然了,还必须得有,不管你项目大小,有调度就非常方便。我想,如果有一款通用且开源或免费的通用调度工具,那就不错了。这样很多项目就方便了。 但Control-M,TASKCTL,Moia,WFT谁能当此大任呢?
我的是自己写的
写Shell用crontab的飘过
学习。
自己写的飘过…
太牛了!不懂!随便看看!
该回复于2013-03-09 15:49:27被管理员删除
sap的BO
补充一句,Cognos是报表工具吧,没有etl功能
这个太厉害了
该回复于2013-03-19 11:15:57被管理员删除
怎么能遗漏Data Service呢
厉害了,多谢分享。
网上貌似对data service的说明很少啊!
嗯 一直想试用一下 DATA STAGE 和 INFORMATICA。BO的DATA SERVICE也比较贵,听SAP说好像也就北美用的多一些,国内用的比较少
敢问楼主有没有用过国产的happyetl?因为最近刚刚开始接触etl,所以不知道这个怎么样?
现在的公司就是用shell 的ctonrab 调度的,感觉乱乱的,上一个公司是他们自己开发的一套etl应用程序,挺好用的
iq4bis 的 dataserver很方面,做cube的,算是一个ssis的傻瓜化程序应用
https://www.zhihu.com/question…, 如果一个业务库的表没有最后更改的时间戳字段,而且在不更改业务库任何结构和变更的情况,作为数据仓库如何进行增量同步?