+ -
当前位置:首页 → 问答吧 → 求Informatica抽取海量历史数据的解决方案!谢谢!

求Informatica抽取海量历史数据的解决方案!谢谢!

时间:2011-07-12

来源:互联网

ETL工具:Informatica
数据源数据库:Oracle
目标数据库:Oracle

现在的问题是:用Informatica抽取客户的历史数据,有4、5年的历史数据。刚开始抽取的时候,速度还很快,抽取一天的数据量,整个workflow的调度执行时间大约是30分钟左右,有3、4个表的数据量每天有50W到60W左右。 现在抽取了4个月后,速度越来越慢,现在抽取一天的数据都要2个小时,如果要抽取4、5年的历史数据,抽取的时间就会很久很久了。我现在在抽取数据的时候,已经删除了主键、索引,使用了BULK导入方式。

我自己想了一个解决方案,根据几张数据量非常大的表,按月建立分区表,然后在Informatica导数据的时候,以分区表做为目标表,这样改动会比较大,不知道可不可行?

请问大家有没有更好的办法?

作者: tanshanghua   发布时间: 2011-07-12

最主要的不是工具,先确定你慢在哪一步,哪一步还有优化的空间。
首先,要保证速度效率,必须确定你抽取的数据量及抽取的范围, 不管什么工具取数,第一步都是从数据库中找出要进行抽取的数据,这一步如果慢了,什么工具也解决不了。作为数据库每天要抽取的数据一般情况是已经确定的,那么快速有效的从数据库取出要抽取的数据这是优化的第一步,后期处理的优化很多时候只能根据业务规则及常用的一些手法,个人认为第一步是关键,如果有日志表记录表中的主键及DML操作,那么,后期的增量抽取就会变的容易,或者有有效的抽取时间来确定抽取规则,利用索引之类的加快查询速度。   感觉都没有优化空间那只能从硬件角度考虑了

作者: piliskys   发布时间: 2011-07-12