2_Top 50 Informatica Interview Questions With Answers
Post on 04-Jun-2018
228 Views
Preview:
Transcript
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 1/35
Top 50 Informatica Interview Questions with Answers
Welcome to the finest collection of Informatica Interview Questions with standard
answers that you can count on. Read and understand all the questions and their answers below and in the following pages to get a good grasp in Informatica.
What are the differences between Connected and UnconnectedLookup?
The differences are illustrated in the below table
Connected Lookup Unconnected Lookup
Connected lookup participates indataflow and receives input directly
from the pipeline
nconnected lookup receives inputvalues from the result of a !"#$
e%pression in another transformation
Connected lookup can use both dynamicand static cache
nconnected !ookup cache can &'T bedynamic
Connected lookup can return more than
one column value ( output port )
nconnected !ookup can return only
one column value i.e. output port
Connected lookup caches all lookup
columns
nconnected 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 following actions$
) Change the number of rows between transformation input and output. /%ample$ 0ilter
transformation.1) Change the transaction boundary by defining commit or rollback points.2 e%ample
transaction control transformation.
3) Change the row type2 e%ample pdate strategy is active because it flags the rows forinsert2 delete2 update or re4ect.
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 2/35
'n the other hand a passive transformation is the one which does not change the number
of rows that pass through it. /%ample$ /%pression transformation.
What is the difference between Router and Filter?
0ollowing differences can be noted2
Router Filter
Router transformation divides theincoming records into multiple groups
based on some condition. *uch groups
can be mutually inclusive (,ifferent
groups may contain same record)
0ilter transformation restricts or blocks
the incoming record set based on one
given condition.
Router transformation itself does not block any record. If a certain record doesnot match any of the routing conditions2
the record is routed to default group
0ilter transformation does not have adefault group. If one record does notmatch filter condition2 the record is
blocked
Router acts like C-*/.. W5/&
statement in *Q! ('r *witch().. Casestatement in C)
0ilter acts like W5/R/ condition is
*Q!.
What can we do to improve the performance of InformaticaAreator !ransformation?
-ggregator performance improves dramatically if records are sorted before passing to the
aggregator and 6sorted input6 option under aggregator properties is checked. The recordset should be sorted on those columns that are used in 7roup 8y operation.
It is often a good idea to sort the record set in database level (click here to see why9) e.g.
inside a source qualifier transformation2 unless there is a chance that already sorted
records from source qualifier can again become unsorted before reaching aggregator
:ou may also read this article to know how to tune the performance of aggregator
transformation
What are the different lookup cache"s#?
Informatica !ookups can be cached or un+cached (&o cache). -nd Cached lookup can be
either static or dynamic. - static cache is one which does not modify the cache once it is
1
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 3/35
built and it remains same during the session run. 'n the other hand2 - dnamic cache is
refreshed during the session run by inserting or updating the records in cache based on
the incoming source data. 8y default2 Informatica cache is static cache.
- lookup cache can also be divided as persistent or non!persistent based on whether
Informatica retains the cache even after the completion of session run or deletes it
$ow can we update a record in taret table without usin Updatestratey?
- target table can be updated without using ;pdate *trategy;. 0or this2 we need to define
the key in the target table in Informatica level and then we need to connect the key and
the field we want to update in the mapping Target. In the session level2 we should set thetarget property as 6pdate as pdate6 and check the 6pdate6 check+bo%.
!et;s assume we have a target table 6Customer6 with fields as 6Customer I,62 6Customer
&ame6 and 6Customer -ddress6. *uppose we want to update 6Customer -ddress6without an pdate *trategy. Then we have to define 6Customer I,6 as primary key inInformatica level and we will have to connect Customer I, and Customer -ddress fields
in the mapping. If the session properties are set correctly as described above2 then the
mapping will only update the customer address field for all matching customer I,s.
Under what condition selectin %orted Input in areator may failthe session?
• If the input data is not sorted correctly2 the session will fail.
• -lso if the input data is properly sorted2 the session may fail if the sort order by
ports and the group by ports of the aggregator are not in the same order.
Why is %orter an Active !ransformation?
This is because we can select the 6distinct6 option in the sorter property.
When the *orter transformation is configured to treat output rows as distinct2 it assigns all ports as part of the sort key. The Integration *ervice discards duplicate rows compared
during the sort operation. The number of Input Rows will vary as compared with the
'utput rows and hence it is an -ctive transformation.
Is lookup an active or passive transformation?
0rom Informatica <%2 !ookup transformation can be configured as as 6-ctive6
transformation.
0ind out 5ow to configure lookup as active transformation
5owever2 in the older versions of Informatica2 lookup is a passive transformation
3
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 4/35
What is the difference between %tatic and &ynamic Lookup Cache?
We can configure a !ookup transformation to cache the underlying lookup table. In case
of static or read+only lookup cache the Integration *ervice caches the lookup table at the beginning of the session and does not update the lookup cache while it processes the
!ookup transformation.
In case of dynamic lookup cache the Integration *ervice dynamically inserts or updates
data in the lookup cache and passes the data to the target. The dynamic cache issynchroni=ed with the target.
In case you are wondering why do we need to make lookup cache dynamic2 read this
article on dynamic lookup
What is the difference between %!'( and A)'R! options inWorkflow *onitor?
When we issue the *T'# command on the e%ecuting session task2 the Integration *ervice
stops reading data from source. It continues processing2 writing and committing the datato targets. If the Integration *ervice cannot finish processing and committing data2 we can
issue the abort command.
In contrast -8'RT command has a timeout period of >? seconds. If the Integration
*ervice cannot finish processing and committing data within the timeout period2 it killsthe ,T@ process and terminates the session.
What are the new features of Informatica +,- in developer level?
0rom a developer;s perspective2 some of the new features in Informatica <.% are as
follows$
• &ow !ookup can be configured as an active transformation + it can return
multiple rows on successful match
• &ow you can write *Q! override on un+cached lookup also. #reviously you could
do it only on cached lookup
• :ou can control the si=e of your session log. In a real+time environment you can
control the session log file si=e or time
• ,atabase deadlock resilience feature + this will ensure that your session does not
immediately fail if it encounters any database deadlock2 it will now retry theoperation again. :ou can configure number of retry attempts.
A
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 5/35
$ow to &elete duplicate row usin Informatica
"cenario #$ %uplicate rows are present in relational data&ase
*uppose we have ,uplicate records in *ource *ystem and we want to load only the
unique records in the Target *ystem eliminating the duplicate rows. What will be theapproach9
-ssuming that the source system is a Relational %ata&ase2 to eliminate duplicate
records2 we can check the %istinct option of the "ource Qualifier of the source table and
load the target accordingly.
&eletin duplicate rows . selectin distinct rows for FLA! FIL/sources
In the previous page we saw how to choose distinct records from Relational sources.
&e%t we asked the question2 how may we select the distinct records for 0lat 0ile sources9
5ere since the source system is a Flat File you will not be able to select the distinct
option in the source qualifier as it will be disabled due to flat file source table. 5ence thene%t approach may be we use a "orter Transformation and check the %istinct option.
When we select the distinct option all the columns will the selected as keys2 in ascendingorder by default.
B
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 6/35
&eletin &uplicate Record Usin Informatica Areator
'ther ways to handle duplicate records in source batch run is to use an A''re'ator
Transformation and using the (roup ) checkbo% on the ports having duplicate
occurring data. 5ere you can have the fle%ibility to select the last or the first of theduplicate column value records.
There is yet another option to ensure duplicate records are not inserted in the target. That
is through ,ynamic lookup cache. sing ,ynamic !ookup Cache of the target table andassociating the input ports with the lookup port and checking the Insert /lse pdateoption will help to eliminate the duplicate records in source and hence loading unique
records in the target.
0or more details check2 ,ynamic !ookup Cache
Loadin *ultiple !aret !ables )ased on Conditions
Scenario
*uppose we have some serial numbers in a flat file source. We want to load the serialnumbers in two target files one containing the //& serial numbers and the other file
having the ',, ones.
Answer
-fter the *ource Qualifier place a Router Transformation. Create two (roups namely
*+*, and -%%2 with filter conditions as$
>
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 7/35
MOD(SERIAL_NO,2)=0 and MOD(SERIAL_NO,2)=1
... respectively. Then output the two groups into two flat file targets.
0ormali1er Related 2uestions
Scenario 1
*uppose in our *ource Table we have data as given below$
*tudent &ame @aths !ife *cience #hysical *cience
*am ?? D? E?
Fohn DB ?? EB
Tom E? ?? EB
We want to load our Target Table as$
*tudent &ame *ub4ect &ame @arks
*am @aths ??
D
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 8/35
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 9/35
row in third target table2 fourth row again in first target table so on and so forth. ,escribe
your approach.
Answer
We can clearly understand that we need a Router transformation to route or filtersource data to the three target tables. &ow the question is what will be the filter
conditions. 0irst of all we need an */pression Transformation where we have all the
source table columns and along with that we have another iGo port say seqHnum2 which isgets sequence numbers for each source row from the port ,e/t+al of a "euence
(enerator start value 0 and increment & #. &ow the filter condition for the three
router groups will be$
• @',(*/QH&@23) connected to st target table
• @',(*/QH&@23)1 connected to 1nd target table
• @',(*/QH&@23)? connected to 3rd target table
Loadin *ultiple Flat Files usin one mappin
Scenario
*uppose we have ten source flat files of same structure. 5ow can we load all the files in
target database in a single batch run using a single mapping.
Answer
<
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 10/35
-fter we create a mapping to load data in target database from flat files2 ne%t we move on
to the session property of the *ource Qualifier. To load a set of source files we need to
create a file say final.t%t containing the source falt file names2 ten files in our case and setthe "ource filetpe option as Indirect. &e%t point this flat file final.t%t fully qualified
through "ource file director and "ource filename.
Areator !ransformation Related 2uestions
How can we implement Aggregation operation without using an Aggregator
Transformation in Informatica?
Answer
We will use the very basic concept of the */pression Transformation that at a time we
can access the previous row data as well as the currently processed data in an e%pression
transformation. What we need is simple *orter2 /%pression and 0ilter transformation toachieve aggregation at Informatica level.
0or detailed understanding visit -ggregation without -ggregator
Scenario
*uppose in our *ource Table we have data as given below$
?
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 11/35
*tudent &ame *ub4ect &ame @arks
*am @aths ??
Tom @aths E?
*am #hysical *cience E?
Fohn @aths DB
*am !ife *cience D?
Fohn !ife *cience ??
Fohn #hysical *cience EB
Tom !ife *cience ??
Tom #hysical *cience EB
We want to load our Target Table as$
*tudent &ame @aths !ife *cience #hysical *cience
*am ?? D? E?
Fohn DB ?? EB
Tom E? ?? EB
,escribe your approach.
Answer
5ere our scenario is to convert many rows to one rows2 and the transformation which will
help us to achieve this is A''re'ator.
'ur @apping will look like this$
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 12/35
We will sort the source data based on *T,/&TH&-@/ ascending followed by*8F/CT ascending.
&ow based on *T,/&TH&-@/ in (R-U1 )2 clause the following output sub4ectcolumns are populated as
• @-T5*$ @-J(@-R"*2 *8F/CT@aths)
• !I0/H*C$ @-J(@-R"*2 *8F/CT!ife *cience)
• #5:H*C$ @-J(@-R"*2 *8F/CT#hysical *cience)
1
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 13/35
Revisitin %ource 2ualifier !ransformation
What is a Source Qualifier? What are the tasks we can perform using a SQ and
why it is an ATI!" transformation?
Ans3 - "ource Qualifier is an -ctive and Connected Informatica transformation thatreads the rows from a relational database or flat file source.
•
We can configure the "Q to 4oin K8oth I,,*R as well as -UT*R -I,L dataoriginating from the same source database.
• We can use a source filter to reduce the number of rows the Integration *ervice
queries.
• We can specify a number for sorted ports and the Integration *ervice adds an
'R,/R 8: clause to the default *Q! query.
• We can choose "elect %istinctoption for relational databases and the Integration
*ervice adds a */!/CT ,I*TI&CT clause to the default *Q! query.
• -lso we can write Custom6Used %efined "QL query which will override the
default query in the *Q by changing the default settings of the transformation
properties.
•
-lso we have the option to write 1re as well as 1ost "QL statements to bee%ecuted before and after the *Q query in the source database.
*ince the transformation provides us with the property "elect %istinct2 when the
Integration *ervice adds a */!/CT ,I*TI&CT clause to the default *Q! query2 whichin turn affects the number of rows returned by the ,atabase to the Integration *ervice and
hence it is an -ctive transformation.
3
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 14/35
What happens to a mapping if we alter the datatypes #etween Source and its
corresponding Source Qualifier?
Ans3 The *ource Qualifier transformation displays the transformation datatypes. Thetransformation datatypes determine how the source database binds data when the
Integration *ervice reads it.
&ow if we alter the datatypes in the *ource Qualifier transformation or the datatpes in
the source definition and "ource Qualifier transformation do not match7 the,esigner marks the mappin' as invalid when we save it.
Suppose we ha$e used the Select %istinct and the &um#er 'f Sorted (orts
property in the SQ and then we add ustom SQ) Query* "+plain what
will happen*
Ans3 Whenever we add Custom *Q! or *Q! override query it overrides the ser+
,efined Foin2 *ource 0ilter2 &umber of *orted #orts2 and *elect ,istinct settings in the*ource Qualifier transformation. 5ence only the user defined *Q! Query will be fired inthe database and all the other options will &e i'nored .
%escri#e the situations where we will use the Source ,ilter- Select %istinct and
&um#er 'f Sorted (orts properties of Source Qualifier
transformation*
Ans3 "ource Filter option is used basically to reduce the number of rows the Integration*ervice queries so as to improve performance.
"elect %istinct option is used when we want the Integration *ervice to select uniquevalues from a source2 filtering out unnecessary data earlier in the data flow2 which mightimprove performance.
,um&er -f "orted 1orts option is used when we want the source data to be in a sorted
fashion so as to use the same in some following transformations like -ggregator or
Foiner2 those when configured for sorted input will improve the performance.
What will happen if the S")"T list ')./&S in the ustom o$erride SQ)
Query and the '.T(.T ('0TS order in SQ transformation do not
match?
Ans3 @ismatch or Changing the order of the list of selected columns to that of theconnected transformation output ports may result is session failure3
What happens if in the Source ,ilter property of SQ transformation we include
keyword WH"0" say- WH"0" .ST'/"0S*.ST'/"0I%
1333*
A
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 15/35
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 16/35
Suppose we ha$e a Source Qualifier transformation that populates two targetta#les* How do you ensure T5T2 is loaded after T5T1?
Ans3 In the Workflow @anager2 we can Configure Constraint &ased load orderin' for a
session. The Integration *ervice orders the target load on a row+by+row basis. 0or every
row generated by an active source2 the Integration *ervice loads the correspondingtransformed row first to the primary key table2 then to the foreign key table.
>
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 17/35
5ence if we have one *ource Qualifier transformation that provides data for multiple
target tables having primary and foreign key relationships2 we will go for Constraint
based load ordering.
Revisitin Filter !ransformation
Q#;3 What is a 0ilter Transformation and why it is an -ctive one9
Ans3 - Filter transformation is an Active and Connected transformation that can filter
rows in a mapping.
'nly the rows that meet the Filter Condition pass through the 0ilter transformation tothe ne%t transformation in the pipeline. TR/ and 0-!*/ are the implicit return values
from any filter condition we set. If the filter condition evaluates to &!!2 the row is
assumed to be 0-!*/.
The numeric equivalent of 0-!*/ is =ero (?) and any non+=ero value is the equivalent ofTR/.
-s an ACTI+* transformation2 the 0ilter transformation may change the number of rows
passed through it. - filter condition returns TR/ or 0-!*/ for each row that passes
through the transformation2 depending on whether a row meets the specified condition.'nly rows that return TR/ pass through this transformation. ,iscarded rows do not
appear in the session log or re4ect files.
D
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 18/35
Q<03 What is the difference between *ource Qualifier transformations *ource 0ilter to
0ilter transformation9
Ans3
*Q *ource 0ilter 0ilter Transformation
*ource Qualifier
transformation filtersrows when read from a
source.
0ilter transformation filters rowsfrom within a mapping
*ource Qualifiertransformation can only
filter rows from
Relational *ources.
0ilter transformation filters rowscoming from any type of source
system in the mapping level.
*ource Qualifier limitsthe row set e%tracted
from a source.
0ilter transformation limits the
row set sent to a target.
*ource Qualifier reduces
the number of rows used
throughout the mapping
and hence it provides better performance.
To ma%imi=e session performance2 include the 0ilter
transformation as close to the
sources in the mapping as
possible to filter out unwanteddata early in the flow of data
from sources to targets.
The filter condition inthe *ource Qualifier
transformation only uses
standard *Q! as it runsin the database.
0ilter Transformation can definea condition using any statement
or transformation function that
returns either a TR/ or 0-!*/value.
Revisitin 3oiner !ransformation
Q<#3 What is a Foiner Transformation and why it is an -ctive one9
Ans3 - oiner is an Active and Connected transformation used to 4oin source data fromthe same source system or from two related heterogeneous sources residing in different
locations or file systems.
E
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 19/35
The Foiner transformation 4oins sources with at least one matching 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 transformation2 while the detail pipeline continues to the target.
In the Foiner transformation2 we must configure the transformation properties namelyFoin Condition2 Foin Type and *orted Input option to improve Integration *ervice
performance.
The 4oin condition contains ports from both input sources that must match for the
Integration *ervice to 4oin two rows. ,epending on the type of 4oin selected2 theIntegration *ervice either adds the row to the result set or discards the row.
The Foiner transformation produces result sets based on the 4oin type2 condition2 andinput data sources. 5ence it is an -ctive transformation.
Q<<3 *tate the limitations where we cannot use Foiner in the mapping pipeline.
Ans3 The Foiner transformation accepts input from most transformations. 5owever2following are the limitations$
• Foiner transformation cannot be used when either of the input pipeline contains an
Update "trate' transformation.
• Foiner transformation cannot be used if we connect a "euence (enerator
transformation directly before the Foiner transformation.
Q<=3 'ut of the two input pipelines of a 4oiner2 which one will you set as the master
pipeline9
Ans3 ,uring a session run2 the Integration *ervice compares each row of the master
source against the detail source. The master and detail sources need to be configured for
optimal performance.
To improve performance for an Unsorted oiner transformation2 use the source with
fewer rows as the master source. The fewer unique rows in the master2 the fewer
iterations of the 4oin comparison occur2 which speeds the 4oin process.
When the Integration *ervice processes an unsorted Foiner transformation2 it reads all
master rows before it reads the detail rows. The Integration *ervice blocks the detail
source while it caches rows from the master source. 'nce the Integration *ervice readsand caches all master rows2 it unblocks the detail source and reads the detail rows.
<
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 20/35
To improve performance for a "orted oiner transformation2 use the source with fewer
duplicate ke values as the master source.
When the Integration *ervice processes a sorted Foiner transformation2 it blocks data based on the mapping configuration and it stores fewer rows in the cache2 increasing
performance.
8locking logic is possible if master and detail input to the Foiner transformation originate
from different sources. 'therwise2 it does not use blocking logic. Instead2 it stores more
rows in the cache.
Q<>3 What are the different types of Foins available in Foiner Transformation9
Ans3 In *Q!2 a 4oin is a relational operator that combines data from multiple tables into a
single result set. The Foiner transformation is similar to an *Q! 4oin e%cept that data can
originate from different types of sources.
The Foiner transformation supports the following tpes of 4oins $
• ,ormal
• ?aster -uter
• %etail -uter
• Full -uter
,ote$ - normal or master outer 4oin performs faster than a full outer or detail outer 4oin.
1?
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 21/35
Q<53 ,efine the various Foin Types of Foiner Transformation.
Ans3
• In a normal 4oin 2 the Integration *ervice discards all rows of data from the
master and detail source that do not match2 based on the 4oin condition.• - master outer 4oin keeps all rows of data from the detail source and the
matching rows from the master source. It discards the unmatched rows from the
master source.
• - detail outer 4oin keeps all rows of data from the master source and the
matching rows from the detail source. It discards the unmatched rows from the
detail source.
• - full outer 4oin keeps all rows of data from both the master and detail sources.
Q<:3 ,escribe the impact of number of 4oin conditions and 4oin order in a FoinerTransformation.
Ans3 We can define one or more conditions based on eualit between the specified
master and detail sources. 8oth ports in a condition must have the same datatpe.
If we need to use two ports in the 4oin condition with non+matching datatypes we mustconvert the datatypes so that they match. The ,esigner validates datatypes in a 4oin
condition.
Additional ports in the 4oin condition increases the time necessary to 4oin two sources.
The order of the ports in the 4oin condition can impact the performance of the Foiner
transformation. If we use multiple ports in the 4oin condition2 the Integration *ervicecompares the ports in the order we specified.
,-T*$ 'nly equality operator is available in 4oiner 4oin condition.
Q<@3 5ow does Foiner transformation treat &!! value matching.
Ans3 The Foiner transformation does not match null values.
0or e%ample2 if both /@#HI, and /@#HI,1 contain a row with a null value2 theIntegration *ervice does not consider them a match and does not 4oin the two rows.
To 4oin rows with null values2 replace null input with default values in the #orts tab of
the 4oiner2 and then 4oin on the default values.
,ote$ If a result set includes fields that do not contain data in either of the sources2 the
Foiner transformation populates the empty fields with null values. If we know that a fieldwill return a &!! and we do not want to insert &!!s in the target2 set a default value
on the #orts tab for the corresponding port.
1
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 22/35
Q<3 *uppose we configure *orter transformations in the master and detail pipelines with
the following sorted ports in order$ IT/@H&'2 IT/@H&-@/2 #RIC/.
When we configure the 4oin condition2 what are the guidelines we need to follow tomaintain the sort order9
Ans3 If we have sorted both the master and detail pipelines in order of the ports say
IT/@H&'2 IT/@H&-@/ and #RIC/ we must ensure that$
• se IT/@H&' in the 0irst Foin Condition.
• If we add a *econd Foin Condition2 we must use IT/@H&-@/.
• If we want to use #RIC/ as a Foin Condition apart from IT/@H&'2 we must also
use IT/@H&-@/ in the *econd Foin Condition.
• If we skip IT/@H&-@/ and 4oin on IT/@H&' and #RIC/2 we will lose the
input sort order and the Integration *ervice fails the session.
Q<;3 What are the transformations that cannot be placed between the sort origin and theFoiner transformation so that we do not lose the input sort order.
Ans3 The best option is to place the Foiner transformation directly after the sort origin to
maintain sorted data. 5owever do not place any of the following transformations betweenthe sort origin and the Foiner transformation$
• Custom
• Unsorted-ggregator
• &ormali=er
• Rank
•
nion transformation• J@! #arser transformation
• J@! 7enerator transformation
• @applet Kif it contains any one of the above mentioned transformationsL
Q=03 *uppose we have the /@# table as our source. In the target we want to view thoseemployees whose salary is greater than or equal to the average salary for their
departments. ,escribe your mapping approach.
Ans3 'ur @apping will look like this$
ahref6http$GGpng.dwbiconcepts.comGimagesGtutorialGinfoHinterviewGinfoHinterview?.png
6
11
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 23/35
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 24/35
*o ne%t we need "orted oiner Transformation to 4oin the sorted aggregated data withthe original data2 based on %*1T,-. 5ere we will be taking the aggregated pipeline as
the @aster and original dataflow as ,etail #ipeline.
1A
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 25/35
-fter that we need a Filter Transformation to filter out the employees having salary lessthan average salary for their department.
0ilter Condition$ "ALBA+(D"AL
1B
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 26/35
!astly we have the Target table instance.
Revisitin %e4uence 5enerator !ransformation
Q=#3 What is a *equence 7enerator Transformation9
Ans3 - "euence (enerator transformation is a 1assive and Connected transformationthat generates numeric values. It is used to create unique primary key values2 replace
missing primary keys2 or cycle through a sequential range of numbers. Thistransformation by default contains -,L2 Two -UT1UT ports namely CURR+AL
and ,*ET+AL. We cannot edit or delete these ports neither we cannot add ports to thisunique transformation. We can create appro%imately two billion unique numeric values
with the widest range from to 1ADAE3>AD.
Q=<3 ,efine the #roperties available in *equence 7enerator transformation in brief.
Ans3
*equence7enerator
#roperties
,escription
*tart alue *tart value of the generated sequence that we
want the Integration *ervice to use if we use
the Cycle option. If we select Cycle2 the
1>
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 27/35
Integration *ervice cycles back to this valuewhen it reaches the end value. ,efault is ?.
Increment
8y
,ifference between two consecutive values
from the &/JT-! port.,efault is .
/nd alue
@a%imum value generated by *eq7en. -fterreaching this value the session will fail if the
sequence generator is not configured to
cycle.,efault is 1ADAE3>AD.
Current
alue
Current value of the sequence. /nter the
value we want the Integration *ervice to use
as the first value in the sequence. ,efault is
.
Cycle
If selected2 when the Integration *ervice
reaches the configured end value for thesequence2 it wraps around and starts the cycle
again2 beginning with the configured *tart
alue.
&umber of
Cached
alues
&umber of sequential values the Integration*ervice caches at a time. ,efault value for a
standard *equence 7enerator is ?. ,efault
value for a reusable *equence 7enerator is2???.
Reset
Restarts the sequence at the current value
each time a session runs.This option isdisabled for reusable *equence 7enerator
transformations.
Q==3 *uppose we have a source table populating two target tables. We connect the
&/JT-! port of the *equence 7enerator to the surrogate keys of both the target tables.
Will the *urrogate keys in both the target tables be same9 If not how can we flow the
same sequence values in both of them.
Ans3 When we connect the ,*ET+AL output port of the "euence (enerator directly
to the surrogate key columns of the target tables2 the "euence num&er will not &e the
same.
1D
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 28/35
- block of sequence numbers is sent to one target tables surrogate key column. The
second targets receives a block of sequence numbers from the *equence 7enerator
transformation only after the first target table receives the block of sequence numbers.
*uppose we have B rows coming from the source2 so the targets will have the sequence
values as T7T (21232A2B) and T7T1 (>2D2E2<2?). KTaken into consideration *tart alue?2 Current value and Increment by .
&ow suppose the requirement is like that we need to have the same surrogate keys in boththe targets.
Then the easiest way to handle the situation is to put an */pression Transformation in
between the *equence 7enerator and the Target tables. The *eq7en will pass unique
values to the e%pression transformation2 and then the rows are routed from the e%pressiontransformation to the targets.
Q=>3 *uppose we have ?? records coming from the source. &ow for a target column
population we used a *equence generator.
*uppose the Current alue is ? and /nd alue of *equence generator is set to E?. What
will happen9
Ans3 *nd +alue is the ma%imum value the *equence 7enerator will generate. -fter it
reaches the /nd value the session fails with the following error message$
TTH??< *equence 7enerator Transformation$ 'verflow error.
1E
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 29/35
0ailing of session can be handled if the *equence 7enerator is configured to Ccle
through the sequence2 i.e. whenever the Integration *ervice reaches the configured end
value for the sequence2 it wraps around and starts the cycle again2 beginning with theconfigured *tart alue.
Q=53 What are the changes we observe when we promote a non resuable *equence7enerator to a resuable one9 -nd what happens if we set the &umber of Cached alues
to ? for a reusable transformation9
Ans3 When we convert a non reusable sequence generator to resuable one we observe
that the ,um&er of Cached +alues is set to ??? by defaultM -nd the Reset property is
disabled.
When we try to set the ,um&er of Cached +alues property of a Reusable *equence7enerator to ? in the Transformation ,eveloper we encounter the following error
message$
The num&er of cached values must &e 'reater than .ero for reusa&le seuence
transformation3
Revisitin Areator !ransformation
Q=:3 What is an -ggregator Transformation9
Ans3 -n aggregator is an -ctive2 Connected transformation which performs aggregate
calculations like A+(2 C-U,T2 FIR"T2 LA"T2 ?AE2 ?*%IA,2 ?I,2
1*RC*,TIL*2 "T%%*+2 "U? and +ARIA,C*.
Q=@3 5ow an /%pression Transformation differs from -ggregator Transformation9
Ans3 -n /%pression Transformation performs calculation on a row!&!row basis. -n
-ggregator Transformation performs calculations on 'roups.
Q=3 ,oes an Informatica Transformation support only -ggregate e%pressions9
Ans3 -part from aggregate e%pressions Informatica -ggregator also supports non+aggregate e%pressions and conditional clauses.
Q=;3 5ow does -ggregator Transformation handle &!! values9
Ans3 8y default2 the aggregator transformation treats null values as &!! in aggregate
functions. 8ut we can specify to treat null values in aggregate functions as &!! or =ero.
Q>03 What is Incremental -ggregation9
1<
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 30/35
Ans3 We can enable the session option2 Incremental -ggregation for a session that
includes an -ggregator Transformation. When the Integration *ervice performs
incremental aggregation2 it actually passes changed source data through the mapping anduses the historical cache data to perform aggregate calculations incrementally.
0or reference check Implementing Informatica Incremental -ggregation
Q>#3 What are the performance considerations when working with -ggregator
Transformation9
Ans3
• 0ilter the unnecessary data before aggregating it. #lace a 0ilter transformation in
the mapping before the -ggregator transformation to reduce unnecessary
aggregation.
• Improve performance by connecting only the necessary inputGoutput ports to
subsequent transformations2 thereby reducing the si=e of the data cache.• se *orted input which reduces the amount of data cached and improves session
performance.
Q><3 What differs when we choose *orted Input for -ggregator Transformation9
Ans3 Integration *ervice creates the inde% and data caches files in memory to process the
-ggregator transformation. If the Integration *ervice requires more space as allocated for
the inde% and data cache si=es in the transformation properties2 it stores overflow values
in cache files i.e. paging to disk. 'ne way to increase session performance is to increasethe inde% and data cache si=es in the transformation properties. 8ut when we check
*orted Input the Integration *ervice uses memory to process an -ggregatortransformation it does not use cache files.
Q>=3 nder what conditions selecting *orted Input in aggregator will still not boost
session performance9
Ans3
• Incremental -ggregation2 session option is enabled.
• The aggregate e%pression contains nested aggregate functions.
• *ource data is data driven.
Q>>3 nder what condition selecting *orted Input in aggregator may fail the session9
Ans3
• If the input data is not sorted correctly2 the session will fail.
• -lso if the input data is properly sorted2 the session may fail if the sort order by
ports and the group by ports of the aggregator are not in the same order.
3?
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 31/35
Q>53 *uppose we do not group by on any ports of the aggregator what will be the output.
Ans3 If we do not group values2 the Integration *ervice will return onl the last row for
the input rows.
Q>:3 What is the e%pected value if the column in an aggregator transform is neither agroup by nor an aggregate e%pression9
Ans3 Integration *ervice produces one row for each group based on the group by ports.
The columns which are neither part of the key nor aggregate e%pression will return the
corresponding value of last record of the group received. 5owever2 if we specify particularly the 0IR*T function2 the Integration *ervice then returns the value of the
specified first row of the group. *o default is the LA"T function.
Q>@3 7ive one e%ample for each of Conditional -ggregation2 &on+-ggregate e%pression
and &ested -ggregation.
Ans3
se conditional clauses in the aggregate e%pression to reduce the number of rows used in
the aggregation. The conditional clause can be any clause that evaluates to TR/ or
0-!*/.
SUM( SALARY, JOB = CLERK )
se non+aggregate e%pressions in group by ports to modify or replace groups.
IIF( PRODUCT = B!"n B#ad, B#ad, PRODUCT )
The e%pression can also include one aggregate function within another aggregate
function2 such as$
MA$( COUNT( PRODUCT ))
Revisitin Rank !ransformation
Q>3 What is a Rank Transform9
Ans3 Rank is an -ctive Connected Informatica transformation used to select a set of top
or bottom values of data.
Q>;3 5ow does a Rank Transform differ from -ggregator Transform functions @-J
and @I&9
Ans3 !ike the -ggregator transformation2 the Rank transformation lets us groupinformation. The Rank Transform allows us to select a group of top or bottom values2 not
4ust one value as in case of -ggregator @-J2 @I& functions.
3
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 32/35
Q503 What is a R-&" port and R-&"I&,/J9
Ans3 Rank port is an inputGoutput port use to specify the column for which we want to
rank the source values. 8y default Informatica creates an output port R-&"I&,/J foreach Rank transformation. It stores the ranking position for each row in a group.
Q5#3 5ow can you get ranks based on different groups9
Ans3 Rank transformation lets us group information. We can configure one of its
inputGoutput ports as a group by port. 0or each unique value in the group port2 the
transformation creates a group of rows falling within the rank definition (top or bottom2and a particular number in each rank).
Q5<3 What happens if two rank values match9
Ans3 If two rank values match2 they receive the same value in the rank inde% and the
transformation skips the ne%t value.
Q5=3 What are the restrictions of Rank Transformation9
Ans3
• We can connect ports from only one transformation to the Rank transformation.
• We can select the top or bottom rank.
• We need to select the &umber of records in each rank.
• We can designate only one Rank port in a Rank transformation.
Q5>3 5ow does a Rank Cache works9
Ans3 ,uring a session2 the Integration *ervice compares an input row with rows in the
data cache. If the input row out+ranks a cached row2 the Integration *ervice replaces the
cached row with the input row. If we configure the Rank transformation to rank based on
different groups2 the Integration *ervice ranks incrementally for each group it finds. TheIntegration *ervice creates an inde% cache to stores the group information and data cache
for the row data.
Q553 5ow does Rank transformation handle string values9
Ans3 Rank transformation can return the strings at the top or the bottom of a session sortorder. When the Integration *ervice runs in nicode mode2 it sorts character data in the
session using the selected sort order associated with the Code #age of I* which may be
0rench2 7erman2 etc. When the Integration *ervice runs in -*CII mode2 it ignores thissetting and uses a binary sort order to sort character data.
31
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 33/35
Revisitin %orter !ransformation
Q5:3 What is a *orter Transformation9
Ans3 *orter Transformation is an -ctive2 Connected Informatica transformation used to
sort data in ascending or descending order according to specified sort keys. The *ortertransformation contains only inputGoutput ports.
Q5@3 Why is *orter an -ctive Transformation9
Ans3 When the *orter transformation is configured to treat output rows as distinct2 it
assigns all ports as part of the sort key. The Integration *ervice discards duplicate rowscompared during the sort operation. The number of Input Rows will vary as compared
with the 'utput rows and hence it is an -ctive transformation.
Q53 5ow does *orter handle Case *ensitive sorting9
Ans3 The Case *ensitive property determines whether the Integration *ervice considerscase when sorting data. When we enable the Case *ensitive property2 the Integration
*ervice sorts uppercase characters higher than lowercase characters.
Q5;3 5ow does *orter handle &!! values9
Ans3 We can configure the way the *orter transformation treats null values. /nable the
property &ull Treated !ow if we want to treat null values as lower than any other valuewhen it performs the sort operation. ,isable this option if we want the Integration *ervice
to treat null values as higher than any other value.
Q:03 5ow does a *orter Cache works9
Ans3 The Integration *ervice passes all incoming data into the *orter Cache before *ortertransformation performs the sort operation.
The Integration *ervice uses the *orter Cache *i=e property to determine the ma%imum
amount of memory it can allocate to perform the sort operation. If it cannot allocate
enough memory2 the Integration *ervice fails the session. 0or best performance2configure *orter cache si=e with a value less than or equal to the amount of available
physical R-@ on the Integration *ervice machine.
If the amount of incoming data is greater than the amount of *orter cache si=e2 the
Integration *ervice temporarily stores data in the *orter transformation work directory.The Integration *ervice requires disk space of at least twice the amount of incoming data
when storing data in the work directory.
33
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 34/35
Revisitin Union !ransformation
Q:#3 What is a nion Transformation9
Ans3 The nion transformation is an -ctive2 Connected non+blocking multiple input
group transformation use to merge data from multiple pipelines or sources into one pipeline branch. *imilar to the &I'& -!! *Q! statement2 the nion transformation
does not remove duplicate rows.
Q:<3 What are the restrictions of nion Transformation9
Ans3
• -ll input groups and the output group must have matching ports. The precision2
datatype2 and scale must be identical across all groups.
• We can create multiple input groups2 but only one default output group.
•
The nion transformation does not remove duplicate rows.• We cannot use a *equence 7enerator or pdate *trategy transformation upstream
from a nion transformation.
• The nion transformation does not generate transactions.
5eneral 4uestions
Q:=3 What is the difference between *tatic and ,ynamic !ookup Cache9
Ans3 We can configure a !ookup transformation to cache the corresponding lookup table.
In case of static or read+only lookup cache the Integration *ervice caches the lookup table
at the beginning of the session and does not update the lookup cache while it processesthe !ookup transformation.
In case of dynamic lookup cache the Integration *ervice dynamically inserts or updates
data in the lookup cache and passes the data to the target. The dynamic cache is
synchroni=ed with the target.
Q:>3 What is #ersistent !ookup Cache9
Ans3 !ookups are cached by default in Informatica. !ookup cache can be either non+
persistent or persistent. The Integration *ervice saves or deletes lookup cache files after a
successful session run based on whether the !ookup cache is checked as persistent or not.
Q:53 What is the difference between Reusable transformation and @applet9
Ans3 -ny Informatica Transformation created in the in the Transformation ,eveloper ora non+reusable promoted to reusable transformation from the mapping designer which
can be used in multiple mappings is known as Reusable Transformation. When we add a
reusable transformation to a mapping2 we actually add an instance of the transformation.
3A
8/13/2019 2_Top 50 Informatica Interview Questions With Answers
http://slidepdf.com/reader/full/2top-50-informatica-interview-questions-with-answers 35/35
top related