You are on page 1of 34

What are the differences between Connected and Unconnected Lookup?

The differences are illustrated in the below table


Connected Lookup Unconnected Lookup
Connected lookup participates in dataflow and
receives input directly from the pipeline
Unconnected lookup receives input values from
the result of a LKP: expression in another
transformation
Connected lookup can use both dynamic and
static cache
Unconnected Lookup cache can NT be
dynamic
Connected lookup can return more than one
column value ! output port "
Unconnected Lookup can return only one
column value i#e# output port
Connected lookup caches all lookup columns
Unconnected lookup caches only the lookup
output ports in the lookup conditions and the
return port
$upports user%defined default values !i#e# value
to return when lookup conditions are not
satisfied"
&oes not support user defined default values

What is meant by active and passive transformation?
'n active transformation is the one that performs
any of the followin( actions:
)" Chan(e the number of rows between
transformation input and output# *xample: +ilter
transformation#
," Chan(e the transaction boundary by definin(
commit or rollback points#- example transaction
control transformation#
." Chan(e the row type- example Update strate(y is
active because it fla(s the rows for insert- delete-
update or re/ect#
n the other hand a passive transformation is the one which does not chan(e the number of rows that pass
throu(h it# *xample: *xpression transformation#
What is the difference between Router and Filter?
+ollowin( differences can be noted-
Router Filter
0outer transformation divides the incomin(
records into multiple (roups based on some
condition# $uch (roups can be mutually
inclusive !&ifferent (roups may contain same
record"
+ilter transformation restricts or blocks the
incomin( record set based on one (iven
condition#
0outer transformation itself does not block any
record# 1f a certain record does not match any of
the routin( conditions- the record is routed to
default (roup
+ilter transformation does not have a default
(roup# 1f one record does not match filter
condition- the record is blocked
0outer acts like C'$*## 23*N statement in
$4L !r $witch!"## Case statement in C"
+ilter acts like 23*0* condition is $4L#

What can we do to improve the performance of Informatica Areator !ransformation?
'((re(ator performance improves dramatically if records are sorted before passin( to the a((re(ator and
5sorted input5 option under a((re(ator properties is checked# The record set should be sorted on those
columns that are used in 6roup 7y operation#
1t is often a (ood idea to sort the record set in database level !click here to see why8" e#(# inside a source
9ualifier transformation- unless there is a chance that already sorted records from source 9ualifier can
a(ain become unsorted before reachin( a((re(ator
:ou may also read this article to know how to tune the performance of a((re(ator transformation
What are the different lookup cache"s#?
1nformatica Lookups can be cached or un%cached !No cache"# 'nd Cached lookup can be either static or
dynamic# ' static cache is one which does not modify the cache once it is built and it remains same
durin( the session run# n the other hand- ' dynamic cache is refreshed durin( the session run by
insertin( or updatin( the records in cache based on the incomin( source data# 7y default- 1nformatica
cache is static cache#
' lookup cache can also be divided as persistent or non$persistent based on whether 1nformatica retains
the cache even after the completion of session run or deletes it
%ow can we update a record in taret table without usin Update stratey?
' tar(et table can be updated without usin( ;Update $trate(y;# +or this- we need to define the key in the
tar(et table in 1nformatica level and then we need to connect the key and the field we want to update in
the mappin( Tar(et# 1n the session level- we should set the tar(et property as 5Update as Update5 and
check the 5Update5 check%box#
Let;s assume we have a tar(et table 5Customer5 with fields as 5Customer 1&5- 5Customer Name5 and
5Customer 'ddress5# $uppose we want to update 5Customer 'ddress5 without an Update $trate(y# Then
we have to define 5Customer 1&5 as primary key in 1nformatica level and we will have to connect
Customer 1& and Customer 'ddress fields in the mappin(# 1f the session properties are set correctly as
described above- then the mappin( will only update the customer address field for all matchin( customer
1&s#
Under what condition selectin &orted Input in areator may fail the session?
1f the input data is not sorted correctly- the session will fail#
'lso if the input data is properly sorted- the session may fail if the sort order by ports and the
(roup by ports of the a((re(ator are not in the same order#
Why is &orter an Active !ransformation?
This is because we can select the 5distinct5 option in the sorter property#
2hen the $orter transformation is confi(ured to treat output rows as distinct- it assi(ns all ports as part of
the sort key# The 1nte(ration $ervice discards duplicate rows compared durin( the sort operation# The
number of 1nput 0ows will vary as compared with the utput rows and hence it is an 'ctive
transformation#
Is lookup an active or passive transformation?
+rom 1nformatica <x- Lookup transformation can be confi(ured as as 5'ctive5 transformation#
+ind out 3ow to confi(ure lookup as active transformation
3owever- in the older versions of 1nformatica- lookup is a passive transformation
What is the difference between &tatic and 'ynamic Lookup Cache?
2e can confi(ure a Lookup transformation to cache the underlyin( lookup table# 1n case of static or read%
only lookup cache the 1nte(ration $ervice caches the lookup table at the be(innin( of the session and does
not update the lookup cache while it processes the Lookup transformation#
1n case of dynamic lookup cache the 1nte(ration $ervice dynamically inserts or updates data in the lookup
cache and passes the data to the tar(et# The dynamic cache is synchroni=ed with the tar(et#
1n case you are wonderin( why do we need to make lookup cache dynamic- read this article on dynamic
lookup
What is the difference between &!() and A*(R! options in Workflow +onitor?
2hen we issue the $TP command on the executin( session task- the 1nte(ration $ervice stops readin(
data from source# 1t continues processin(- writin( and committin( the data to tar(ets# 1f the 1nte(ration
$ervice cannot finish processin( and committin( data- we can issue the abort command#
1n contrast '70T command has a timeout period of >? seconds# 1f the 1nte(ration $ervice cannot finish
processin( and committin( data within the timeout period- it kills the &T@ process and terminates the
session#
What are the new features of Informatica ,-. in developer level?
+rom a developer;s perspective- some of the new features in 1nformatica <#x are as follows:
Now Lookup can be confi(ured as an active transformation % it can return multiple rows on
successful match
Now you can write $4L override on un%cached lookup also# Previously you could do it only on
cached lookup
:ou can control the si=e of your session lo(# 1n a real%time environment you can control the
session lo( file si=e or time
&atabase deadlock resilience feature % this will ensure that your session does not immediately fail
if it encounters any database deadlock- it will now retry the operation a(ain# :ou can confi(ure number of
retry attempts#
%ow to 'elete duplicate row usin Informatica
Scenario 1: Duplicate rows are present in relational database
$uppose we have &uplicate records in $ource $ystem and we want to load only the uni9ue records in the
Tar(et $ystem eliminatin( the duplicate rows# 2hat will be the approach8
'ssumin( that the source system is a Relational 'atabase- to eliminate duplicate records- we can check
the 'istinctoption of the &ource /ualifier of the source table and load the tar(et accordin(ly#
'eletin duplicate rows 0 selectin distinct rows for FLA! FIL1 sources
1n the previous pa(e we saw how to choose distinct records from 0elational sources# Next we asked the
9uestion- how may we select the distinct records for +lat +ile sources8
3ere since the source system is a Flat File you will not be able to select the distinct option in the source
9ualifier as it will be disabled due to flat file source table# 3ence the next approach may be we use
a &orter !ransformation and check the'istinct option# 2hen we select the distinct option all the
columns will the selected as keys- in ascendin( order by default#
'eletin 'uplicate Record Usin Informatica Areator
ther ways to handle duplicate records in source batch run is to use an Areator !ransformation and
usin( the 2roup *y checkbox on the ports havin( duplicate occurrin( data# 3ere you can have the
flexibility to select the last or the first of the duplicate column value records#
There is yet another option to ensure duplicate records are not inserted in the tar(et# That is throu(h
&ynamic lookup cache# Usin( &ynamic Lookup Cache of the tar(et table and associatin( the input ports
with the lookup port and checkin( the 1nsert *lse Update option will help to eliminate the duplicate
records in source and hence loadin( uni9ue records in the tar(et#
+or more details check- &ynamic Lookup Cache
Loadin +ultiple !aret !ables *ased on Conditions
&cenario
$uppose we have some serial numbers in a flat file source# 2e want to load the serial numbers in two
tar(et files one containin( the *A*N serial numbers and the other file havin( the && ones#
Answer
'fter the $ource 4ualifier place a Router !ransformation# Create two 2roups namely 1314 and
(''- with filter conditions as:
@&!$*01'LBN-,"C? and @&!$*01'LBN-,"C)
### respectively# Then output the two (roups into two flat file tar(ets#
4ormali5er Related /uestions
&cenario 6
$uppose in our $ource Table we have data as (iven below:
$tudent Name @aths Life $cience Physical $cience
$am )?? D? E?
Fohn DG )?? EG
Tom E? )?? EG
2e want to load our Tar(et Table as:
$tudent Name $ub/ect Name @arks
$am @aths )??
$am Life $cience D?
$am Physical $cience E?
Fohn @aths DG
Fohn Life $cience )??
Fohn Physical $cience EG
Tom @aths E?
Tom Life $cience )??
Tom Physical $cience EG
&escribe your approach#
Answer
3ere to convert the 0ows to Columns we have to use the 4ormali5er !ransformation followed by an
*xpression Transformation to &ecode the column taken into consideration# +or more details on how the
mappin( is performed please visit 2orkin( with Normali=er
/uestion
Name the transformations which converts one to many rows i#e increases the iHp:oHp row count# 'lso what
is the name of its reverse transformation#
Answer
4ormali5er as well as Router Transformations are the 'ctive transformation which can increase the
number of input rows to output rows#
Aggregator Transformation performs the reverse action of Normalizer transformation.
&cenario 7
$uppose we have a source table and we want to load three tar(et tables based on source rows such that
first row moves to first tar(et table- secord row in second tar(et table- third row in third tar(et table-
fourth row a(ain in first tar(et table so on and so forth# &escribe your approach#
Answer
2e can clearly understand that we need a Router transformation to route or filter source data to the
three tar(et tables# Now the 9uestion is what will be the filter conditions# +irst of all we need
an 1.pression !ransformation where we have all the source table columns and alon( with that we have
another iHo port say se9Bnum- which is (ets se9uence numbers for each source row from the
port 4e.t3al of a &e8uence 2enerator start value 9 and increment by 6# Now the filter condition for
the three router (roups will be:
@&!$*4BNU@-."C) connected to )st tar(et table
@&!$*4BNU@-."C, connected to ,nd tar(et table
@&!$*4BNU@-."C? connected to .rd tar(et table
Loadin +ultiple Flat Files usin one mappin
&cenario
$uppose we have ten source flat files of same structure# 3ow can we load all the files in tar(et database in
a sin(le batch run usin( a sin(le mappin(#
Answer
'fter we create a mappin( to load data in tar(et database from flat files- next we move on to the session
property of the $ource 4ualifier# To load a set of source files we need to create a file say final#txt
containin( the source falt file names- ten files in our case and set the &ource filetype option as Indirect#
Next point this flat file final#txt fully 9ualified throu(h&ource file directory and &ource filename#
Areator !ransformation Related /uestions
%ow can we implement Areation operation without usin an Areator !ransformation in
Informatica?
Answer
2e will use the very basic concept of the 1.pression !ransformation that at a time we can access the
previous row data as well as the currently processed data in an expression transformation# 2hat we need
is simple $orter- *xpression and +ilter transformation to achieve a((re(ation at 1nformatica level#
+or detailed understandin( visit '((re(ation without '((re(ator
&cenario
$uppose in our $ource Table we have data as (iven below:
$tudent Name $ub/ect Name @arks
$am @aths )??
Tom @aths E?
$am Physical $cience E?
Fohn @aths DG
$am Life $cience D?
Fohn Life $cience )??
Fohn Physical $cience EG
Tom Life $cience )??
Tom Physical $cience EG
2e want to load our Tar(et Table as:
$tudent Name @aths Life $cience Physical $cience
$am )?? D? E?
Fohn DG )?? EG
Tom E? )?? EG
&escribe your approach#
Answer
3ere our scenario is to convert many rows to one rows- and the transformation which will help us to
achieve this isAreator#
ur @appin( will look like this:
2e will sort the source data based on $TU&*NTBN'@* ascendin( followed by $U7F*CT ascendin(#
Now based on $TU&*NTBN'@* in 2R(U) *: clause the followin( output sub/ect columns are
populated as
@'T3$: @'I!@'0K$- $U7F*CTC@aths"
L1+*B$C: @'I!@'0K$- $U7F*CTCLife $cience"
P3:B$C: @'I!@'0K$- $U7F*CTCPhysical $cience"
Revisitin &ource /ualifier !ransformation
What is a &ource /ualifier? What are the tasks we can perform usin a &/ and why it is an
AC!I31 transformation?
Ans- ' &ource /ualifier is an 'ctive and Connected 1nformatica transformation that reads the rows from
a relational database or flat file source#
2e can confi(ure the &/ to ;oin J7oth I441R as well as (U!1R <(I4K data ori(inatin( from
the same source database#
2e can use a source filter to reduce the number of rows the 1nte(ration $ervice 9ueries#
2e can specify a number for sorted ports and the 1nte(ration $ervice adds an 0&*0 7: clause
to the default $4L 9uery#
2e can choose &elect 'istinctoption for relational databases and the 1nte(ration $ervice adds a
$*L*CT &1$T1NCT clause to the default $4L 9uery#
'lso we can write Custom0Used 'efined &/L 9uery which will override the default 9uery in the
$4 by chan(in( the default settin(s of the transformation properties#
'lso we have the option to write )re as well as )ost &/L statements to be executed before and
after the $4 9uery in the source database#
$ince the transformation provides us with the property &elect 'istinct- when the 1nte(ration $ervice adds
a $*L*CT &1$T1NCT clause to the default $4L 9uery- which in turn affects the number of rows returned
by the &atabase to the 1nte(ration $ervice and hence it is an 'ctive transformation#
What happens to a mappin if we alter the datatypes between &ource and its correspondin &ource
/ualifier?
Ans- The $ource 4ualifier transformation displays the transformation datatypes# The transformation
datatypes determine how the source database binds data when the 1nte(ration $ervice reads it#
Now if we alter the datatypes in the $ource 4ualifier transformation or the datatypes in the source
definition and &ource /ualifier transformation do not match= the &esi(ner marks the mappin as
invalid when we save it#
&uppose we have used the &elect 'istinct and the 4umber (f &orted )orts property in the &/ and
then we add Custom &/L /uery- 1.plain what will happen-
Ans- 2henever we add Custom $4L or $4L override 9uery it overrides the User%&efined Foin- $ource
+ilter- Number of $orted Ports- and $elect &istinct settin(s in the $ource 4ualifier transformation# 3ence
only the user defined $4L 4uery will be fired in the database and all the other options will be inored #
'escribe the situations where we will use the &ource Filter= &elect 'istinct and 4umber (f &orted
)orts properties of &ource /ualifier transformation-
Ans- &ource Filter option is used basically to reduce the number of rows the 1nte(ration $ervice 9ueries
so as to improve performance#
&elect 'istinct option is used when we want the 1nte(ration $ervice to select uni9ue values from a
source- filterin( out unnecessary data earlier in the data flow- which mi(ht improve performance#
4umber (f &orted )orts option is used when we want the source data to be in a sorted fashion so as to
use the same in some followin( transformations like '((re(ator or Foiner- those when confi(ured for
sorted input will improve the performance#
What will happen if the &1L1C! list C(LU+4& in the Custom override &/L /uery and the
(U!)U! )(R!& order in &/ transformation do not match?
Ans- @ismatch or Chan(in( the order of the list of selected columns to that of the connected
transformation output ports may result is session failure-
What happens if in the &ource Filter property of &/ transformation we include keyword W%1R1
say= W%1R1 CU&!(+1R&-CU&!(+1R>I' ? 6999-
Ans- 2e use source filter to reduce the number of source records# 1f we include the strin( W%1R1 in the
source filter- the 1nte(ration $ervice fails the session#
'escribe the scenarios where we o for <oiner transformation instead of &ource /ualifier
transformation-
Ans- 2hile /oinin( $ource &ata of heteroeneous sources as well as to /oin flat files we will use the
Foiner transformation# Use the Foiner transformation when we need to /oin the followin( types of sources:
Foin data from different 0elational &atabases#
Foin data from different +lat +iles#
Foin relational sources and flat files#
What is the ma.imum number we can use in 4umber (f &orted )orts for &ybase source system-
Ans- $ybase supports a maximum of 6@ columns in an 0&*0 7: clause# $o if the source is $ybase- do
not sort more than )> columns#
&uppose we have two &ource /ualifier transformations &/6 and &/7 connected to !aret tables
!2!6 and !2!7 respectively- %ow do you ensure !2!7 is loaded after !2!6?
Ans- 1f we have multiple $ource 4ualifier transformations connected to multiple tar(ets- we can desi(nate
the order in which the 1nte(ration $ervice loads data into the tar(ets#
1n the @appin( &esi(ner- 2e need to confi(ure the !aret Load )lan based on the $ource 4ualifier
transformations in a mappin( to specify the re9uired loadin( order#
&uppose we have a &ource /ualifier transformation that populates two taret tables- %ow do you
ensure !2!7 is loaded after !2!6?
Ans- 1n the 2orkflow @ana(er- we can Confi(ure Constraint based load orderin for a session# The
1nte(ration $ervice orders the tar(et load on a row%by%row basis# +or every row (enerated by an active
source- the 1nte(ration $ervice loads the correspondin( transformed row first to the primary key table-
then to the forei(n key table#
3ence if we have one $ource 4ualifier transformation that provides data for multiple tar(et tables havin(
primary and forei(n key relationships- we will (o for Constraint based load orderin(#
Revisitin Filter !ransformation
/6,- 2hat is a +ilter Transformation and why it is an 'ctive one8
Ans- ' Filter transformation is an Active and Connected transformation that can filter rows in a
mappin(#
nly the rows that meet the Filter Condition pass throu(h the +ilter transformation to the next
transformation in the pipeline# T0U* and +'L$* are the implicit return values from any filter condition
we set# 1f the filter condition evaluates to NULL- the row is assumed to be +'L$*#
The numeric e9uivalent of +'L$* is =ero !?" and any non%=ero value is the e9uivalent of T0U*#
's an AC!I31 transformation- the +ilter transformation may chan(e the number of rows passed throu(h
it# ' filter condition returns T0U* or +'L$* for each row that passes throu(h the transformation-
dependin( on whether a row meets the specified condition# nly rows that return T0U* pass throu(h this
transformation# &iscarded rows do not appear in the session lo( or re/ect files#
/79- 2hat is the difference between $ource 4ualifier transformations $ource +ilter to +ilter
transformation8
Ans-
$4 $ource +ilter +ilter Transformation
$ource 4ualifier
transformation filters rows
when read from a source#
+ilter transformation filters rows from
within a mappin(
$ource 4ualifier
transformation can only filter
rows from 0elational
$ources#
+ilter transformation filters rows
comin( from any type of source system
in the mappin( level#
$ource 4ualifier limits the
row set extracted from a
source#
+ilter transformation limits the row set
sent to a tar(et#
$ource 4ualifier reduces the
number of rows used
throu(hout the mappin( and
hence it provides better
performance#
To maximi=e session performance-
include the +ilter transformation as
close to the sources in the mappin( as
possible to filter out unwanted data
early in the flow of data from sources to
tar(ets#
The filter condition in the
$ource 4ualifier
transformation only uses
standard $4L as it runs in the
database#
+ilter Transformation can define a
condition usin( any statement or
transformation function that returns
either a T0U* or +'L$* value#
Revisitin <oiner !ransformation
/76- 2hat is a Foiner Transformation and why it is an 'ctive one8
Ans- ' <oiner is an Active and Connected transformation used to /oin source data from the same source
system or from two related hetero(eneous sources residin( in different locations or file systems#
The Foiner transformation /oins sources with at least one matchin( column# The Foiner transformation
uses a condition that matches one or more pairs of columns between the two sources#
The two input pipelines include a master pipeline and a detail pipeline or a master and a detail branch#
The master pipeline ends at the Foiner transformation- while the detail pipeline continues to the tar(et#
1n the Foiner transformation- we must confi(ure the transformation properties namely Foin Condition- Foin
Type and $orted 1nput option to improve 1nte(ration $ervice performance#
The /oin condition contains ports from both input sources that must match for the 1nte(ration $ervice to
/oin two rows# &ependin( on the type of /oin selected- the 1nte(ration $ervice either adds the row to the
result set or discards the row#
The Foiner transformation produces result sets based on the /oin type- condition- and input data sources#
3ence it is an 'ctive transformation#
/77- $tate the limitations where we cannot use Foiner in the mappin( pipeline#
Ans- The Foiner transformation accepts input from most transformations# 3owever- followin( are the
limitations:
Foiner transformation cannot be used when either of the input pipeline contains an Update
&trateytransformation#
Foiner transformation cannot be used if we connect a &e8uence 2enerator transformation
directly before the Foiner transformation#
/7A- ut of the two input pipelines of a /oiner- which one will you set as the master pipeline8
Ans- &urin( a session run- the 1nte(ration $ervice compares each row of the master source a(ainst the
detail source# The master and detail sources need to be confi(ured for optimal performance#
To improve performance for an Unsorted <oiner transformation- use the source with fewer rows as the
master source# The fewer uni9ue rows in the master- the fewer iterations of the /oin comparison occur-
which speeds the /oin process#
2hen the 1nte(ration $ervice processes an unsorted Foiner transformation- it reads all master rows before
it reads the detail rows# The 1nte(ration $ervice blocks the detail source while it caches rows from the
master source# nce the 1nte(ration $ervice reads and caches all master rows- it unblocks the detail
source and reads the detail rows#
To improve performance for a &orted <oiner transformation- use the source with fewer duplicate key
values as the master source#
2hen the 1nte(ration $ervice processes a sorted Foiner transformation- it blocks data based on the
mappin( confi(uration and it stores fewer rows in the cache- increasin( performance#
7lockin( lo(ic is possible if master and detail input to the Foiner transformation ori(inate from different
sources# therwise- it does not use blockin( lo(ic# 1nstead- it stores more rows in the cache#
/7B- 2hat are the different types of Foins available in Foiner Transformation8
Ans- 1n $4L- a /oin is a relational operator that combines data from multiple tables into a sin(le result set#
The Foiner transformation is similar to an $4L /oin except that data can ori(inate from different types of
sources#
The Foiner transformation supports the followin( types of ;oins :
4ormal
+aster (uter
'etail (uter
Full (uter
4oteC ' normal or master outer /oin performs faster than a full outer or detail outer /oin#
/7D- &efine the various Foin Types of Foiner Transformation#
Ans-
1n a normal ;oin - the 1nte(ration $ervice discards all rows of data from the master and detail
source that do not match- based on the /oin condition#
' master outer ;oin keeps all rows of data from the detail source and the matchin( rows from
the master source# 1t discards the unmatched rows from the master source#
' detail outer /oin keeps all rows of data from the master source and the matchin( rows from the
detail source# 1t discards the unmatched rows from the detail source#
' full outer /oin keeps all rows of data from both the master and detail sources#
/7@- &escribe the impact of number of /oin conditions and /oin order in a Foiner Transformation#
Ans- 2e can define one or more conditions based on e8uality between the specified master and detail
sources# 7oth ports in a condition must have the same datatype#
1f we need to use two ports in the /oin condition with non%matchin( datatypes we must convert the
datatypes so that they match# The &esi(ner validates datatypes in a /oin condition#
Additional ports in the /oin condition increases the time necessary to /oin two sources#
The order of the ports in the /oin condition can impact the performance of the Foiner transformation# 1f we
use multiple ports in the /oin condition- the 1nte(ration $ervice compares the ports in the order we
specified#
4(!1C nly e9uality operator is available in /oiner /oin condition#
/7E- 3ow does Foiner transformation treat NULL value matchin(#
Ans- The Foiner transformation does not match null values#
+or example- if both *@PB1&) and *@PB1&, contain a row with a null value- the 1nte(ration $ervice
does not consider them a match and does not /oin the two rows#
To /oin rows with null values- replace null input with default values in the Ports tab of the /oiner- and
then /oin on the default values#
4oteC 1f a result set includes fields that do not contain data in either of the sources- the Foiner
transformation populates the empty fields with null values# 1f we know that a field will return a NULL
and we do not want to insert NULLs in the tar(et- set a default value on the Ports tab for the
correspondin( port#
/7F- $uppose we confi(ure $orter transformations in the master and detail pipelines with the followin(
sorted ports in order: 1T*@BN- 1T*@BN'@*- P01C*#
2hen we confi(ure the /oin condition- what are the (uidelines we need to follow to maintain the sort
order8
Ans- 1f we have sorted both the master and detail pipelines in order of the ports say 1T*@BN-
1T*@BN'@* and P01C* we must ensure that:
Use 1T*@BN in the +irst Foin Condition#
1f we add a $econd Foin Condition- we must use 1T*@BN'@*#
1f we want to use P01C* as a Foin Condition apart from 1T*@BN- we must also use
1T*@BN'@* in the $econd Foin Condition#
1f we skip 1T*@BN'@* and /oin on 1T*@BN and P01C*- we will lose the input sort
order and the 1nte(ration $ervice fails the session#
/7,- 2hat are the transformations that cannot be placed between the sort ori(in and the Foiner
transformation so that we do not lose the input sort order#
Ans- The best option is to place the Foiner transformation directly after the sort ori(in to maintain sorted
data# 3owever do not place any of the followin( transformations between the sort ori(in and the Foiner
transformation:
Custom
Unsorted'((re(ator
Normali=er
0ank
Union transformation
I@L Parser transformation
I@L 6enerator transformation
@applet Jif it contains any one of the above mentioned transformationsK
/A9- $uppose we have the *@P table as our source# 1n the tar(et we want to view those employees whose
salary is (reater than or e9ual to the avera(e salary for their departments# &escribe your mappin(
approach#
Ans- ur @appin( will look like this:
ahrefC5http:HHpn(#dwbiconcepts#comHima(esHtutorialHinfoBinterviewHinfoBinterview)?#pn(5
To start with the mappin( we need the followin( transformations:
'fter the $ource 9ualifier of the *@P table place a &orter !ransformation # $ort based
on '1)!4(port#
Next we place a &orted Areator !ransformation# 3ere we will find out the A31RA21
&ALAR: for each !60UP 7:"'1)!4(#
2hen we perform this a((re(ation- we lose the data for individual employees#
To maintain employee data- we must pass a branch of the pipeline to the '((re(ator Transformation and
pass a branch with the same sorted source data to the Foiner transformation to maintain the ori(inal data#
2hen we /oin both branches of the pipeline- we /oin the a((re(ated data with the ori(inal data#
$o next we need &orted <oiner !ransformation to /oin the sorted a((re(ated data with the ori(inal data-
based on'1)!4(# 3ere we will be takin( the a((re(ated pipeline as the @aster and ori(inal dataflow as
&etail Pipeline#
'fter that we need a Filter !ransformation to filter out the employees havin( salary less than avera(e
salary for their department#
+ilter Condition: &AL?GA32>&AL
Lastly we have the Tar(et table instance#
Revisitin &e8uence 2enerator !ransformation
/A6- 2hat is a $e9uence 6enerator Transformation8
Ans- ' &e8uence 2enerator transformation is a )assive and Connected transformation that (enerates
numeric values# 1t is used to create uni9ue primary key values- replace missin( primary keys- or cycle
throu(h a se9uential ran(e of numbers# This transformation by default contains (4L: !wo
(U!)U! ports namely CURR3AL and 41H!3AL# 2e cannot edit or delete these ports neither we
cannot add ports to this uni9ue transformation# 2e can create approximately two billion uni9ue numeric
values with the widest ran(e from ) to ,)LDLE.>LD#
/A7- &efine the Properties available in $e9uence 6enerator transformation in brief#
Ans-
$e9uence
6enerator
Properties
&escription
$tart Aalue $tart value of the (enerated se9uence that we want the
1nte(ration $ervice to use if we use the Cycle option# 1f
we select Cycle- the 1nte(ration $ervice cycles back to
this value when it reaches the end value# &efault is ?#
1ncrement 7y
&ifference between two consecutive values from the
N*ITA'L port#&efault is )#
*nd Aalue
@aximum value (enerated by $e96en# 'fter reachin(
this value the session will fail if the se9uence (enerator
is not confi(ured to cycle#&efault is ,)LDLE.>LD#
Current Aalue
Current value of the se9uence# *nter the value we want
the 1nte(ration $ervice to use as the first value in the
se9uence# &efault is )#
Cycle
1f selected- when the 1nte(ration $ervice reaches the
confi(ured end value for the se9uence- it wraps around
and starts the cycle a(ain- be(innin( with the
confi(ured $tart Aalue#
Number of
Cached
Aalues
Number of se9uential values the 1nte(ration $ervice
caches at a time# &efault value for a standard $e9uence
6enerator is ?# &efault value for a reusable $e9uence
6enerator is )-???#
0eset
0estarts the se9uence at the current value each time a
session runs#This option is disabled for reusable
$e9uence 6enerator transformations#
/AA- $uppose we have a source table populatin( two tar(et tables# 2e connect the N*ITA'L port of the
$e9uence 6enerator to the surro(ate keys of both the tar(et tables#
2ill the $urro(ate keys in both the tar(et tables be same8 1f not how can we flow the same se9uence
values in both of them#
Ans- 2hen we connect the 41H!3AL output port of the &e8uence 2enerator directly to the surro(ate
key columns of the tar(et tables- the &e8uence number will not be the same#
' block of se9uence numbers is sent to one tar(et tables surro(ate key column# The second tar(ets
receives a block of se9uence numbers from the $e9uence 6enerator transformation only after the first
tar(et table receives the block of se9uence numbers#
$uppose we have G rows comin( from the source- so the tar(ets will have the se9uence values as T6T)
!)-,-.-L-G" and T6T, !>-D-E-<-)?"# JTaken into consideration $tart Aalue ?- Current value ) and 1ncrement
by )#
Now suppose the re9uirement is like that we need to have the same surro(ate keys in both the tar(ets#
Then the easiest way to handle the situation is to put an 1.pression !ransformation in between the
$e9uence 6enerator and the Tar(et tables# The $e96en will pass uni9ue values to the expression
transformation- and then the rows are routed from the expression transformation to the tar(ets#
/AB- $uppose we have )?? records comin( from the source# Now for a tar(et column population we used
a $e9uence (enerator#
$uppose the Current Aalue is ? and *nd Aalue of $e9uence (enerator is set to E?# 2hat will happen8
Ans- 1nd 3alue is the maximum value the $e9uence 6enerator will (enerate# 'fter it reaches the *nd
value the session fails with the followin( error messa(e:
TTB))??< $e9uence 6enerator Transformation: verflow error#
+ailin( of session can be handled if the $e9uence 6enerator is confi(ured to Cycle throu(h the se9uence-
i#e# whenever the 1nte(ration $ervice reaches the confi(ured end value for the se9uence- it wraps around
and starts the cycle a(ain- be(innin( with the confi(ured $tart Aalue#
/AD- 2hat are the chan(es we observe when we promote a non resuable $e9uence 6enerator to a
resuable one8 'nd what happens if we set the Number of Cached Aalues to ? for a reusable
transformation8
Ans- 2hen we convert a non reusable se9uence (enerator to resuable one we observe that the 4umber of
Cached 3aluesis set to )??? by defaultM 'nd the Reset property is disabled#
2hen we try to set the 4umber of Cached 3alues property of a 0eusable $e9uence 6enerator to ? in the
Transformation &eveloper we encounter the followin( error messa(e:
!he number of cached values must be reater than 5ero for reusable se8uence transformation-
Revisitin Areator !ransformation
/A@- 2hat is an '((re(ator Transformation8
Ans- 'n a((re(ator is an 'ctive- Connected transformation which performs a((re(ate calculations
like A32- C(U4!- FIR&!-LA&!- +AH- +1'IA4- +I4- )1RC14!IL1- &!''13- &U+ and 3A
RIA4C1#
/AE- 3ow an *xpression Transformation differs from '((re(ator Transformation8
Ans- 'n *xpression Transformation performs calculation on a row$by$row basis# 'n '((re(ator
Transformation performs calculations on roups#
/AF- &oes an 1nformatica Transformation support only '((re(ate expressions8
Ans- 'part from a((re(ate expressions 1nformatica '((re(ator also supports non%a((re(ate expressions
and conditional clauses#
/A,- 3ow does '((re(ator Transformation handle NULL values8
Ans- 7y default- the a((re(ator transformation treats null values as NULL in a((re(ate functions# 7ut we
can specify to treat null values in a((re(ate functions as NULL or =ero#
/B9- 2hat is 1ncremental '((re(ation8
Ans- 2e can enable the session option- 1ncremental '((re(ation for a session that includes an '((re(ator
Transformation# 2hen the 1nte(ration $ervice performs incremental a((re(ation- it actually passes
chan(ed source data throu(h the mappin( and uses the historical cache data to perform a((re(ate
calculations incrementally#
+or reference check 1mplementin( 1nformatica 1ncremental '((re(ation
/B6- 2hat are the performance considerations when workin( with '((re(ator Transformation8
Ans-
+ilter the unnecessary data before a((re(atin( it# Place a +ilter transformation in the mappin(
before the '((re(ator transformation to reduce unnecessary a((re(ation#
1mprove performance by connectin( only the necessary inputHoutput ports to subse9uent
transformations- thereby reducin( the si=e of the data cache#
Use $orted input which reduces the amount of data cached and improves session performance#
/B7- 2hat differs when we choose $orted 1nput for '((re(ator Transformation8
Ans- 1nte(ration $ervice creates the index and data caches files in memory to process the '((re(ator
transformation# 1f the 1nte(ration $ervice re9uires more space as allocated for the index and data cache
si=es in the transformation properties- it stores overflow values in cache files i#e# pa(in( to disk# ne way
to increase session performance is to increase the index and data cache si=es in the transformation
properties# 7ut when we check $orted 1nput the 1nte(ration $ervice uses memory to process an
'((re(ator transformation it does not use cache files#
/BA- Under what conditions selectin( $orted 1nput in a((re(ator will still not boost session performance8
Ans-
1ncremental '((re(ation- session option is enabled#
The a((re(ate expression contains nested a((re(ate functions#
$ource data is data driven#
/BB- Under what condition selectin( $orted 1nput in a((re(ator may fail the session8
Ans-
1f the input data is not sorted correctly- the session will fail#
'lso if the input data is properly sorted- the session may fail if the sort order by ports and the
(roup by ports of the a((re(ator are not in the same order#
/BD- $uppose we do not (roup by on any ports of the a((re(ator what will be the output#
Ans- 1f we do not (roup values- the 1nte(ration $ervice will return only the last row for the input rows#
/B@- 2hat is the expected value if the column in an a((re(ator transform is neither a (roup by nor an
a((re(ate expression8
Ans- 1nte(ration $ervice produces one row for each (roup based on the (roup by ports# The columns
which are neither part of the key nor a((re(ate expression will return the correspondin( value of last
record of the (roup received# 3owever- if we specify particularly the +10$T function- the 1nte(ration
$ervice then returns the value of the specified first row of the (roup# $o default is the LA&! function#
/BE- 6ive one example for each of Conditional '((re(ation- Non%'((re(ate expression and Nested
'((re(ation#
Ans-
Use conditional clauses in the a((re(ate expression to reduce the number of rows used in the a((re(ation#
The conditional clause can be any clause that evaluates to T0U* or +'L$*#
$U@! $'L'0:- F7 C CL*0K "
Use non%a((re(ate expressions in (roup by ports to modify or replace (roups#
11+! P0&UCT C 7rown 7read- 7read- P0&UCT "
The expression can also include one a((re(ate function within another a((re(ate function- such as:
@'I! CUNT! P0&UCT ""
Revisitin Rank !ransformation
/BF- 2hat is a 0ank Transform8
Ans- 0ank is an 'ctive Connected 1nformatica transformation used to select a set of top or bottom values
of data#
/B,- 3ow does a 0ank Transform differ from '((re(ator Transform functions @'I and @1N8
Ans- Like the '((re(ator transformation- the 0ank transformation lets us (roup information# The 0ank
Transform allows us to select a (roup of top or bottom values- not /ust one value as in case of '((re(ator
@'I- @1N functions#
/D9- 2hat is a 0'NK port and 0'NK1N&*I8
Ans- 0ank port is an inputHoutput port use to specify the column for which we want to rank the source
values# 7y default 1nformatica creates an output port 0'NK1N&*I for each 0ank transformation# 1t
stores the rankin( position for each row in a (roup#
/D6- 3ow can you (et ranks based on different (roups8
Ans- 0ank transformation lets us (roup information# 2e can confi(ure one of its inputHoutput ports as a
(roup by port# +or each uni9ue value in the (roup port- the transformation creates a (roup of rows fallin(
within the rank definition !top or bottom- and a particular number in each rank"#
/D7- 2hat happens if two rank values match8
Ans- 1f two rank values match- they receive the same value in the rank index and the transformation skips
the next value#
/DA- 2hat are the restrictions of 0ank Transformation8
Ans-
2e can connect ports from only one transformation to the 0ank transformation#
2e can select the top or bottom rank#
2e need to select the Number of records in each rank#
2e can desi(nate only one 0ank port in a 0ank transformation#
/DB- 3ow does a 0ank Cache works8
Ans- &urin( a session- the 1nte(ration $ervice compares an input row with rows in the data cache# 1f the
input row out%ranks a cached row- the 1nte(ration $ervice replaces the cached row with the input row# 1f
we confi(ure the 0ank transformation to rank based on different (roups- the 1nte(ration $ervice ranks
incrementally for each (roup it finds# The 1nte(ration $ervice creates an index cache to stores the (roup
information and data cache for the row data#
/DD- 3ow does 0ank transformation handle strin( values8
Ans- 0ank transformation can return the strin(s at the top or the bottom of a session sort order# 2hen the
1nte(ration $ervice runs in Unicode mode- it sorts character data in the session usin( the selected sort
order associated with the Code Pa(e of 1$ which may be +rench- 6erman- etc# 2hen the 1nte(ration
$ervice runs in '$C11 mode- it i(nores this settin( and uses a binary sort order to sort character data#
Revisitin &orter !ransformation
/D@- 2hat is a $orter Transformation8
Ans- $orter Transformation is an 'ctive- Connected 1nformatica transformation used to sort data in
ascendin( or descendin( order accordin( to specified sort keys# The $orter transformation contains only
inputHoutput ports#
/DE- 2hy is $orter an 'ctive Transformation8
Ans- 2hen the $orter transformation is confi(ured to treat output rows as distinct- it assi(ns all ports as
part of the sort key# The 1nte(ration $ervice discards duplicate rows compared durin( the sort operation#
The number of 1nput 0ows will vary as compared with the utput rows and hence it is an 'ctive
transformation#
/DF- 3ow does $orter handle Case $ensitive sortin(8
Ans- The Case $ensitive property determines whether the 1nte(ration $ervice considers case when sortin(
data# 2hen we enable the Case $ensitive property- the 1nte(ration $ervice sorts uppercase characters
hi(her than lowercase characters#
/D,- 3ow does $orter handle NULL values8
Ans- 2e can confi(ure the way the $orter transformation treats null values# *nable the property Null
Treated Low if we want to treat null values as lower than any other value when it performs the sort
operation# &isable this option if we want the 1nte(ration $ervice to treat null values as hi(her than any
other value#
/@9- 3ow does a $orter Cache works8
Ans- The 1nte(ration $ervice passes all incomin( data into the $orter Cache before $orter transformation
performs the sort operation#
The 1nte(ration $ervice uses the $orter Cache $i=e property to determine the maximum amount of
memory it can allocate to perform the sort operation# 1f it cannot allocate enou(h memory- the 1nte(ration
$ervice fails the session# +or best performance- confi(ure $orter cache si=e with a value less than or e9ual
to the amount of available physical 0'@ on the 1nte(ration $ervice machine#
1f the amount of incomin( data is (reater than the amount of $orter cache si=e- the 1nte(ration $ervice
temporarily stores data in the $orter transformation work directory# The 1nte(ration $ervice re9uires disk
space of at least twice the amount of incomin( data when storin( data in the work directory#
Revisitin Union !ransformation
/@6- 2hat is a Union Transformation8
Ans- The Union transformation is an 'ctive- Connected non%blockin( multiple input (roup
transformation use to mer(e data from multiple pipelines or sources into one pipeline branch# $imilar to
the UN1N 'LL $4L statement- the Union transformation does not remove duplicate rows#
/@7- 2hat are the restrictions of Union Transformation8
Ans-
'll input (roups and the output (roup must have matchin( ports# The precision- datatype- and
scale must be identical across all (roups#
2e can create multiple input (roups- but only one default output (roup#
The Union transformation does not remove duplicate rows#
2e cannot use a $e9uence 6enerator or Update $trate(y transformation upstream from a Union
transformation#
The Union transformation does not (enerate transactions#
2eneral 8uestions
/@A- 2hat is the difference between $tatic and &ynamic Lookup Cache8
Ans- 2e can confi(ure a Lookup transformation to cache the correspondin( lookup table# 1n case of static
or read%only lookup cache the 1nte(ration $ervice caches the lookup table at the be(innin( of the session
and does not update the lookup cache while it processes the Lookup transformation#
1n case of dynamic lookup cache the 1nte(ration $ervice dynamically inserts or updates data in the lookup
cache and passes the data to the tar(et# The dynamic cache is synchroni=ed with the tar(et#
/@B- 2hat is Persistent Lookup Cache8
Ans- Lookups are cached by default in 1nformatica# Lookup cache can be either non%persistent or
persistent# The 1nte(ration $ervice saves or deletes lookup cache files after a successful session run based
on whether the Lookup cache is checked as persistent or not#
/@D- 2hat is the difference between 0eusable transformation and @applet8
Ans- 'ny 1nformatica Transformation created in the in the Transformation &eveloper or a non%reusable
promoted to reusable transformation from the mappin( desi(ner which can be used in multiple mappin(s
is known as 0eusable Transformation# 2hen we add a reusable transformation to a mappin(- we actually
add an instance of the transformation# $ince the instance of a reusable transformation is a pointer to that
transformation- when we chan(e the transformation in the Transformation &eveloper- its instances reflect
these chan(es#
' @applet is a reusable ob/ect created in the @applet &esi(ner which contains a set of
transformations and lets us reuse the transformation lo(ic in multiple mappin(s# ' @applet can contain
as many transformations as we need# Like a reusable transformation when we use a mapplet in a mappin(-
we use an instance of the mapplet and any chan(e made to the mapplet is inherited by all instances of the
mapplet#
/@@- 2hat are the transformations that are not supported in @applet8
Ans- Normali=er- Cobol sources- I@L sources- I@L $ource 4ualifier transformations- Tar(et
definitions- Pre% and post% session $tored Procedures- ther @applets#
/@E- 2hat are the *000 tables present in 1nformatica8
Ans-
)+1RR>'A!A% $tores data and metadata about a transformation row error and its
correspondin( source row#
)+1RR>+&2% $tores metadata about an error and the error messa(e#
)+1RR>&1&&% $tores metadata about the session#
)+1RR>!RA4&% $tores metadata about the source and transformation ports- such as name and
datatype- when a transformation error occurs#
/@F- 2hat is the difference between $TP and '70T8
Ans- 2hen we issue the $TP command on the executin( session task- the 1nte(ration $ervice stops
readin( data from source# 1t continues processin(- writin( and committin( the data to tar(ets# 1f the
1nte(ration $ervice cannot finish processin( and committin( data- we can issue the abort command#
1n contrast '70T command has a timeout period of >? seconds# 1f the 1nte(ration $ervice cannot finish
processin( and committin( data within the timeout period- it kills the &T@ process and terminates the
session#
/@,- Can we copy a session to new folder or new repository8
Ans- :es we can copy session to new folder or repository provided the correspondin( @appin( is already
in there#
/E9- 2hat type of /oin does Lookup support8
Ans- Lookup is /ust similar like $4L L*+T UT*0 F1N#

You might also like