informatica powercenter development best practices

Upload: raffaella-dangelo

Post on 02-Jun-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/10/2019 Informatica PowerCenter Development Best Practices

    1/4

    Informatica PowerCenter

    Development Best PracticesInformatica PowerCenter Development Best Practices

    1. Lookup - Performance considerationsWhat is a lookup transformation? It is just not another transformation thatfetches you data to look up against source data. !ookup is an important anduseful transformation when used effectively. If used improperly" performanceof your mapping will #e severely impaired.

    !et us see the different scenarios where you can face pro#lems with !ookupand also how to tackle them.

    1.1. Unwanted columnsBy default" when you create a lookup on a ta#le" PowerCenter gives you all thecolumns in the ta#le. If not all the columns are re$uired for the lookupcondition or return" delete the unwanted columns from the transformations.By not removing the unwanted columns" the cache si%e will increase.1.2. Size of the source versus size of lookup!et us say" you have &' rows in the source and one of the columns has to #echecked against a #ig ta#le (& million rows). *hen PowerCenter #uilds thecache for the lookup ta#le and then checks the &' source rows against thecache. It takes more time to #uild the cache of & million rows than going to thedata#ase &' times and lookup against the ta#le directly.+se uncached lookup instead of #uilding the static cache" as the num#er ofsource rows is $uite less than that of the lookup.

    1.3. J!" instead of LookupIn the same conte,t as a#ove" if the !ookup transformation is after the source$ualifier and there is no active transformation in-#etween" you can as well gofor the /! over ride of source $ualifier and join traditionally to the lookupta#le using data#ase joins" if #oth the ta#les are in the same data#ase andschema.

    1.#. $onditional call of lookupInstead of going for connected lookups with filters for a conditional lookupcall" go for unconnected lookup. Is the single column return #othering forthis? 0o ahead and change the /! override to concatenate the re$uiredcolumns into one #ig column. Break them at the calling side into individual

    columns again.

    1.%. S&L 'uer(1ind the e,ecution plan of the !ookup /! and see if you can add someinde,es or hints to the $uery to make it fetch data faster. 2ou may have to takethe help of a data#ase developer to accomplish this if you" yourself are not a/!er.

    1.). !ncrease cacheIf none of the a#ove options provide performance enhancements" then thepro#lem may lie with the cache. *he cache that you assigned for the lookup isnot sufficient to hold the data or inde, of the lookup. Whatever data thatdoesn3t fit into the cache is spilt into the cache files designated in

    4P5CacheDir. When the PowerCenter doesn3t find the data you are lookingfor in the cache" it swaps the data from the file to the cache and keeps doingthis until the data is found. *his is $uite e,pensive #eing that this type of

  • 8/10/2019 Informatica PowerCenter Development Best Practices

    2/4

    operation is very I67 intense. *o stop this issue from occurring" increase thesi%e of the cache so the entire data set resides in memory. When increasing thecache you also have to #e aware of the system constraints. If your cache si%e isgreater than the resources availa#le" the session will fail due to the lack ofresources.

    1.*. $achefile file-s(stemIn many cases" if you have cache directory in a different file-system than thatof the hosting server" the cache file piling up may take time and result inlatency. o with the help of your system administrator try to look into thisaspect as well.

    1.+. Useful cache utilitiesIf the same lookup /! is #eing used #y another lookup" then shared cache ora reusa#le lookup should #e used. lso" if you have a ta#le where the data isnot changed often" you can use the persist cache option to #uild the cacheonce and use it many times #y consecutive flows.

    2. ,orkflow performance asic considerations*hough performance tuning has #een the most feared part of development" itis the easiest" if the intricacies are known. With the newer and newer versionsof PowerCenter" there is added fle,i#ility for the developer to #uild #etterperformingworkflows. *he major #locks for performance are the design of themapping" /! tuning if data#ases are involved.8egarding the design of the mapping" I have few #asic considerations to #emade. Please note that these are not any rules-of-thum#" #ut will make you actsensi#ly in different scenarios.

    &. I would always suggest you to think twice #efore using an +pdatetrategy" though it adds a certain level of fle,i#ility in the mapping. Ifyou have a straight-through mapping which takes data from source and

    directly inserts all the records into the target" you wouldn9t need anupdate strategy.

    :. +se a pre-/! delete statement if you wish to delete specific rows fromtarget #efore loading into the target. +se truncate option in the sessionproperties" if you wish to clean the ta#le #efore loading. I would avoid aseparate pipe-line in the mapping that runs #efore the load withupdate-strategy transformation.

    ;. 2ou have ; sources and ; targets with one-on-one mapping. If the loadis independent according to #usiness re$uirement" I would create ;different mappings and ; different session instances and they all run inparallel in my workflow after my

  • 8/10/2019 Informatica PowerCenter Development Best Practices

    3/4

    2.1. S&L tunin//! $ueries6actions occur in PowerCenter in one of the #elow ways. 8elational ource /ualifier !ookup /! 7verride tored Procedures 8elational *arget+sing the e,ecution plan to tune a $uery is the #est way to gain anunderstanding of how the data#ase will process the data. ome things to keepin mind when reading the e,ecution plan include E1ull *a#le cans arenot evilE" EInde,es are not always fastE" and

  • 8/10/2019 Informatica PowerCenter Development Best Practices

    4/4

    %. P $onnection oect platform independenceIf you have any files to #e read as source from Windows server when yourPowerCenter server is hosted on +GIH6!IG+H" then make use of 1*P userson the Windows server and use 1ile 8eader with 1*P Connection o#ject.*his connection o#ject can #e added as any other connection string. *his givesthe fle,i#ility of platform independence. *his will further reduce the overheadof having 5B mounts on to the Informatica #o,es.