The document discusses differences between connected and unconnected lookups in Informatica. Connected lookups directly receive input from the data pipeline and support dynamic caching, while unconnected lookups receive input from another transformation and only support static caching. It also covers differences between active and passive transformations, routers and filters, and static versus dynamic lookup caches.
The document discusses differences between connected and unconnected lookups in Informatica. Connected lookups directly receive input from the data pipeline and support dynamic caching, while unconnected lookups receive input from another transformation and only support static caching. It also covers differences between active and passive transformations, routers and filters, and static versus dynamic lookup caches.
The document discusses differences between connected and unconnected lookups in Informatica. Connected lookups directly receive input from the data pipeline and support dynamic caching, while unconnected lookups receive input from another transformation and only support static caching. It also covers differences between active and passive transformations, routers and filters, and static versus dynamic lookup caches.
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#