| « | 六月 2008 | » | ||||
|---|---|---|---|---|---|---|
| 一 | 二 | 三 | 四 | 五 | 六 | 日 |
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | ||||||
阅读<DataStage企业版产品白皮书>有感!
通常认为ETL就是数据抽取,转换,加载的过程,完全正确.就像数据库就是存储和管理数据的工具一样,然而数据库并不全部是数据的存储,最重要的是管理,即数据的并发性一致性可恢复性管理,包括一系列的进程和内存的管理等等.ETL工具本身也是同样的问题.如果只是抽取转换加载,相信通过PowerBuilder的数据管道技术并加以封装或者一系列的语言工具编码可以做到,并非很难的事情.
之所以思考,是因为阅读了一下<DataStage企业版产品白皮书>,当然也只是粗略的看了一下,其实所有成熟的ETL工具都是相类似的,都是在相互借鉴中不断的完善的结果.
简单的总结一下:
Ø 元数据管理,不管通过DBMS进行存储也好,通过XML或者自己的管理系统也好.元数据的管理是必须的,提供了一个可视化的数据字典.
Ø 和配置工具的集成,或者内置一个配置库管理工具.
Ø 项目化管理和集成环境,统一对系统内的工作流和任务进行管理
Ø 任务包中都包含源数据,目标数据的管理,其中也包括关系数据库,平面文件,XML文件,WebService,COBOL等文件的管理
Ø 任务包中提供了一系列的排序,转换,合并,连接,过滤,聚合,查找表,复制,分裂,条件分割等等一些通用的数据转换.
Ø 数据流架构和流水线即工作流管理,几乎所有的ETL工具都是根据时序进行任务流的处理,这也符合数据仓库的过程化处理要求.其中包括错误处理方式,错误报表,并行处理,时序等待等等.
Ø 可伸缩硬件环境支持,最大限度的利用硬件的支持.
Ø 并行支持,发挥DBMS的优势,或者通过内置的内存管理进行处理.
不过我有些怀疑ETL的功效,据权威人士统计80%的时间和IO消耗是集中在ETL的抽取和加载环节,而抽取和加载的速度是由DBMS或者其他数据源所决定的,也就是说无论怎么优化,ETL工具的优化也只有20%的余地.有个玩笑:ETL工具执行的效率肯定比不上最好的程序员写的代码的效率,但是起码要比最差的程序员写的代码要强.
也许ETL工具本身就是一个管理的平台,它的意义在于屏蔽底层编码的细节和异构数据源,通过图形化的方式实现数据流程的调度,从而提供开发和管理上的效率,而并非程序执行效率.
楼主可以把DataStage企业版产品白皮书作为附件上传,那样看的人更有意义。
hxjiang | 28/06/2007, 17:29
呵呵,那是别人的商业文件!
上传恐怕不太合适,:)
土包子 | 29/06/2007, 10:51
什么叫白皮书?就是向外界公布的内容供外界了解的
白皮书就是给公布出来给大家看的
无所不能 | 26/11/2007, 14:04