载入中…
公告栏:
当前位置: 中国商业智能网 >> 专家 >> 齐红胤 >> 文章正文
浅析查找ETL系统瓶颈
作者:佚名    来源:本站原创    点击数:    时间:2007-4-11
【摘要】 What steps do you take to determine the bottleneck of a slow running ETL process? 如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。 答:ETL系统遇到性能问题,运行很慢是一件较常……

What steps do you take to determine the bottleneck of a slow running ETL process?

如果ETL进程运行较慢,需要分哪几步去找到ETL系统的瓶颈问题。

答:ETL系统遇到性能问题,运行很慢是一件较常见的事情,这时要做的是逐步找到系统的瓶颈在哪里。

首先要确定是由CPU、内存、I/O和网络等产生的瓶颈,还是由ETL处理过程产生的瓶颈。

如果环境没有瓶颈,那么需要分析ETL的代码。这时,我们可以采用排除的方法,需要隔离不同的操作,并分别对它们进行测试。如果是采用纯手工编码方式的ETL处理,隔离不同的操作要麻烦一些,这时需要根据编码的实际情况来处理。如果是采用ETL工具的话,目前的ETL工具应该都有隔离不同处理的功能,隔离起来相对容易一些。

分析最好从抽取操作开始,然后依次分析各种计算、查找表、聚集、过滤等转换环节的处理操作,最后分析加载操作。

实际的处理中,可以按照下面的七个步骤来查找瓶颈。

1.隔离并执行抽取查询语句。

先将抽取部分隔离出来,去掉转换和交付,可以将数据直接抽取到文件中。如果这一步效率很差,基本确定是抽取SQL的问题。从经验来看,未经调优的SQL是一个最常见的导致ETL效率差的原因。如果这步没有问题进入第二步。

2.去掉过滤条件。

这一条是针对全抽取,然后在ETL处理中进行过滤的处理方式而言。在ETL处理中做过滤处理有时会产生瓶颈。可以先将过滤去掉,如果确定为这个原因,可以考虑在抽取时进行数据过滤。

3.排除查找表的问题。

参照数据在ETL处理过程中通常会加载到内存中,目的是做代码和名称的查找替换,也称查找表。有时查找表的数据量过大也会产生瓶颈。可以逐个隔离查找表,来确定是否是这里出现问题。注意要将查找表的数据量降到最低,通常一个自然键一个代理键就可以,这样可以减少不必要的数据I/O

4.分析排序和聚集操作。

排序和聚集操作都是非常费资源的操作。对这部分隔离,来判断是否因为它们引起性能问题。如果确定是因为这个,需要考虑是否可以将排序和聚集处理移出数据库和ETL工具,移到操作系统中来处理。

5.隔离并分析每一个计算和转换处理。

有时转换过程中的处理操作也会引起ETL工作的性能。逐步隔离移除它们来判断哪里出了问题。要注意观察像默认值、数据类型转换等操作。

6.隔离更新策略。

更新操作在数据量非常大时是性能非常差的。隔离这部分,看看是否这里出了问题。如果确定是因为大批量更新出了性能问题。应该考虑将insertupdatedelete分开处理。

7.检测加载数据的数据库I/O

如果前面各部分都没有问题,最后需要检测是目标数据库的性能问题。可以找个文件代替数据库,如果性能提高很多,需要仔细检测目标数据库的加载过程中的操作。例如是否关闭了所有的约束,关闭了所有的索引,是否使用了批量加载工具。如果性能还没有提高,可以考虑使用并行加载策略。

 
责任编辑:朱莉   
 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    ChinaBI版权、投稿与免责申明:
    1)凡本网署名文字、图片和音视频稿件,版权均属中国商业智能网所有。任何媒体、网站或个人未经本网协议授权不得转载、链接、转贴或以其他方式复制发表。已经本网协议授权的媒体、网站,在下载使用时必须注明稿件来源:中国商业智能网,违者本网将依法追究责任。
    2)本网注明“本站来源处不写本站原创”的文章均为转载稿,本网转载出于传递更多信息之目的。如本网转载稿涉及版权等问题,请作者速来电或来函与本网联系。
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    最新热点
    最新推荐
    网站合作、内容监督、商务咨询、投诉建议 电话:0512-62861389  邮箱:chianbi@126.com
    Copyright 2004-2014 中国商业智能网版权所有   |    苏 ICP 备 13004727 号