ETL的过程我想很多人都谈过了,最近我在比较SSIS,OWB和infomatica,结合以前的项目,加深了我对ETL过程的理解和认识。
其实这三种工具,除去应用平台以为,大同小异,各有利弊。今天我想分享一下我的经验,主要在扩展和维护方面。
1:数据落地和ELT
很多人谈到数据落地的概念,说白了,就是ODS或者DWH中,有数据input或者output的,都先把要操作的数据放到临时表里面,而数据传输的两端的表的结构都是一样的,这样的操作比较便捷,几乎不用考虑转换的问题。
同时我们还要提到的就是ELT,ELT和ETL其实各有好处,一个是用工具来转化数据,一个用SP,工具一般都是一行行的处理,而SP一般都是一列列的处理。我个人认为ELT,用SP处理数据比较好,因为我们的测试或者将来的维护,都需要经常改变表间的mapping关系。而SP只是需要在数据库里面做一些修改和操作,而且还比较容易调试,去发现问题的根源。
2:脚本文件
这里的脚本文件可以分为FTP script,table Script,Stored proc Script还有Shell脚本,不管是dos shell 还是unix shell,这些都是一些操作系统的控制文件,我们可以暂时不谈。为什么要谈谈这些脚本了,其实我们在设计和开发结构的时候很简单,但是我们修改的时候,就比较麻烦了,特别是ETL工具在打开一个package的时候,需要加载和验证,有的时候很慢很慢,如果我们只是修改一些小参数的话,花长时间就不值得,如果我们将脚本文件都放在一起的话,那么打开txt或者bat文件就很方便。还有就是我们对于一些临时表,有的时候需要将数据全部删掉,我们可以用 truncate table,有的时候用drop和create也是不错的选择。
当然,如果用脚本文件的话,主机的安全性一定要好,而且对于账号的表级操作权限也要分配好。
3. 策略表
我们按照不同的频率,定时执行package,有的时候可能遇到error,有的时候可能由于其他的问题不能按时执行。其实我们可以做一张策略表,存储每个package的执行的时间规则,然后每天开始执行前,将所有的package初始化出当天的执行情况,记录开始结束时间,还有成功标记。执行时,可以先读取上一个执行日的执行情况,将未完成的package,延续的到当日。
Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有