原文地址:http://blog.sina.com.cn/s/blog_5745722a0100t9d5.html
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工具应该都有隔离不同处理的功能,隔离起来相对容易一些。
分析最好从抽取操作开始,然后依次分析各种计算、查找表、聚集、过滤等转换环节的处理操作,最后分析加载操作。
实际的处理中,可以按照下面的七个步骤来查找瓶颈。
一、隔离并执行抽取查询语句。
先将抽取部分隔离出来,去掉转换和交付,可以将数据直接抽取到文件中。如果这一步效率很差,基本确定是抽取SQL的问题。从经验来看,未经调优的SQL是一个最常见的导致ETL效率差的原因。如果这步没有问题进入第二步。
二、去掉过滤条件。
这一条是针对全抽取,然后在ETL处理中进行过滤的处理方式而言。在ETL处理中做过滤处理有时会产生瓶颈。可以先将过滤去掉,如果确定为这个原因,可以考虑在抽取时进行数据过滤。
三、排除查找表的问题。
参照数据在ETL处理过程中通常会加载到内存中,目的是做代码和名称的查找替换,也称查找表。有时查找表的数据量过大也会产生瓶颈。可以逐个隔离查找表,来确定是否是这里出现问题。注意要将查找表的数据量降到最低,通常一个自然键一个代理键就可以,这样可以减少不必要的数据I/O。
四、分析排序和聚集操作。
排序和聚集操作都是非常费资源的操作。对这部分隔离,来判断是否因为它们引起性能问题。如果确定是因为这个,需要考虑是否可以将排序和聚集处理移出数据库和ETL工具,移到操作系统中来处理。
五、隔离并分析每一个计算和转换处理。
有时转换过程中的处理操作也会引起ETL工作的性能。逐步隔离移除它们来判断哪里出了问题。要注意观察像默认值、数据类型转换等操作。
六、隔离更新策略。
更新操作在数据量非常大时是性能非常差的。隔离这部分,看看是否这里出了问题。如果确定是因为大批量更新出了性能问题。应该考虑将insert、update和delete分开处理。
七、检测加载数据的数据库I/O。
如果前面各部分都没有问题,最后需要检测是目标数据库的性能问题。可以找个文件代替数据库,如果性能提高很多,需要仔细检测目标数据库的加载过程中的操作。例如是否关闭了所有的约束,关闭了所有的索引,是否使用了批量加载工具。如果性能还没有提高,可以考虑使用并行加载策略。
分享到:
相关推荐
对当前几大主流etl工具,informatica powercenter,IBM datastage,Business Objects,Cognos,Insight,IBM MetaData Workbench + Metadata server,石竹 MetaOne进行横向的分析比较.
通过对现有ETL系统的分析研究,设计并部分实现了基于某省电信公司数据仓库的ETL系统。采取XML格 式编辑整个ETL过程,实现部分图形化交互界面,并针对电信系统大数据量的特点,提出性能优化及改进的方法,提高了ETL效率。 ...
软件的轻量级结构使其在资源消耗方面非常低,可以在各种环境中运行,而不会对系统的性能产生太大的影响。 另外,Deta ETL AI Workflow Tool Software还具有Web嵌入功能,可以方便地与其他应用程序集成。用户可以通过...
提高数据仓库的ETL效率 数据仓库建设中的ETL(Extract, ...积累了大量可分析的业务数据,这些信息系统中的数据需要通过搭建数据仓库平台才能得到科学的分析,这也是近几年数据仓库系统建设成为IT领域热门话题的原因。
Jaspersoft ETL 是一个数据集成平台,提供高性能数据提取-转换-加载 (ETL) 功能。 Jaspersoft ETL 适用于所有分析和运营数据集成需求。 此项目的活动位于 jas
涵盖产品功能:数据转换、数据联邦、数据同步、大数据集成、数据加密、Kafka消息流、Web交互、文件同步、工作流调度、作业调度、远程调度、集群调度、日志监控、数据安全、数据比对、数据追溯、统计分析、性能检测.....
涵盖产品功能:数据转换、数据联邦、数据同步、大数据集成、数据加密、Kafka消息流、Web交互、文件同步、工作流调度、作业调度、远程调度、集群调度、日志监控、数据安全、数据比对、数据追溯、统计分析、性能检测....
LogCollector是一套基于ETL数据分析模型的分布式数据流系统,同时适用于云域内网数据传送和跨云数据传送;同时支持Windows和Linux双系统平台(内置JRE8.X);同时支持实时传送、离线传送和断点续传;同时支持组件化...
PerfView 是微软开源的 CPU 和内存性能分析工具。它能以多种方式收集和观察 ETL 文件,拥有强大的群组运算能力。主要功能如下:非侵入性收集 Xcopy 部署千兆字节堆栈快照对比文件转储配置文件比较CPU 性能追踪原生...
但⾯对海量数据,传统的ETL⼯具往往彻底失效,主要原因是数据格式转 换的开销太⼤,在性能上⽆法满⾜海量数据的采集需求。互联⽹企业的海量数据采集⼯具,有Facebook开源的Scribe、LinkedIn开源的 Kafka、淘宝开源的...
01.etl使用简介_开源KETTLE 02.KETTLE的使用 03.KETTLE之Step流程设计1 04.KETTLE之Step流程设计2 05.KETTLE之Step流程设计3 06.KETTLE之Job流程设计1 07.KETTLE之Job流程设计2 08.KETTLE之流程性能调优与监控 09....
交通银行根据IQ在测试中表现出的: 出色的数据压缩比,高性能的汇总和查询能力以及存储过程的灵活方便性选择IQ作为客户数据分析平台的数据库。根据技术测试的情况,重新规划的整体系统的构架如下:系统为集中访问的...
传统大数据分析工具以Hadoop,Spark为代表,集成集成的技术框架,对用户来说又重又笨又不灵活,难以维护和驾驭,国际和国内的敏捷型BI工具在对接时又面临性能本项目独辟蹊径,以阿里开源的DataX为ETL工具,以列式...
先进的数据技术-高性能大数据高级分析平台ADT平台使用更少的代码来分析大数据,以提高效率,并提供单一的编程语言,单一的平台和单一的体系结构以进行高效处理。核心理念使用ETL引擎进行数据精炼(提取-转换-加载) ...
二、基于大数据的数据分析系统架构 (一)传统的大数据数据分析架构 传统的大数据数据分析架构,传统的BI数据分析,由于数据量和系统性能不能 满足大数据,所以基于此类的数据分析技术上是使用了大数据的数据分析...
6.1.3. 性能需求分析 23 6.1.4. 运行需求分析 23 6.2. 源(Source)设计 23 6.3. 目标(Target)设计 24 6.4. Mapping设计 25 6.4.1. 注意事项 25 6.4.2. 源对目标的映射 26 6.4.3. Mapping功能设计 27 6.4.4. Mapping ...
高性能Python数据驱动的编程框架,用于Web Crawler,ETL,数据管道工作
腾讯云clickhouse性能调优实践 云数据库ClickHouse分析业务最佳实践 云数据库ClickHouse核心技术解析 ClickHouse Projections, ETL and more ClickHouse技术在手淘流量分析应用实践 Clickhouse玩转每天千亿数据 ...
异构数据集成采集交换...但ETLA工具涉及大量数据库操 作和数据转换,必须要有一个实用、安全、高效的安全审计模 块来保证进行性能监控和对操作者的行为审计。针对这种 情况,研究并实现了 ETLA的安全审计分析子系统。
经过对 Presto 和 Hive 的性能... 由于 Presto 的数据源具有完全解耦、高性能,以及对 ANSI SQL 的支持等特性,使得 Presto 在 ETL、实时数据计算、 Ad-Hoc 查询和实时数据流分析等多个业务场景中均能发挥重要的作用。