日期:2014-05-18  浏览次数:20417 次

ETL在执行时会把业务库托的很慢怎么弄?
每次执行ETL过程,都会把业务库托的很慢,很影响使用,不知道各位有没有高招指点一下。

(由于系统为全球使用,不可以单纯的像网上有些讲的在早上没有人用的时候执行,因为系统一直都有人在使用)

------解决方案--------------------
1、没有历史数据库吗?

能不能做一个备用服务器,把一些历史数据放在这个备用服务器上,然后从这个备用服务器上作etl
------解决方案--------------------
这确实是个问题,而且是所有DW ETL系统都面临的问题。
快速的抽取数据,快得不能再快的那种速度与Source断开连接,Source系统因为ETL的Exract过程而短时间的性能缺损是不可能避免的。唯一能做的,就是如何把这个时间缩短,而不能消除。 
除考虑硬件扩展之外,考察一下数据增量,检测一下各种(那些表)数据抽取时间,重点优化那些耗时较长的数据抽取过程。

------解决方案--------------------
1.在加载到目标表时,使用“快速加载”选项
2.在流程中避免使用完全阻塞任务;如Sort排序、聚合等转换功能。
3.排除不必要的字段。sql脚本不要使用 select * from 等等。

反正优化的地方很多。
------解决方案--------------------
建议弄个备份库,从备份库上做ETL

不要在生成库上做count统计
------解决方案--------------------
系统业务数据有没有“时间戳”之类的标志来物理上减少需要抽取的数据量?这也是减轻ETL负担的一个方面了。