几个ETL工具的比较,不知道是否准确。

  ETL厂商 Reiking IBM information server(datastage) informatic OnceDI beeload ODI(oracle data integrate
基本架构 支持运行平台 windows/unix/linux windows/unix/linux windows/unix/linux windows windows/linux windows/linux
数据访问模式支持 绝大部分支持 绝大部分支持 绝大部分支持 绝大部分支持 绝大部分支持 绝大部分支持
数据抽取方式 支持生成文件(落地)再导入;直接导入;消息协议 直接导入;导入方式,数据导入支持批量加载(sql loader方式)、insert模式、行删除模式
其中insert模式是插入到临时表,然后更新,需要手工写update语句,配置比较复杂,
行删除模式这种方式不考虑,性能肯定会非常差。
批量加载模式,是对方工程师推荐的测试方案,其性能应该是最快的.以下测试是基于批量加载模式
直接导入;数据导入目的库有两种加载方式

normal和bulk,即普通插入和批量加载。
批量加载需要先将索引drop掉,在加载完成后重新创建,但是这种方式在对付
大数据量时很慢,例如下文测试hisdeliver 1个月的数据抽取,286万记录,需要4分47秒,比普通插入
要慢很多。下面的测试结果由informatic的工程师,其基于normal模式
只支持落地方式 直接导入 直接导入也可以使用dblink(oracle->oracle),透明网关(sql->oracle))
实时增量ETL支持 递增字段实现,触发器模式,支持Oracle CDC CDC,实现秒级别的增量 CDC,实现秒级别的增量,另外付费购买 触发器模式/递增字段实现 触发器模式/递增字段实现 触发器模式/递增字段实现/stream(cdc)
性能 单表hisdeliver抽取,记录数124810,耗时比较 1分16秒 17秒 15秒 3分42秒 2分7秒 19S
单表hisdeliver抽取,记录数2859999,耗时比较 22分12秒 6分12秒 2分58秒 30分钟以上 未测试 3分49S
采集sqlserver数据;采集表zygd(记录数:597872) 测试报错 41秒 16秒 未测试 3分17秒 19S
流程中是否支持并行加载 支持 支持 支持 不支持,只能手工同时发起多个流程来实现并行加载 支持 支持(流程中串行异步模式)
并行加载性能 client
730279行
5分钟 1分14秒 2分02秒 14分33秒 无法对并行流程进行更新的监控,只有整体运行完成时间,7分12秒 2分13秒
clientinfo 739278行 7分钟 2分18秒 1分50秒 14分07秒 1分29秒
stockholder 1083789 11分钟 2分59秒 3分01秒 14分50秒 3分23秒
hisdeliver 124810行 未加载 48秒 20秒 4分31秒 2分44秒
异常处理   支持邮件通知 支持邮件通知 支持邮件通知 不支持 支持邮件通知 支持邮件通知
ETL管理 权限管理 支持 支持 支持 支持   支持
ETL工作流 支持顺序、并行工作流、支持时间、事件触发 支持顺序、并行工作流、支持时间、文件到达触发 支持顺序、并行工作流、支持时间、事件、文件到达触发 支持顺序工作流、支持时间触发 支持顺序、并行工作流、支持时间。在工作流支持循环 支持顺序、并行工作流、支持时间
流程触发 定时、事件 只能定时(支持到天级别),比较弱 定时(支持到分钟级别)、事件触发   定时、事件触发 定时、事件触发
运行监控 较弱 较强 较强 较弱 较弱 有专门的WEB工具来展示
ETL日志与报告 详细,但是出错信息需要查bad数据文件 很详细,能够看到所有的操作 很详细,能够看到所有的操作 不是很详细 比较详细 比较详细
部署 强,采用SOA架构,可以任意发布服务 较强 较强 可以任意发布 可以任意发布,按机器进行收费 可以任意发布,按CPU进行收费
流程调度 可以按日定时调度;可以支持到秒级别的轮询调度(实现实时采集);无法支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程;支持变量模式,支持变量从某个表读取然后替换相应的变量,必须通过外部shell调用替换 可以按日定时调度;无法支持到秒级别的轮询调度(实现实时采集);无法支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程;支持变量模式,无法支持变量从某个表读取然后替换相应的变量,必须通过外部shell调用替换 可以按日定时调度;可以支持到秒级别的轮询调度(实现实时采集);无法支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程;支持变量模式,支持变量从某个表读取然后替换相应的变量,必须通过外部shell调用替换 可以按日定时调度;可以支持到秒级别的轮询调度(实现实时采集);无法支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程 可以按日定时调度;可以支持到秒级别的轮询调度(实现实时采集);支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程 可以按日定时调度;可以支持到秒级别的轮询调度(实现实时采集);支持事件触发(例如清算完成)调度,必须编写调度程序,通过API调用流程;支持变量模式,支持变量从某个表读取然后替换相应的变量,必须通过外部shell调用替换
  其他印象(可操作性,易用性,界面友好性)            
在都采用批量加载时,大量数据时的性能 hisdeliver 2859999行   6分12秒 5分27秒      
hisdeliver 4350338行   10分53秒 6分51秒(5分钟导数据,1分51秒建索引      
hisdeliver 12222466行   29分56秒(25分钟导数据,4分56秒) 18分4秒(13分24秒导数据,4分40秒建索引)      
hisoperationtotal 57747239行   27分21秒(20分2秒导数据;7分19秒建索引) 26分56秒(17分10秒导数据,9分46秒导数据)      
在都采用批量加载时,大量数据时的性能(不带索引) hisdeliver 8276997行   19分40秒 bulk:10分23秒
normal:10分31秒
     
hisoperationtotal 17896802行   5分24秒 4分18秒      
在都采用批量加载时,大量数据时的性能(不带索引) hisdeliver 在上述里已有8276997行数据后,再次追加3945469行   8分47秒 6分钟      
在都采用批量加载时,大量数据时的性能(不带索引) hisdeliver 加载3945469行   7分52秒 6分10秒      

作者: lineast   发布时间: 2011-03-17

基本属实

作者: wangfans   发布时间: 2011-03-18

Reiking 还有人测试啊,

informatica 是支持事件触发的

作者: piliskys   发布时间: 2011-03-18