Anda di halaman 1dari 9

Overview

? When and how to use the lookup


? How to tuning lookup with high performance?
what is the look up transformation?
? Use lookup transformation in ur mapping to lookup data in a relational
table,view,synonym.
nformatica server !ueries the look up table based on the lookup ports in the
transformation.t compares the lookup transformation port values to lookup
table column values based on the look up condition.
What are the types of lookup
? connected lookup
? unconnected lookup
? "ynamic lookup
"i#erences between connected and unconnected lookup?
? $onnected lookup
? %eceives input values diectly from the pipe line.
? U can use a dynamic or static cache
? $ache includes all lookup columns used in the maping
? &upport user de'ned default values

? Unconnected lookup
? %eceives input values from the result of a lkp e(pression in a another
transformation.
? U can use a static cache
? $ache includes all lookup out put ports in the lookup condition and the
lookup)return port.
? "oes not support user de'end default values


Why use the lookup transformation
? *et a related value. +or e(ample, if your source table includes employee
", but you want to include the employee name in your target table to make
your summary data easier to read.
,erform a calculation. -any normali.ed tables include values used in a
calculation, such as gross sales per invoice or sales ta(, but not the
calculated value /such as net sales0.
Update slowly changing dimension tables. 1ou can use a 2ookup
transformation to determine whether records already e(ist in the target.
what is meant by lookup caches?
? 3he informatica server builds a cache in memory when it processes the
'rst row af a data in a cached look up transformation.t allocates memory for
the cache based on the amount u con'gure in the transformation or session
properties.3he informatica server stores condition values in the inde( cache
and output values in the data cache.
How 2ookup $ache works
? 3here are two types of cache memory ,inde( and data cache.
? 4ll port values from the lookup table where the port is part of the lookup
condition are loaded into inde( cache.
? 3he data cache contains all ports values from the lookup table that are
not in the lookup condition and that are speci'ed as 5out put 6 ports.
? 4fter the cache is loaded , values from the lookup input port/s0 that are
part of the lookup condition are compared to the inde( cache ,
? upon a match the rows from the cache are include in the stream
What r the types of lookup caches?
? ,ersistent cache7 U can save the lookup cache 'les and reuse them the
ne(t time the informatica server processes a lookup transformation
con'gured to use the cache.
%ecache from database7 f the persistent cache is not synchroni.ed with he
lookup table,U can con'gure the lookup transformation to rebuild the lookup
cache.
&tatic cache7 U can con'gure a static or readonly cache for only lookup
table.8y default nformatica server creates a static cache.t caches the lookup
table and lookup values in the cache for each row that comes into the
transformation.when the lookup condition is true,the informatica server does
not update the cache while it prosesses the lookup transformation.
"ynamic cache7 f u want to cache the target table and insert new rows into
cache and the target,u can create a look up transformation to use dynamic
cache.3he informatica server dynamically inerts data to the target table.
shared cache7 U can share the lookup cache between multiple transactions.U
can share unnamed cache between transformations inthe same maping.
"i#erence between static cache and dynamic cache
? &tatic cache
? U can not insert or update the cache
? 3he informatic server returns a value from the lookup table or cache
when the condition is true.When the condition is not true, informatica server
returns the default value for connected transformations and null for
unconnected transformations.
? "ynamic cache
? U can insert rows into the cache as u pass to the target
? 3he informatic server inserts rows into cache when the condition is
false.3his indicates that the the row is not in the cache or target table. U can
pass these rows to the target table
What is the di#erence between a cached 9 uncached lookup?
? while using a cache lookup, a pre:fetch is performed on the lookup table,
before the mapping is e(ecuted.
Uncached lookup is like any normal look up.
? +or a cached lookup the entire rows /lookup table0 will be put in the
bu#er, and compare these rows with the incomming rows.
where as uncached lookup, for every input row the lookup will !uery the
lookup table and get the rows.
n case of use of dynamic lookup cache in a lookup transformation, the lookup
cache gets updated 'rst and then the target table. What happens if the
target table re;ects a row after it is updated in the $ache?
? 1ou wont get an error if the row is inserted in dynamic cache and it was
re;ected in the target table.
8ut remember we are refering to the same table in dynamic chache, so if it is
inserted in the chache then it must be inserted in the target.
n mapping we have to handle to synch the chache with the target.
informatica wont do this.
3here will be new port row by default if we chose dynamic chache, if it is <=<
indicates informatica wont update)insert the row in the chache.
if it is <>< then informatica inserts the row in the chache.
if it is <?< then informatica update the row in the chache.
based on this port we have to synch the target.
? when do we need lookup s!l override?
? >. 3o use more than one look up in the mapping
?. 1ou can use &@2 override for 'ltering records in the cache to remove
unwanted data
how to use the shared cache feature in look up transformation
? nstead of creating multiple cache 'les informatica server creates only
one cache 'le for all the lookups used with in the mapping which selected as
a shared cache option.


3unning the lookup
? 4s we have to heavily use the 2ookup 3ransformation on our mappings
for populating data to the "ata ,latform, ,lease use the following tips when
you con'gure the 2ookup 3ransformations on your mappings7
? >.4dd an inde(
? 4dd an inde( to the columns used in a lookup condition . 3his is
important for very large lookup tables. e.g. $%A43A B"AC
"CD2E,D"D81D%A+A%AB$A OB 4$$OUB3&/%A+, 8E0 3482A&,4$A
"434DB"ACA&F
? ?."elete unused ports
? f you are certain the mapping does not use a lookup port, you can
delete it from the transformation. 3his reduces the amount of memory that
nfromatica &erver uses to run the session.
? G. %educe the number of rows
? %educe the number of rows included in the cache by using the 2ookup
&@2 override to add a WHA%A clause to the default &@2 statement.
? H. Override the O%"A% 81
? Override the O%"A% 81 statement for cached lookups. 8y "efault, the
nformatica &ever generates an O%"A% 81 statement for a cached lookup
that contains all lookup ports. 3o increase performance, you can suppress the
default O%"A% 81 statement and enter an override O%"A% 81 statement that
contains the condition ports in the same order they appeared in the 2ookup
condition. ,lace a comment notation after the O%"A% 81 statement, such as
two dashes I::I. When you place a comment notation after the O%"A% 81
statement, you suppress the default O%"A% 81 statement that nformatica
&erver generates
? J. "etermine $ache %e!uirements
? "etermine $ache %e!uirements for item >G:2ookup "ata $ache &i.e
and item >H:2ookup inde( $ache &i.e in the ,roperties tab of the 2ookup
3ransformation. f the supplied data or inde( cache is not large enough to
store the data or inde(es in memory, the nformatica &erver creates a
temporary 'le in the 'le system to store the additional data, then pages to
that 'le as it reads and processes source data. Aach time the nformatica
&erver pages to the temporary 'le, performance slows. +or details on
calculating the inde( and data cache for 2ookup transformation. see rhw on
line help Icaches, calculating 2ookup data cacheI and Icaches, calculating
2ookup inde( cacheI
? K. %emove the inde(es in target table
? %emove those inde(es on the "ata ,latform target tables that are not
relevant to our mappings.4s those non:relevant inde(es will cause the Oracle
&erver more e#ort to update the inde(es after an update or insert operation.
? %eference93hank you
? nformatica ,ower$enter level > "eveloper &tudent *uide
? http7))www.geekinterview.com
? http7))nattyneat.itpub.net)post)JHLG)?GLGL=