`
DangDang0701
  • 浏览: 77242 次
  • 性别: Icon_minigender_2
  • 来自: 大连
社区版块
存档分类
最新评论

POWERCENTER 调优方法体会

    博客分类:
  • ETL
阅读更多
POWERCENTER 调优方法体会
调优方法体会:
    经过一段时间的摸索,个人认为调优一个很关键的问题在于session的调度上,尽管在单个mapping的设计上可以有所改进,但是改进效果是有限的。比如我一开始说的例子,实际上如果在server非常空闲,数据库也非常空闲的时候,跑起来也并不会非常慢,3个多小时。但是同样一个session一旦和其他session并发跑起来,争夺数据库以及机器的资源的时候。可能分配到很有限的资源,造成速度极慢,而各个session的重要性以及里面的数据量却是不一样的,平均分配资源显然不是一个好办法。
    一开始我认为尽量并发多个session肯定是最好的,大不了一个session跑完,资源释放掉,再分配给另一个session嘛,但实际情况并不是这样,我的观察结果是,一旦一个session跑起来以后,即使其他session已经跑完了,只剩下他自己在跑,他的速度也不会提高,会按照自己的速度继续下去。比如说上面提到的例子是所有session中最慢的,其余的都跑完了,他一开始得导入速度是几百条,以后就会一直按照这个速度进行下去,这样整个系统的抽取时间必然是增加到一个不可接受的程度。自我感觉,资源好像是在一开始分配好的,后来就不能改变了。
    对于单个mapping的调优,首先应该在设计上找些问题,一般来说速度慢的地方都会出现在joiner和aggregator组件中,尤其在数据量非常大的时候,这两个组件都会占用大量时间,因为他们先是读入数据,然后再经过处理,最后再一点点的输出。而像expression这样的组件就很好,基本上是边读边输出,再进目标表之前如果是个expression组件当然是再好不过,基本不会对效率有任何影响。当然,我的意思并不是说不使用joiner和aggregator组件,一个mapping里面不使用这两个组件的情况还是非常少的,只是说效率的瓶颈往往出现在他们身上,我们找mapping的问题的时候,有个方向。
    对于joiner和aggregator组件,一个常用的方法就是在session里面提高他们的cache,尽量减少io。对于aggregator还有一个if sorted的用法,在分组之前排好序,会提高aggregator的分组速度,尤其是对于iq,可以充分利用它的特点,在sql qualifier中先排好序,然后再经过aggregator组件,具体的使用方法大家就看infor的帮助吧。对这个排序的问题想多说两句,大家不要认为在进入任何aggregator组件前都要排序,这样就能提高性能,自此大量使用sorter组件,我的经验是要根据具体情况具体分析,有些数据量很小的根本没有进行排序的这个必要,试想一下,一件事情交给两个组件做,又多了一个处理过程,这样并不一定对效率有什么好处,而且又占用了server的资源。而针对大数据量进入aggregator的时候,加一个sorter组件,同时增加sorter的cache,还是有一定好处的,我的例子中就使用了这一招,还是有一定效果的。而同样一个针对小数据量的mapping,用了同样的招数,反而速度降低了。
    如果大家细心的话,可能会发现,对于单个mapping的优化很有可能要针对瓶颈组件增加大量的cache ,以及在session中提高dtm,这个时候我们的系统资源!!!一旦多个session并发跑起来,不可想象的情况就会出现,每一个session都要占用大量的虚拟内存,数据库资源,cpu。。。这时候机器不死掉就已经是万幸了,还指望跑得快?
    我们的矛盾出现了,我们非常希望提高每一个session的效率,但是我们有要求整体跑得快。。最终我认为还是应该在整体上考虑,也就是说通过调度顺序的调整来使每个session达到尽量高的效率,并发度不要太高,但是也不能完全串行跑。这个调整的过程是有趣的,由于我的环境问题,经过几天的测试,我找到适合自己环境的比较合理的一个并发度以及调度次序。使得每一个session跑起来的速度不会比资源完全空闲单独跑的时候慢,简单说就是串并比较合理,比完全串行要快,比完全并行也要快。这个过程我没有找到很好的办法,需要根据具体情况来调整了。“田忌赛马”的故事可能会给我们一点提示,呵呵!咱是我的调整情况时,尽量保持同时只有2-3个session并发,而且保证那些大数据量的session在启动的时候一定要能够分配到多的资源,不要在它启动的时候和多个session竞争资源,而对于跑得特别特别快的session完全可以让它一起并发作,反正占用不了多少时间,做完了就释放掉了。这也算是一个原则吧。
      
     总结一下吧:1。调优要着眼在整体调优。
                 2。单个mapping是否存在效率问题,最好是单独测试一下再作判断,不要在并发session的过程中盲目认为它存在效率问题。
                 3。对单个mapping的调优主要集中在joiner,aggregator组件上(大家再补充),调整相应的session中的cache会有一定效果,但并不绝对。
                 4。提高dtm有限度,而且会占用很多存储,最好是经过计算得到合理的dtm值。
                 5。session中搜集调试信息也可以帮助你判断单个mapping的瓶颈,同时可以加深对mapping运行过程的理解。日志的重要性就更不用说了,是我们发现瓶颈问题的最关键的信息。
                 6。个人认为整体session的调度次序是最重要的,串行不一定慢,并行也不一定快,串行和并行达到合理得"度"是很关键的。在提高了单个session的dtm、cache等等之后,适当减少并发度是必需的。
                 
     我说的都是一些个人体会,希望各位看官多多指正,多多拍转。也希望大家多和我交流:)
针对楼主的问题, 我要说两句, 强调一下,只针对问题
1,首先我要说你调研的深度,比较浅。 你在并行多个session的时候,你发现速度有时候反而比较慢,这实际上归根到底是机器资源的问题,但是 我想你肯定没玩过,一个session并发成多个线程跑,即parallel 的特性,前提是你购买了informatica集群的服务。那么举个例子,一个session并发6个线程,可以同时在3台机器跑,每台机器两个线程,那么以这种方式,想你应该没调研过
2,informatica这玩意,所以他对内存的要求比较高,特别是你在 使用sort,join ,aggreate,rank ,lookup 这组件时候,如果你分配的好,而且机器内存又够的情况下,性能提升很明显
3,在针对单个mapping调优的情况下,这其实取决一个开发人员对各个组件的认识深度上,就最简单的例子来说,join 其中的master跟detail两源数据的时候,master跟detail量的问题对配置session中cache有很重要的影响,这只是一个最小最简单的例子说明下问题
4,想必你对DTM的概念理解的很浅,建议你把英文文档翻出来,好好体会下意思,已经它对提供性能方面的意义
5, 我们在实际的一个项目中,使用了类似你的串并行想结合的方式,在实际开发运行中,实施难度比较大,既要集合数据量的问题,又要考虑机器cpu,men负载问题, 除非你做的是一个大型企业级项目,否则,这种方案 并不见得能有多大提高效率
分享到:
评论

相关推荐

    informatica软件powercenter详细教程

    PowerCenter的主要组件包括PowerCenter Designer、PowerCenter Repository、PowerCenter Server、PowerCenter Workflow Manager和PowerCenter Workflow Monitor。PowerCenter Designer用于创建和管理映射,映射是...

    powercenter 数据迁移

    【标题】:“PowerCenter 数据迁移”是数据集成领域中的一项关键技术,主要负责大规模的数据从源系统到目标系统的高效、准确迁移。Informatica PowerCenter作为业界领先的数据整合平台,被广泛应用于企业级的数据...

    PowerCenter入门示例

    PowerCenter是Informatica公司开发的一款强大的数据集成工具,主要用于企业级的数据仓库建设和数据集成项目。这个"PowerCenter入门示例"旨在为初学者提供一个快速理解并掌握PowerCenter基本操作的平台。通过经典示例...

    Informatica PowerCenter V8.5.1升级指南

    Informatica PowerCenter V8.5.1升级指南 Informatica PowerCenter 是一款功能强大的数据集成工具,旨在帮助企业实现数据集成、数据迁移和数据同步。随着技术的不断发展,Informatica PowerCenter 不断升级,以...

    Informatica PowerCenter 标准版

    Informatica PowerCenter 标准版是一种企业级数据集成平台,其主要目的是为企业提供统一的数据集成解决方案,支持多样化的业务系统和数据格式。通过这个平台,企业能够高效地获取、访问和集成各种来源的数据,并将...

    Linux on Power性能调优.pdf

    《Linux on Power性能调优》这篇文档主要探讨了如何在Power架构上优化Linux操作系统的性能。自2004年IBM推出OpenPower服务器产品系列以来,Linux操作系统在Power平台上得到了广泛应用,提供了更可靠、高效的计算环境...

    PowerCenter开发介绍

    【PowerCenter开发介绍】 本文将深入探讨Informatica PowerCenter的开发过程,旨在为那些希望学习和掌握这款强大数据集成工具的人员提供详实的指导。PowerCenter是Informatica公司的一款旗舰产品,它在数据集成领域...

    informatica powercenter 核心资料

    【标题】"informatica powercenter 核心资料"所涵盖的知识点主要集中在Informatica PowerCenter这一企业级数据集成工具上,它广泛应用于数据提取、转换和加载(ETL)过程。以下是对各部分的详细解释: 1. **PC851...

    solari power center test

    Solari Power Center Test是一项关键的IT系统功能测试,该测试针对的是一个名为Solari Power Center的设备或系统。在信息技术领域中,Power Center一词通常与数据处理和电力管理紧密相连。它可能是一个数据中心的...

    Informatica PowerCenter 8.1.1 培训资料介绍

    - **性能调优**:提供了关于如何优化PowerCenter运行效率的方法与技巧,包括但不限于Session分区介绍等。 - **中文资料**:包括了对Informatica公司的介绍、产品白皮书、成功案例分析等,便于非英语母语的学习者理解...

    Informatica PowerCenter介绍

    Informatica PowerCenter是一款强大的数据集成工具,专为企业级数据管理和分析设计。它是Informatica公司旗舰产品之一,旨在解决复杂的数据整合挑战,确保企业能够获得准确、及时和一致的数据,以支持决策制定和业务...

    Informatica PowerCenter 教程文档

    【Informatica PowerCenter 教程文档】 Informatica PowerCenter 是一款强大的数据集成工具,它帮助企业构建和维护数据仓库,实现数据的抽取、转换和加载(ETL)过程。本教程文档将详细介绍如何使用 Informatica ...

    Informatica PowerCenter Mapping 设计说明文档

    Informatica PowerCenter 是一款业界领先的数据集成平台,它为企业提供了一种高效的方法来收集、整合并交付高质量的数据。PowerCenter Mapping 设计是该平台的核心组件之一,主要用于定义数据转换规则和流程。映射...

    powercenter学习总结

    【标题】:“PowerCenter学习总结” 【正文】: Informatica PowerCenter是一款强大的数据集成工具,广泛应用于企业级数据仓库和商业智能项目。本学习总结将深入探讨PowerCenter的核心概念、安装过程、转换操作...

    Informatica PowerCenter V7.1_UNIX安装配置手册

    根据提供的文件内容,我们可以生成关于Informatica PowerCenter V7.1在UNIX平台下的安装配置手册相关知识点。 ***rmatica PowerCenter产品概述: Informatica PowerCenter是一个强大的集成平台,它提供了企业级的...

    Informatica powercenter 帮助文档

    《Informatica PowerCenter:全方位解析数据集成利器》 Informatica PowerCenter是一款强大的数据集成工具,广泛应用于企业级数据仓库建设、数据迁移、数据清洗及数据治理等场景。它以其高效、灵活和易用性,成为了...

    PowerCenter问题笔记

    【PowerCenter问题笔记】 在数据集成领域,Informatica PowerCenter是一款强大的ETL(Extract, Transform, Load)工具,用于从各种数据源抽取、转换和加载数据到目标系统。本笔记将详细阐述PowerCenter的一些关键...

    powercenter 错误查找集

    《PowerCenter错误查找集》是Informatica PowerCenter用户的一个重要参考资料,主要针对在数据抽取过程中遇到的各种错误代码和问题提供解决方案。Informatica PowerCenter是一款强大的数据集成工具,它广泛应用于...

    Informatica PowerCenter8.6 Installation Guide

    ### Informatica PowerCenter 8.6 安装指南知识点总结 #### 一、概述 《Informatica PowerCenter 8.6 Installation Guide》是Informatica公司为PowerCenter 8.6版本发布的官方安装手册。该手册提供了全面而详细的...

Global site tag (gtag.js) - Google Analytics