This document provides solutions to sample Informatica scenario based interview questions:
1. It describes how to use an expression transformation to generate sequence numbers and assign them to output ports to load the first or last rows of a flat file.
2. It explains how to use sequence generators, filters, aggregators, and routers to load specific rows (first n rows, last n rows) into different target tables.
3. It provides a solution to load unique records into one table and duplicate records into another table using sorters, aggregators, and joiners.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
236 views42 pages
Informatica Q & A and Transformations1
This document provides solutions to sample Informatica scenario based interview questions:
1. It describes how to use an expression transformation to generate sequence numbers and assign them to output ports to load the first or last rows of a flat file.
2. It explains how to use sequence generators, filters, aggregators, and routers to load specific rows (first n rows, last n rows) into different target tables.
3. It provides a solution to load unique records into one table and duplicate records into another table using sorters, aggregators, and joiners.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 42
Informatica Scenario Based Interview Questions with Answers - Part 1
1. How to generate sequence numbers using expression transformation?
Solution: In the expression transformation, create a variable port and increment it by 1. Then assign the variable port to an output port. In the expression transformation, the ports are !"count#!"count$1 %"count#!"count 2. &esign a mapping to load the first ' rows from a flat file into a target? Solution: (ou have to assign row numbers to each record. )enerate the row numbers either using the expression transformation as mentioned above or use sequence generator transformation. Then pass the output to filter transformation and specify the filter condition as %"count *#' 3. &esign a mapping to load the last ' rows from a flat file into a target? Solution: +onsider the source has the following data. col a b c d e Step1: (ou have to assign row numbers to each record. )enerate the row numbers using the expression transformation as mentioned above and call the row number generated port as %"count. +reate a &,--( output port in the same expression transformation and assign 1 to that port. .o that, the &,--( output port always return 1 for each row. In the expression transformation, the ports are !"count#!"count$1 %"count#!"count %"dummy#1 The output of expression transformation will be col, o"count, o"dummy a, 1, 1 b, /, 1 c, ', 1 d, 0, 1 e, 1, 1 Step2: 2ass the output of expression transformation to aggregator and do not specify any group by condition. +reate an output port %"total"records in the aggregator and assign %"count port to it. The aggregator will return the last row by default. The output of aggregator contains the &,--( port which has value 1 and %"total"records port which has the value of total number of records in the source. In the aggregator transformation, the ports are %"dummy %"count %"total"records#%"count The output of aggregator transformation will be %"total"records, %"dummy 1, 1 Step3: 2ass the output of expression transformation, aggregator transformation to 3oiner transformation and 3oin on the &,--( port. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression and aggregator to 3oiner transformation. In the 3oiner transformation, the 3oin condition will be %"dummy 5port from aggregator transformation6 # %"dummy 5port from expression transformation6 The output of 3oiner transformation will be col, o"count, o"total"records a, 1, 1 b, /, 1 c, ', 1 d, 0, 1 e, 1, 1 Step: 7ow pass the ouput of 3oiner transformation to filter transformation and specify the filter condition as %"total"records 5port from aggregator68%"count5port from expression6 *#/ In the filter transformation, the filter condition will be %"total"records 8 %"count *#/ The output of filter transformation will be col o"count, o"total"records c, ', 1 d, 0, 1 e, 1, 1 . &esign a mapping to load the first record from a flat file into one table 9, the last record from a flat file into table : and the remaining records into table +? Solution: This is similar to the above problem; the first ' steps are same. In the last step instead of using the filter transformation, you have to use router transformation. In the router transformation create two output groups. In the first group, the condition should be %"count#1 and connect the corresponding output group to table 9. In the second group, the condition should be %"count#%"total"records and connect the corresponding output group to table :. The output of default group should be connected to table +. !. +onsider the following products data which contain duplicate rows. 9 : + + : & : Q1. &esign a mapping to load all unique products in one table and the duplicate rows in another table. The first table should contain the following output 9 & The second target should contain the following output : : : + + Solution: ,se sorter transformation and sort the products data. 2ass the output to an expression transformation and create a dummy port %"dummy and assign 1 to that port. .o that, the &,--( output port always return 1 for each row. The output of expression transformation will be 2roduct, %"dummy 9, 1 :, 1 :, 1 :, 1 +, 1 +, 1 &, 1 2ass the output of expression transformation to an aggregator transformation. +hec4 the group by on product port. In the aggreagtor, create an output port %"count"of"each"product and write an expression count5product6. The output of aggregator will be 2roduct, %"count"of"each"product 9, 1 :, ' +, / &, 1 7ow pass the output of expression transformation, aggregator transformation to 3oiner transformation and 3oin on the products port. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression and aggregator to 3oiner transformation. The output of 3oiner will be product, %"dummy, %"count"of"each"product 9, 1, 1 :, 1, ' :, 1, ' :, 1, ' +, 1, / +, 1, / &, 1, 1 7ow pass the output of 3oiner to a router transformation, create one group and specify the group condition as %"dummy#%"count"of"each"product. Then connect this group to one table. +onnect the output of default group to another table. Q2. &esign a mapping to load each product once into one table and the remaining products which are duplicated into another table. The first table should contain the following output 9 : + & The second table should contain the following output : : + Solution: ,se sorter transformation and sort the products data. 2ass the output to an expression transformation and create a variable port,!"curr"product, and assign product port to it. Then create a !"count port and in the expression editor write II<5!"curr"product#!"prev"product, !"count$1,16. +reate one more variable port !"prev"port and assign product port to it. 7ow create an output port %"count port and assign !"count port to it. In the expression transformation, the ports are 2roduct !"curr"product#product !"count#II<5!"curr"product#!"prev"product,!"count$1,16 !"prev"product#product %"count#!"count The output of expression transformation will be 2roduct, %"count 9, 1 :, 1 :, / :, ' +, 1 +, / &, 1 7ow 2ass the output of expression transformation to a router transformation, create one group and specify the condition as %"count#1. Then connect this group to one table. +onnect the output of default group to another table. 1. +onsider the following employees data as source employee"id, salary 1=, 1=== /=, /=== '=, '=== 0=, 1=== Q1. &esign a mapping to load the cumulative sum of salaries of employees into target table? The target table data should loo4 li4e as employee"id, salary, cumulative"sum 1=, 1===, 1=== /=, /===, '=== '=, '===, >=== 0=, 1===, 11=== Solution: +onnect the source ?ualifier to expression transformation. In the expression transformation, create a variable port !"cum"sal and in the expression editor write !"cum"sal$salary. +reate an output port %"cum"sal and assign !"cum"sal to it. Q2. &esign a mapping to get the pervious row salary for the current row. If there is no pervious row exists for the current row, then the pervious row salary should be displayed as null. The output should loo4 li4e as employee"id, salary, pre"row"salary 1=, 1===, 7ull /=, /===, 1=== '=, '===, /=== 0=, 1===, '=== Solution: +onnect the source ?ualifier to expression transformation. In the expression transformation, create a variable port !"count and increment it by one for each row entering the expression transformation. 9lso create !"salary variable port and assign the expression II<5!"count#1,7,@@,!"prev"salary6 to it . Then create one more variable port !"prev"salary and assign .alary to it. 7ow create output port %"prev"salary and assign !"salary to it. +onnect the expression transformation to the target ports. In the expression transformation, the ports will be employee"id salary !"count#!"count$1 !"salary#II<5!"count#1,7,@@,!"prev"salary6 !"prev"salary#salary %"prev"salary#!"salary Q3. &esign a mapping to get the next row salary for the current row. If there is no next row for the current row, then the next row salary should be displayed as null. The output should loo4 li4e as employee"id, salary, next"row"salary 1=, 1===, /=== /=, /===, '=== '=, '===, 1=== 0=, 1===, 7ull Solution: Step1: +onnect the source qualifier to two expression transformation. In each expression transformation, create a variable port !"count and in the expression editor write !"count$1. 7ow create an output port %"count in each expression transformation. In the first expression transformation, assign !"count to %"count. In the second expression transformation assign !"count81 to %"count. In the first expression transformation, the ports will be employee"id salary !"count#!"count$1 %"count#!"count In the second expression transformation, the ports will be employee"id salary !"count#!"count$1 %"count#!"count81 Step2: +onnect both the expression transformations to 3oiner transformation and 3oin them on the port %"count. +onsider the first expression transformation as -aster and second one as detail. In the 3oiner specify the 3oin type as &etail %uter Aoin. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression transformations to 3oiner transformation. Step3: 2ass the output of 3oiner transformation to a target table. <rom the 3oiner, connect the employee"id, salary which are obtained from the first expression transformation to the employee"id, salary ports in target table. Then from the 3oiner, connect the salary which is obtained from the second expression transformaiton to the next"row"salary port in the target table. Q. &esign a mapping to find the sum of salaries of all employees and this sum should repeat for all the rows. The output should loo4 li4e as employee"id, salary, salary"sum 1=, 1===, 11=== /=, /===, 11=== '=, '===, 11=== 0=, 1===, 11=== Solution: Step1: +onnect the source qualifier to the expression transformation. In the expression transformation, create a dummy port and assign value 1 to it. In the expression transformation, the ports will be employee"id salary %"dummy#1 Step2: 2ass the output of expression transformation to aggregator. +reate a new port %"sum"salary and in the expression editor write .,-5salary6. &o not specify group by on any port. In the aggregator transformation, the ports will be salary %"dummy %"sum"salary#.,-5salary6 Step3: 2ass the output of expression transformation, aggregator transformation to 3oiner transformation and 3oin on the &,--( port. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression and aggregator to 3oiner transformation. Step: 2ass the output of 3oiner to the target table. 2. +onsider the following employees table as source department"no, employee"name /=, B 1=, 9 1=, & /=, 2 1=, : 1=, + /=, ? /=, . Q1. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 9,:,+,&,2 /=, 9,:,+,&,2,? /=, 9,:,+,&,2,?,B /=, 9,:,+,&,2,?,B,. Solution: Step1: ,se a sorter transformation and sort the data using the sort 4ey as department"no and then pass the output to the expression transformation. In the expression transformation, the ports will be department"no employee"name !"employee"list # II<5I.7,@@5!"employee"list6,employee"name,!"employee"listCCD,DCC employee"name6 %"employee"list # !"employee"list Step2: 7ow connect the expression transformation to a target table. Q2. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 2 /=, 2,? /=, 2,?,B /=, 2,?,B,. Solution: Step1: ,se a sorter transformation and sort the data using the sort 4ey as department"no and then pass the output to the expression transformation. In the expression transformation, the ports will be department"no employee"name !"curr"deptno#department"no !"employee"list # II<5!"curr"deptnoE # !"prev"deptno,employee"name,!"employee"listCCD,DCCemployee"name6 !"prev"deptno#department"no %"employee"list # !"employee"list Step2: 7ow connect the expression transformation to a target table. Q3. &esign a mapping to load a target table with the following values from the above source? department"no, employee"names 1=, 9,:,+,& /=, 2,?,B,. Solution: The first step is same as the above problem. 2ass the output of expression to an aggregator transformation and specify the group by as department"no. 7ow connect the aggregator transformation to a target table. 1. +onsider the following product types data as the source. 2roduct"id, product"type 1=, video 1=, 9udio /=, 9udio '=, 9udio 0=, 9udio 1=, 9udio 1=, -ovie /=, -ovie '=, -ovie 0=, -ovie 1=, -ovie >=, -ovie 9ssume that there are only ' product types are available in the source. The source contains 1/ records and you dont 4now how many products are available in each product type. Q1. &esign a mapping to select F products in such a way that ' products should be selected from video, ' products should be selected from 9udio and the remaining ' products should be selected from -ovie. Solution: Step1: ,se sorter transformation and sort the data using the 4ey as product"type. Step2: +onnect the sorter transformation to an expression transformation. In the expression transformation, the ports will be product"id product"type !"curr"prod"type#product"type !"count # II<5!"curr"prod"type # !"prev"prod"type,!"count$1,16 !"prev"prod"type#product"type %"count#!"count Step3: 7ow connect the expression transformaion to a filter transformation and specify the filter condition as %"count*#'. 2ass the output of filter to a target table. Q2. In the above problem ?1, if the number of products in a particular product type are less than ', then you wont get the total F records in the target table. <or example, see the videos type in the source data. 7ow design a mapping in such way that even if the number of products in a particular product type are less than ', then you have to get those less number of records from another porduc types. <or example If the number of products in videos are 1, then the reamaining / records should come from audios or movies. .o, the total number of records in the target table should always be F. Solution: The first two steps are same as above. Step3: +onnect the expression transformation to a sorter transformation and sort the data using the 4ey as %"count. The ports in soter transformation will be product"id product"type %"count 5sort 4ey6 Step3: &iscard %"count port and connect the sorter transformation to an expression transformation. The ports in expression transformation will be product"id product"type !"count#!"count$1 %"prod"count#!"count Step: +onnect the expression to a filter transformation and specify the filter condition as %"prod"count*#F. +onnect the filter transformation to a target table. 2. &esign a mapping to convert column data into row data without using the normaliGer transformation. The source data loo4s li4e col1, col/, col' a, b, c d, e, f The target table data should loo4 li4e +ol a b c d e f Solution: +reate three expression transformations with one port each. +onnect col1 from .ource ?ualifier to port in first expression transformation. +onnect col/ from .ource ?ualifier to port in second expression transformation. +onnect col' from source qualifier to port in third expression transformation. +reate a union transformation with three input groups and each input group should have one port. 7ow connect the expression transformations to the input groups and connect the union transformation to the target table. 3. &esign a mapping to convert row data into column data. The source data loo4s li4e id, value 1=, a 1=, b 1=, c /=, d /=, e /=, f The target table data should loo4 li4e id, col1, col/, col' 1=, a, b, c /=, d, e, f Solution: Step1: ,se sorter transformation and sort the data using id port as the 4ey. Then connect the sorter transformation to the expression transformation. Step2: In the expression transformation, create the ports and assign the expressions as mentioned below. id value !"curr"id#id !"count# II<5v"curr"id#!"prev"id,!"count$1,16 !"prev"id#id %"col1# II<5!"count#1,value,7,@@6 %"col/# II<5!"count#/,value,7,@@6 %"col'# II<5!"count#',value,7,@@6 Step3: +onnect the expression transformation to aggregator transformation. In the aggregator transforamtion, create the ports and assign the expressions as mentioned below. id 5specify group by on this port6 %"col1 %"col/ %"col' col1#-9H5%"col16 col/#-9H5%"col/6 col'#-9H5%"col'6 Stpe: 7ow connect the ports id, col1, col/, col' from aggregator transformation to the target table. Ta4e a loo4 at the following tree structure diagram. <rom the tree structure, you can easily derive the parent8child relationship between the elements. <or example, : is parent of & and I. The above tree structure data is represented in a table as shown below. c1, c/, c', c0 9, :, &, H 9, :, &, I 9, :, I, 7,@@ 9, +, <, 7,@@ 9, +, ), 7,@@ Here in this table, column +1 is parent of column +/, column +/ is parent of column +', column +' is parent of column +0. Q1. &esign a mapping to load the target table with the below data. Here you need to generate sequence numbers for each element and then you have to get the parent id. 9s the element J9J is at root, it does not have any parent and its parent"id is 7,@@. id, element, parent"id 1, 9, 7,@@ /, :, 1 ', +, 1 0, &, / 1, I, / >, <, ' K, ), ' L, H, 0 F, I, 0 I have provided the solution for this problem in %racle .ql query. If you are interested you can +lic4 Here to see the solution. Q2. This is an extension to the problem ?1. @et say column +/ has null for all the rows, then +1 becomes the parent of +' and c' is parent of +0. @et say both columns c/ and c' has null for all the rows. Then c1 becomes the parent of c0. &esign a mapping to accommodate these type of null conditions. Q1. The source data contains only column DidD. It will have sequence numbers from 1 to 1===. The source data loo4s li4e as Id 1 / ' 0 1 > K L .... 1=== +reate a wor4flow to load only the <ibonacci numbers in the target table. The target table data should loo4 li4e as Id 1 / ' 1 L 1' ..... In <ibonacci series each subsequent number is the sum of previous two numbers. Here assume that the first two numbers of the fibonacci series are 1 and /. Solution: .TI21 &rag the source to the mapping designer and then in the .ource ?ualifier Transformation properties, set the number of sorted ports to one. This will sort the source data in ascending order. .o that we will get the numbers in sequence as 1, /, ', ....1=== .TI2/ +onnect the .ource ?ualifier Transformation to the Ixpression Transformation. In the Ixpression Transformation, create three variable ports and one output port. 9ssign the expressions to the ports as shown below. 2orts in Ixpression Transformation id v"sum # v"prev"val1 $ v"prev"val/ v"prev"val1 # II<5id#1 or id#/,1, II<5v"sum # id, v"prev"val/, v"prev"val16 6 v"prev"val/ # II<5id#1 or id #/, /, II<5v"sum#id, v"sum, v"prev"val/6 6 o"flag # II<5id#1 or id#/,1, II<5 v"sum#id,1,=6 6 .TI2' 7ow connect the Ixpression Transformation to the <ilter Transformation and specify the <ilter +ondition as o"flag#1 .TI20 +onnect the <ilter Transformation to the Target Table. Q2. The source table contains two columns JidJ and JvalJ. The source data loo4s li4e as below id val 1 a,b,c / pq,m,n ' asG,ro,liqt Here the JvalJ column contains comma delimited data and has three fields in that column. +reate a wor4flow to split the fields in MvalN column to separate rows. The output should loo4 li4e as below. id val 1 a 1 b 1 c / pq / m / n ' asG ' ro ' liqt Solution: .TI21 +onnect three .ource ?ualifier transformations to the .ource &efinition .TI2/ 7ow connect all the three .ource ?ualifier transformations to the ,nion Transformation. Then connect the ,nion Transformation to the .orter Transformation. In the sorter transformation sort the data based on Id port in ascending order. .TI2' 2ass the output of .orter Transformation to the Ixpression Transformation. The ports in Ixpression Transformation are id 5inputOoutput port val 5input port6 v"currend"id 5variable port6 # id v"count 5variable port6 # II<5v"current"idE#v"previous"id,1,v"count$16 v"previous"id 5variable port6 # id o"val 5output port6 # &I+%&I5v"count, 1, .,:.TB5val, 1, I7.TB5val,D,D,1,1681 6, /, .,:.TB5val, I7.TB5val,D,D,1,16$1, I7.TB5val,D,D,1,/68I7.TB5val,D,D,1,16816, ', .,:.TB5val, I7.TB5val,D,D,1,/6$16, 7,@@ 6 .TI20 7ow pass the output of Ixpression Transformation to the Target definition. +onnect id, o"val ports of Ixpression Transformation to the id, val ports of Target &efinition. <or those who are interested to solve this problem in oracle sql, +lic4 Here. The oracle sql query provides a dynamic solution where the JvalJ column can have varying number of fields in each row. The transformations which used mostly are listed in the below table. +lic4 on the transforamtion to see the interview questions on the particular transformation. 9ggregator 9ctiveO+onnected Ixpression 2assiveO+onnected <ilter 9ctiveO+onnected Aoiner 9ctiveO+onnected @oo4up 2assiveO+onnected or ,nconnected 7ormaliGer 9ctiveO+onnected Ban4 9ctiveO+onnected Bouter 9ctiveO+onnected .equence )enerator 2assiveO+onnected .orter 9ctiveO+onnected .ource ?ualifier 9ctiveO+onnected .?@ 9ctive or 2assiveO+onnected .tored 2rocedure 2assiveO+onnected or ,nconnected Transaction +ontrol 9ctiveO+onnected ,nion 9ctiveO+onnected ,pdate .trategy 9ctiveO+onnected 1. Phat is a transformation? 9 transformation is a repository ob3ect that generates, modifies, or passes data. /. Phat is an active transformation? 9n active transformation is the one which changes the number of rows that pass through it. Ixample <ilter transformation '. Phat is a passive transformation? 9 passive transformation is the one which does not change the number of rows that pass through it. Ixample Ixpression transformation 0. Phat is a connected transformation? 9 connected transformation is connected to the data flow or connected to the other transformations in the mapping pipeline. Ixample sorter transformation 1. Phat is an unconnected transformation? 9n unconnected transformation is not connected to other transformations in the mapping. 9n unconnected transformation is called within another transformation and returns a value to that transformation. Ixample ,nconnected loo4up transformation, unconnected stored procedure transformation >. Phat are multi8group transformations? Transformations having multiple input and output groups are called multi8group transformations. Ixamples +ustom, HTT2, Aoiner, Bouter, ,nion, ,nstructured &ata, H-@ source qualifier, H-@ Target definition, H-@ parser, H-@ generator K. @ist out all the transformations which use cache? 9ggregator, Aoiner, @oo4up, Ban4, .orter L. Phat is bloc4ing transformation? Transformation which bloc4s the input rows are called bloc4ing transformation. Ixample +ustom transformation, unsorted 3oiner F. Phat is a reusable transformation? 9 reusable transformation is the one which can be used in multiple mappings. Beusable transformation is created in transformation developer. 1=. How do you promote a non8reusable transformation to reusable transformation? Idit the transformation and chec4 the -a4e Beusable option 11. How to create a non8reusable instance of reusable transformations? In the navigator, select an existing transformation and drag the transformation into the mapping wor4space. Hold down the +trl 4ey before you release the transformation. 1/. Phich transformation can be created only as reusable transformation but not as non8reusable transformation? Ixternal procedure transformation. 1. Phat is a union transformation? 9 union transformation is used merge data from multiple sources similar to the ,7I%7 9@@ .?@ statement to combine the results from two or more .?@ statements. /. 9s union transformation gives ,7I%7 9@@ output, how you will get the ,7I%7 output? 2ass the output of union transformation to a sorter transformation. In the properties of sorter transformation chec4 the option select distinct. 9lternatively you can pass the output of union transformation to aggregator transformation and in the aggregator transformation specify all ports as group by ports. '. Phat are the guidelines to be followed while using union transformation? The following rules and guidelines need to be ta4en care while wor4ing with union transformation (ou can create multiple input groups, but only one output group. 9ll input groups and the output group must have matching ports. The precision, datatype, and scale must be identical across all groups. The ,nion transformation does not remove duplicate rows. To remove duplicate rows, you must add another transformation such as a Bouter or <ilter transformation. (ou cannot use a .equence )enerator or ,pdate .trategy transformation upstream from a ,nion transformation. The ,nion transformation does not generate transactions. 0. Phy union transformation is an active transformation? ,nion is an active transformation because it combines two or more data streams into one. Though the total number of rows passing into the ,nion is the same as the total number of rows passing out of it, and the sequence of rows from any given input stream is preserved in the output, the positions of the rows are not preserved, i.e. row number 1 from input stream 1 might not be row number 1 in the output stream. ,nion does not even guarantee that the output is repeatable 1. Phat is a transaction control transformation? 9 transaction is a set of rows bound by a commit or rollbac4 of rows. The transaction control transformation is used to commit or rollbac4 a group of rows. /. Phat is the commit type if you have a transaction control transformation in the mapping? The commit type is Juser8definedJ. '. Phat are the different transaction levels available in transaction control transformation? The following are the transaction levels or built8in variables T+"+%7TI7,I"TB97.9+TI%7 The Integration .ervice does not perform any transaction change for this row. This is the default value of the expression. T+"+%--IT":I<%BI The Integration .ervice commits the transaction, begins a new transaction, and writes the current row to the target. The current row is in the new transaction. T+"+%--IT"9<TIB The Integration .ervice writes the current row to the target, commits the transaction, and begins a new transaction. The current row is in the committed transaction. T+"B%@@:9+Q":I<%BI The Integration .ervice rolls bac4 the current transaction, begins a new transaction, and writes the current row to the target. The current row is in the new transaction. T+"B%@@:9+Q"9<TIB The Integration .ervice writes the current row to the target, rolls bac4 the transaction, and begins a new transaction. The current row is in the rolled bac4 transaction. 1. Phat is a sorter transformation? .orter transformation is used to sort the data. (ou can sort the data either in ascending or descending order according to a specified sort 4ey. /. Phy sorter is an active transformation? 9s sorter transformation can suppress the duplicate records in the source, it is called an active transformation. '. How to improve the performance of a session using sorter transformation? .ort the data using sorter transformation before passing in to aggregator or 3oiner transformation. 9s the data is sorted, the integration service uses the memory to do aggregate and 3oin operations and does not use cache files to process the data. 1. Phat is an expression transformation? 9n expression transformation is used to calculate values in a single row. Ixample salary$1=== 2. How to generate sequence numbers using expression transformation? +reate a variable port in expression transformation and increment it by one for every row. 9ssign this variable port to an output port. 3. +onsider the following employees data as source? employee"id, salary 1=, 1=== /=, /=== '=, '=== 0=, 1=== Q1. &esign a mapping to load the cumulative sum of salaries of employees into target table? The target table data should loo4 li4e as employee"id, salary, cumulative"sum 1=, 1===, 1=== /=, /===, '=== '=, '===, >=== 0=, 1===, 11=== Q2. &esign a mapping to get the pervious row salary for the current row. If there is no pervious row exists for the current row, then the pervious row salary should be displayed as null. The output should loo4 li4e as employee"id, salary, pre"row"salary 1=, 1===, 7ull /=, /===, 1=== '=, '===, /=== 0=, 1===, '=== . +onsider the following employees table as source department"no, employee"name /=, B 1=, 9 1=, & /=, 2 1=, : 1=, + /=, ? /=, . Q1. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 9,:,+,&,2 /=, 9,:,+,&,2,? /=, 9,:,+,&,2,?,B /=, 9,:,+,&,2,?,B,. Q2. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 2 /=, 2,? /=, 2,?,B /=, 2,?,B,. 1. +onsider the following employees data as source employee"id, salary 1=, 1=== /=, /=== '=, '=== 0=, 1=== Q1. &esign a mapping to load the cumulative sum of salaries of employees into target table? The target table data should loo4 li4e as employee"id, salary, cumulative"sum 1=, 1===, 1=== /=, /===, '=== '=, '===, >=== 0=, 1===, 11=== Solution: +onnect the source ?ualifier to expression transformation. In the expression transformation, create a variable port !"cum"sal and in the expression editor write !"cum"sal$salary. +reate an output port %"cum"sal and assign !"cum"sal to it. Q2. &esign a mapping to get the pervious row salary for the current row. If there is no pervious row exists for the current row, then the pervious row salary should be displayed as null. The output should loo4 li4e as employee"id, salary, pre"row"salary 1=, 1===, 7ull /=, /===, 1=== '=, '===, /=== 0=, 1===, '=== Solution: +onnect the source ?ualifier to expression transformation. In the expression transformation, create a variable port !"count and increment it by one for each row entering the expression transformation. 9lso create !"salary variable port and assign the expression II<5!"count#1,7,@@,!"prev"salary6 to it . Then create one more variable port !"prev"salary and assign .alary to it. 7ow create output port %"prev"salary and assign !"salary to it. +onnect the expression transformation to the target ports. In the expression transformation, the ports will be employee"id salary !"count#!"count$1 !"salary#II<5!"count#1,7,@@,!"prev"salary6 !"prev"salary#salary %"prev"salary#!"salary Q3. &esign a mapping to get the next row salary for the current row. If there is no next row for the current row, then the next row salary should be displayed as null. The output should loo4 li4e as employee"id, salary, next"row"salary 1=, 1===, /=== /=, /===, '=== '=, '===, 1=== 0=, 1===, 7ull Solution: Step1: +onnect the source qualifier to two expression transformation. In each expression transformation, create a variable port !"count and in the expression editor write !"count$1. 7ow create an output port %"count in each expression transformation. In the first expression transformation, assign !"count to %"count. In the second expression transformation assign !"count81 to %"count. In the first expression transformation, the ports will be employee"id salary !"count#!"count$1 %"count#!"count In the second expression transformation, the ports will be employee"id salary !"count#!"count$1 %"count#!"count81 Step2: +onnect both the expression transformations to 3oiner transformation and 3oin them on the port %"count. +onsider the first expression transformation as -aster and second one as detail. In the 3oiner specify the 3oin type as &etail %uter Aoin. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression transformations to 3oiner transformation. Step3: 2ass the output of 3oiner transformation to a target table. <rom the 3oiner, connect the employee"id, salary which are obtained from the first expression transformation to the employee"id, salary ports in target table. Then from the 3oiner, connect the salary which is obtained from the second expression transformaiton to the next"row"salary port in the target table. Q. &esign a mapping to find the sum of salaries of all employees and this sum should repeat for all the rows. The output should loo4 li4e as employee"id, salary, salary"sum 1=, 1===, 11=== /=, /===, 11=== '=, '===, 11=== 0=, 1===, 11=== Solution: Step1: +onnect the source qualifier to the expression transformation. In the expression transformation, create a dummy port and assign value 1 to it. In the expression transformation, the ports will be employee"id salary %"dummy#1 Step2: 2ass the output of expression transformation to aggregator. +reate a new port %"sum"salary and in the expression editor write .,-5salary6. &o not specify group by on any port. In the aggregator transformation, the ports will be salary %"dummy %"sum"salary#.,-5salary6 Step3: 2ass the output of expression transformation, aggregator transformation to 3oiner transformation and 3oin on the &,--( port. In the 3oiner transformation chec4 the property sorted input, then only you can connect both expression and aggregator to 3oiner transformation. Step: 2ass the output of 3oiner to the target table. 2. +onsider the following employees table as source department"no, employee"name /=, B 1=, 9 1=, & /=, 2 1=, : 1=, + /=, ? /=, . Q1. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 9,:,+,&,2 /=, 9,:,+,&,2,? /=, 9,:,+,&,2,?,B /=, 9,:,+,&,2,?,B,. Solution: Step1: ,se a sorter transformation and sort the data using the sort 4ey as department"no and then pass the output to the expression transformation. In the expression transformation, the ports will be department"no employee"name !"employee"list # II<5I.7,@@5!"employee"list6,employee"name,!"employee"listCCD,DCC employee"name6 %"employee"list # !"employee"list Step2: 7ow connect the expression transformation to a target table. Q2. &esign a mapping to load a target table with the following values from the above source? department"no, employee"list 1=, 9 1=, 9,: 1=, 9,:,+ 1=, 9,:,+,& /=, 2 /=, 2,? /=, 2,?,B /=, 2,?,B,. Solution: Step1: ,se a sorter transformation and sort the data using the sort 4ey as department"no and then pass the output to the expression transformation. In the expression transformation, the ports will be department"no employee"name !"curr"deptno#department"no !"employee"list # II<5!"curr"deptnoE # !"prev"deptno,employee"name,!"employee"listCCD,DCCemployee"name6 !"prev"deptno#department"no %"employee"list # !"employee"list Step2: 7ow connect the expression transformation to a target table. Q3. &esign a mapping to load a target table with the following values from the above source? department"no, employee"names 1=, 9,:,+,& /=, 2,?,B,. Solution: The first step is same as the above problem. 2ass the output of expression to an aggregator transformation and specify the group by as department"no. 7ow connect the aggregator transformation to a target table. ####################################################### ####################################################### ####################################################### ####################################################### ####################################################### 1. Phat is .?@ transformation? .?@ transformation process .?@ queries midstream in a pipeline and you can insert, update, delete and retrieve rows from a database.
/. How do you configure a .?@ transformation? The following options are required to configure .?@ transformation -ode .pecifies the mode in which .?@ transformation runs. .?@ transformation supports two modes. They are script mode and query mode. &atabase type The type of database that .?@ transformation connects to. +onnection type 2ass database connection to the .?@ transformation at run time or specify a connection ob3ect.
'. Phat are the different modes in which a .?@ transformation runs? .?@ transformation runs in two modes. They are .cript mode The .?@ transformation runs scripts that are externally located. (ou can pass a script name to the transformation with each input row. The .?@ transformation outputs one row for each input row. ?uery mode The .?@ transformation executes a query that you define in a query editor. (ou can pass parameters to the query to define dynamic queries. (ou can output multiple rows when the query has a .I@I+T statement.
0. In which cases the .?@ transformation becomes a passive transformation and active transformation? If you run the .?@ transformation in script mode, then it becomes passive transformation. If you run the .?@ transformation in the query mode and the query has a .I@I+T statement, then it becomes an active transformation.
1. Phen you configure an .?@ transformation to run in script mode, what are the ports that the designer adds to the .?@ transformation? The designer adds the following ports to the .?@ transformation in script mode .cript7ame This is an input port. .cript7ame receives the name of the script to execute the current row. .criptBesult This is an output port. .criptBesult returns 29..I& if the script execution succeeds for the row. %therwise it returns <9I@I&. .criptIrror This is an output port. .criptIrror returns the errors that occur when a script fails for a row.
>. Phat are the types of .?@ queries you can specify in the .?@ transformation when you use it in query mode. .tatic .?@ query The query statement does not change, but you can use query parameters to change the data. The integration service prepares the query once and runs the query for all input rows. &ynamic .?@ query The query statement can be changed. The integration service prepares a query for each input row.
K. Phat are the types of connections to connect the .?@ transformation to the database available? .tatic connection +onfigure the connection ob3ect tin the session. (ou must first create the connection ob3ect in wor4flow manager. @ogical connection 2ass a connection name to the .?@ transformation as input data at run time. (ou must first create the connection ob3ect in wor4flow manager. <ull database connection 2ass the connect string, user name, password and other connection information to .?@ transformation input ports at run time.
L. How do you find the number of rows inserted, updated or deleted in a table? (ou can enable the 7umBows9ffected output port to return the number of rows affected by the I7.IBT, ,2&9TI or &I@ITI query statements in each input row. This 7umBows9ffected option wor4s in query mode.
F. Phat will be the output of 7umBows9ffected port for a .I@I+T statement? The 7umBows9ffected outout is Gero for the .I@I+T statement.
1=. Phen you enable the 7umBows9ffected output port in script mode, what will be the output? In script mode, the 7umBows9ffected port always returns 7,@@.
11. How do you limit the number of rows returned by the select statement? (ou can limit the number of rows by configuring the -ax %utput Bow +ount property. To configure unlimited output rows, set -ax %utput Bow +ount to Gero. ####################################################### ####################################################### ####################################################### ####################################################### ####################################################### 1. Phat is a loo4up transformation? 9 loo4up transformation is used to loo4 up data in a flat file, relational table, view, and synonym. /. Phat are the tas4s of a loo4up transformation? The loo4up transformation is used to perform the following tas4s? )et a related value Betrieve a value from the loo4up table based on a value in the source. 2erform a calculation Betrieve a value from a loo4up table and use it in a calculation. ,pdate slowly changing dimension tables &etermine whether rows exist in a target. '. How do you configure a loo4up transformation? +onfigure the loo4up transformation to perform the following types of loo4ups Belational or flat file loo4up 2ipeline loo4up +onnected or unconnected loo4up +ached or uncached loo4up 0. Phat is a pipeline loo4up transformation? 9 pipeline loo4up transformation is used to perform loo4up on application sources such as A-., -.-? or .92. 9 pipeline loo4up transformation has a source qualifier as the loo4ups source. 1. Phat is connected and unconnected loo4up transformation? 9 connected loo4up transformation is connected the transformations in the mapping pipeline. It receives source data, performs a loo4up and returns data to the pipeline. 9n unconnected loo4up transformation is not connected to the other transformations in the mapping pipeline. 9 transformation in the pipeline calls the unconnected loo4up with a @Q2 expression. >. Phat are the differences between connected and unconnected loo4up transformation? +onnected loo4up transformation receives input values directly from the pipeline. ,nconnected loo4up transformation receives input values from the result of a @Q2 expression in another transformation. +onnected loo4up transformation can be configured as dynamic or static cache. ,nconnected loo4up transformation can be configured only as static cache. +onnected loo4up transformation can return multiple columns from the same row or insert into the dynamic loo4up cache. ,nconnected loo4up transformation can return one column from each row. If there is no match for the loo4up condition, connected loo4up transformation returns default value for all output ports. If you configure dynamic caching, the Integration .ervice inserts rows into the cache or leaves it unchanged. If there is no match for the loo4up condition, the unconnected loo4up transformation returns null. In a connected loo4up transformation, the cache includes the loo4up source columns in the loo4up condition and the loo4up source columns that are output ports. In an unconnected loo4up transformation, the cache includes all loo4upOoutput ports in the loo4up condition and the loo4upOreturn port. +onnected loo4up transformation passes multiple output values to another transformation. ,nconnected loo4up transformation passes one output value to another transformation. +onnected loo4up transformation supports user8defined values. ,nconnected loo4up transformation does not support user8defined default values. K. How do you handle multiple matches in loo4up transformation? or what is J@oo4up 2olicy on -ultiple -atchJ? J@oo4up 2olicy on -ultiple -atchJ option is used to determine which rows that the loo4up transformation returns when it finds multiple rows that match the loo4up condition. (ou can select loo4up to return first or last row or any matching row or to report an error. L. Phat is J%utput %ld !alue on ,pdateJ? This option is used when dynamic cache is enabled. Phen this option is enabled, the integration service outputs old values out of the loo4upOoutput ports. Phen the Integration .ervice updates a row in the cache, it outputs the value that existed in the loo4up cache before it updated the row based on the input data. Phen the Integration .ervice inserts a new row in the cache, it outputs null values. Phen you disable this property, the Integration .ervice outputs the same values out of the loo4upOoutput and inputOoutput ports. F. Phat is JInsert Ilse ,pdateJ and J,pdate Ilse InsertJ? These options are used when dynamic cache is enabled. Insert Ilse ,pdate option applies to rows entering the loo4up transformation with the row type of insert. Phen this option is enabled the integration service inserts new rows in the cache and updates existing rows when disabled, the Integration .ervice does not update existing rows. ,pdate Ilse Insert option applies to rows entering the loo4up transformation with the row type of update. Phen this option is enabled, the Integration .ervice updates existing rows, and inserts a new row if it is new. Phen disabled, the Integration .ervice does not insert new rows. 1=. Phat are the options available to configure a loo4up cache? The following options can be used to configure a loo4up cache 2ersistent cache Becache from loo4up source .tatic cache &ynamic cache .hared +ache 2re8build loo4up cache 11. Phat is a cached loo4up transformation and uncached loo4up transformation? +ached loo4up transformation The Integration .ervice builds a cache in memory when it processes the first row of data in a cached @oo4up transformation. The Integration .ervice stores condition values in the index cache and output values in the data cache. The Integration .ervice queries the cache for each row that enters the transformation. ,ncached loo4up transformation <or each row that enters the loo4up transformation, the Integration .ervice queries the loo4up source and returns a value. The integration service does not build a cache. 1/. How the integration service builds the caches for connected loo4up transformation? The Integration .ervice builds the loo4up caches for connected loo4up transformation in the following ways .equential cache The Integration .ervice builds loo4up caches sequentially. The Integration .ervice builds the cache in memory when it processes the first row of the data in a cached loo4up transformation. +oncurrent caches The Integration .ervice builds loo4up caches concurrently. It does not need to wait for data to reach the @oo4up transformation. 1'. How the integration service builds the caches for unconnected loo4up transformation? The Integration .ervice builds caches for unconnected @oo4up transformations as sequentially. 10. Phat is a dynamic cache? The dynamic cache represents the data in the target. The Integration .ervice builds the cache when it processes the first loo4up request. It queries the cache based on the loo4up condition for each row that passes into the transformation. The Integration .ervice updates the loo4up cache as it passes rows to the target. The integration service either inserts the row in the cache or updates the row in the cache or ma4es no change to the cache. 11. Phen you use a dynamic cache, do you need to associate each loo4up port with the input port? (es. (ou need to associate each loo4upOoutput port with the inputOoutput port or a sequence I&. The Integration .ervice uses the data in the associated port to insert or update rows in the loo4up cache. 1>. Phat are the different values returned by 7ew@oo4upBow port? The different values are = 8 Integration .ervice does not update or insert the row in the cache. 1 8 Integration .ervice inserts the row into the cache. / 8 Integration .ervice updates the row in the cache. 1K. Phat is a persistent cache? If the loo4up source does not change between session runs, then you can improve the performance by creating a persistent cache for the source. Phen a session runs for the first time, the integration service creates the cache files and saves them to dis4 instead of deleting them. The next time when the session runs, the integration service builds the memory from the cache file. 1L. Phat is a shared cache? (ou can configure multiple @oo4up transformations in a mapping to share a single loo4up cache. The Integration .ervice builds the cache when it processes the first @oo4up transformation. It uses the same cache to perform loo4ups for subsequent @oo4up transformations that share the cache. 1F. Phat is unnamed cache and named cache? ,nnamed cache Phen @oo4up transformations in a mapping have compatible caching structures, the Integration .ervice shares the cache by default. (ou can only share static unnamed caches. 7amed cache ,se a persistent named cache when you want to share a cache file across mappings or share a dynamic and a static cache. The caching structures must match or be compatible with a named cache. (ou can share static and dynamic named caches. /=. How do you improve the performance of loo4up transformation? +reate an index on the columns used in the loo4up condition 2lace conditions with equality operator first +ache small loo4up tables. Aoin tables in the database If the source and the loo4up table are in the same database, 3oin the tables in the database rather than using a loo4up transformation. ,se persistent cache for static loo4ups. 9void %B&IB :( on all columns in the loo4up source. .pecify explicitly the %B&IB :y clause on the required columns. <or flat file loo4ups, provide .orted files as loo4up source. 1. Phat is an update strategy transformation? ,pdate strategy transformation is used to flag source rows for insert, update, delete or re3ect within a mapping. :ased on this flagging each row will be either inserted or updated or deleted from the target. 9lternatively the row can be re3ected. /. Phy update strategy is an active transformation? 9s update strategy transformation can re3ect rows, it is called as an active transformation. '. Phat are the constants used in update strategy transformation for flagging the rows? &&"I7.IBT is used for inserting the rows. The numeric value is =. &&",2&9TI is used for updating the rows. The numeric value is 1. &&"&I@ITI is used for deleting the rows. The numeric value is /. &&"BIAI+T is used for re3ecting the rows. The numeric value is '. 0. If you place an aggregator after the update strategy transformation, how the output of aggregator will be affected? The update strategy transformation flags the rows for insert, update and delete of re3ect before you perform aggregate calculation. How you flag a particular row determines how the aggregator transformation treats any values in that row used in the calculation. <or example, if you flag a row for delete and then later use the row to calculate the sum, the integration service subtracts the value appearing in this row. If the row had been flagged for insert, the integration service would add its value to the sum. 1. How to update the target table without using update strategy transformation? In the session properties, there is an option DTreat .ource Bows 9sD. ,sing this option you can specify whether all the source rows need to be inserted, updated or deleted. >. If you have an update strategy transformation in the mapping, what should be the value selected for DTreat .ource Bows 9sD option in session properties? The value selected for the option is D&ata &rivenD. The integration service follows the instructions coded in the update strategy transformation. K. If you have an update strategy transformation in the mapping and you did not selected the value D&ata &rivenD for DTreat .ource Bows 9sD option in session, then how the session will behave? If you do not choose &ata &riven when a mapping contains an ,pdate .trategy or +ustom transformation, the Por4flow -anager displays a warning. Phen you run the session, the Integration .ervice does not follow instructions in the ,pdate .trategy transformation in the mapping to determine how to flag rows. L. In which files the data re3ected by update strategy transformation will be written? If the update strategy transformation is configured to <orward Be3ected Bows then the integration service forwards the re3ected rows to next transformation and writes them to the session re3ect file. If you do not select the forward re3ect rows option, the integration service drops re3ected rows and writes them to the session log file. If you enable row error handling, the Integration .ervice writes the re3ected rows and the dropped rows to the row error logs. It does not generate a re3ect file. 1. Phat is a stored procedure? 9 stored procedure is a precompiled collection of database procedural statements. .tored procedures are stored and run within the database. /. )ive some examples where a stored procedure is used? The stored procedure can be used to do the following tas4s +hec4 the status of a target database before loading data into it. &etermine if enough space exists in a database. 2erform a specialiGed calculation. &rop and recreate indexes. '. Phat is a connected stored procedure transformation? The stored procedure transformation is connected to the other transformations in the mapping pipeline. 0. In which scenarios a connected stored procedure transformation is used? Bun a stored procedure every time a row passes through the mapping. 2ass parameters to the stored procedure and receive multiple output parameters. 1. Phat is an unconnected stored procedure transformation? The stored procedure transformation is not connected directly to the flow of the mapping. It either runs before or after the session or is called by an expression in another transformation in the mapping. >. In which scenarios an unconnected stored procedure transformation is used? Bun a stored procedure before or after a session Bun a stored procedure once during a mapping, such as pre or post8session. Bun a stored procedure based on data that passes through the mapping, such as when a specific port does not contain a null value. Bun nested stored procedures. +all multiple times within a mapping. K. Phat are the options available to specify when the stored procedure transformation needs to be run? The following options describe when the stored procedure transformation runs 7ormal The stored procedure runs where the transformation exists in the mapping on a row8by8row basis. This is useful for calling the stored procedure for each row of data that passes through the mapping, such as running a calculation against an input port. +onnected stored procedures run only in normal mode. 2re8load of the .ource :efore the session retrieves data from the source, the stored procedure runs. This is useful for verifying the existence of tables or performing 3oins of data in a temporary table. 2ost8load of the .ource 9fter the session retrieves data from the source, the stored procedure runs. This is useful for removing temporary tables. 2re8load of the Target :efore the session sends data to the target, the stored procedure runs. This is useful for verifying target tables or dis4 space on the target system. 2ost8load of the Target 9fter the session sends data to the target, the stored procedure runs. This is useful for re8creating indexes on the database. 9 connected stored procedure transformation runs only in 7ormal mode. 9 unconnected stored procedure transformation runs in all the above modes. L. Phat is execution order in stored procedure transformation? The order in which the Integration .ervice calls the stored procedure used in the transformation, relative to any other stored procedures in the same mapping. %nly used when the .tored 2rocedure Type is set to anything except 7ormal and more than one stored procedure exists. F. Phat is 2B%+"BI.,@T in stored procedure transformation? 2B%+"BI.,@T is a system variable, where the output of an unconnected stored procedure transformation is assigned by default. 1=. Phat are the parameter types in a stored procedure? There are three types of parameters exist in a stored procedure I7 Input passed to the stored procedure %,T %utput returned from the stored procedure I7%,T &efines the parameter as both input and output. %nly %racle supports this parameter type. 1. Phat is a source qualifier transformation? 9 source qualifier represents the rows that the integration service reads when it runs a session. .ource qualifier is an active transformation. /. Phy you need a source qualifier transformation? The source qualifier transformation converts the source data types into informatica native data types. '. Phat are the different tas4s a source qualifier can do? Aoin two or more tables originating from the same source 5homogeneous sources6 database. <ilter the rows. .ort the data .electing distinct values from the source +reate custom query .pecify a pre8sql and post8sql 0. Phat is the default 3oin in source qualifier transformation? The source qualifier transformation 3oins the tables based on the primary 4ey8foreign 4ey relationship. 1. How to create a custom 3oin in source qualifier transformation? Phen there is no primary 4ey8foreign 4ey relationship between the tables, you can specify a custom 3oin using the Duser8defined 3oinD option in the properties tab of source qualifier. >. How to 3oin heterogeneous sources and flat files? ,se 3oiner transformation to 3oin heterogeneous sources and flat files K. How do you configure a source qualifier transformation? .?@ ?uery ,ser8&efined Aoin .ource <ilter 7umber of .orted 2orts .elect &istinct 2re8.?@ 2ost8.?@ 1. Phat is a sequence generator transformation? 9 .equence generator transformation generates numeric values. .equence generator transformation is a passive transformation. /. Phat is the use of a sequence generator transformation? 9 sequence generator is used to create unique primary 4ey values, replace missing primary 4ey values or cycle through a sequential range of numbers. '. Phat are the ports in sequence generator transformation? 9 sequence generator contains two output ports. They are +,BB!9@ and 7IHT!9@. 0. Phat is the maximum number of sequence that a sequence generator can generate? The maximum value is F,//','K/,='>,L10,KK1,L=K 1. Phen you connect both the 7IHT!9@ and +,BB!9@ ports to a target, what will be the output values of these ports? The output values are 7IHT!9@ +,BB!9@ 1 / / ' ' 0 0 1 1 > >. Phat will be the output value, if you connect only +,BB!9@ to the target without connecting 7IHT!9@? The integration service passes a constant value for each row. K. Phat will be the value of +,BB!9@ in a sequence generator transformation? +,BB!9@ is the sum of J7IHT!9@J and JIncrement :yJ !alue. L. Phat is the number of cached values set to default for a sequence generator transformation? <or non8reusable sequence generators, the number of cached values is set to Gero. <or reusable sequence generators, the number of cached values is set to 1===. F. How do you configure a sequence generator transformation? The following properties need to be configured for a sequence generator transformation .tart !alue Increment :y Ind !alue +urrent !alue +ycle 7umber of +ached !alues 1. Phat is a router transformation? 9 router is used to filter the rows in a mapping. ,nli4e filter transformation, you can specify one or more conditions in a router transformation. Bouter is an active transformation. /. How to improve the performance of a session using router transformation? ,se router transformation in a mapping instead of creating multiple filter transformations to perform the same tas4. The router transformation is more efficient in this case. Phen you use a router transformation in a mapping, the integration service processes the incoming data only once. Phen you use multiple filter transformations, the integration service processes the incoming data for each transformation. '. Phat are the different groups in router transformation? The router transformation has the following types of groups Input %utput 0. How many types of output groups are there? There are two types of output groups ,ser8defined group &efault group 1. Phere you specify the filter conditions in the router transformation? (ou can creat the group filter conditions in the groups tab using the expression editor. >. +an you connect ports of two output groups from router transformation to a single target? 7o. (ou cannot connect more than one output group to one target or a single input group transformation. 1. Phat is ran4 transformation? 9 ran4 transformation is used to select top or bottom ran4 of data. This means, it selects the largest or smallest numeric value in a port or group. Ban4 transformation also selects the strings at the top or bottom of a session sort order. Ban4 transformation is an active transformation. /. Phat is ran4 cache? The integration service compares input rows in the data cache, if the input row out8ran4s a cached row, the integration service replaces the cached row with the input row. If you configure the ran4 transformation to ran4 across multiple groups, the integration service ran4s incrementally for each group it finds. The integration service stores group information in index cache and row data in data cache. '. Phat is B97QI7&IH port? The designer creates B97QI7&IH port for each ran4 transformation. The integration service uses the ran4 index port to store the ran4ing position for each row in a group. 0. How do you specify the number of rows you want to ran4 in a ran4 transformation? In the ran4 transformation properties, there is an option D7umber of Ban4sD for specifying the number of rows you wants to ran4. 1. How to select either top or bottom ran4ing for a column? In the ran4 transformation properties, there is an option DTopO:ottomD for selecting the top or bottom ran4ing for a column. >. +an we specify ran4ing on more than one port? 7o. Pe can specify to ran4 the data based on only one port. In the ports tab, you have to chec4 the B option for designating the port as a ran4 port and this option can be chec4ed only on one port. 1. Phat is normaliGer transformation? The normaliGer transformation receives a row that contains multiple8occurring columns and retruns a row for each instance of the multiple8occurring data. This means it converts column data in to row data. 7ormaliGer is an active transformation. /. Phich transformation is required to process the cobol sources? .ince the cobol sources contain denormalGed data, normaliGer transformation is used to normaliGe the cobol sources. '. Phat is generated 4ey and generated column id in a normaliGer transformation? The integration service increments the generated 4ey sequence number each time it process a source row. Phen the source row contains a multiple8occurring column or a multiple8occurring group of columns, the normaliGer transformation returns a row for each occurrence. Iach row contains the same generated 4ey value. The normaliGer transformation has a generated column I& 5)+I&6 port for each multiple8occurring column. The )+I& is an index for the instance of the multiple8 occurring data. <or example, if a column occurs ' times in a source record, the normaliGer returns a value of 1,/ or ' in the generated column I&. 0. Phat is !.9-? !.9- 5!irtual .torage 9ccess -ethod6 is a file access method for an I:- mainframe operating system. !.9- organiGe records in indexed or sequential flat files. 1. Phat is !.9- normaliGer transformation? The !.9- normaliGer transformation is the source qualifier transformation for a +%:%@ source definition. 9 +%:%@ source is flat file that can contain multiple8 occurring data and multiple types of records in the same file. >. Phat is pipeline normaliGer transformation? 2ipeline normaliGer transformation processes multiple8occurring data from relational tables or flat files. K. Phat is occurs clause and redefines clause in normaliGer transformation? %ccurs clause is specified when the source row has a multiple8occurring columns. 9 redefines clause is specified when the source has rows of multiple columns. 1. Phat is a 3oiner transformation? 9 3oiner transformation 3oins two heterogeneous sources. (ou can also 3oin the data from the same source. The 3oiner transformation 3oins sources with at least one matching column. The 3oiner uses a condition that matches one or more 3oins of columns between the two sources. /. How many 3oiner transformations are required to 3oin n sources? To 3oin n sources n81 3oiner transformations are required. '. Phat are the limitations of 3oiner transformation? (ou cannot use a 3oiner transformation when input pipeline contains an update strategy transformation. (ou cannot use a 3oiner if you connect a sequence generator transformation directly before the 3oiner. 0. Phat are the different types of 3oins? 7ormal 3oin In a normal 3oin, the integration service discards all the rows from the master and detail source that do not match the 3oin condition. -aster outer 3oin 9 master outer 3oin 4eeps all the rows of data from the detail source and the matching rows from the master source. It discards the unmatched rows from the master source. &etail outer 3oin 9 detail outer 3oin 4eeps all the rows of data from the master source and the matching rows from the detail source. It discards the unmatched rows from the detail source. <ull outer 3oin 9 full outer 3oin 4eeps all rows of data from both the master and detail rows. 1. Phat is 3oiner cache? Phen the integration service processes a 3oiner transformation, it reads the rows from master source and builds the index and data cached. Then the integration service reads the detail source and performs the 3oin. In case of sorted 3oiner, the integration service reads both sources 5master and detail6 concurrently and builds the cache based on the master rows. >. How to improve the performance of 3oiner transformation? Aoin sorted data whenever possible. <or an unsorted Aoiner transformation, designate the source with fewer rows as the master source. <or a sorted Aoiner transformation, designate the source with fewer duplicate 4ey values as the master source. K. Phy 3oiner is a bloc4ing transformation? Phen the integration service processes an unsorted 3oiner transformation, it reads all master rows before it reads the detail rows. To ensure it reads all master rows before the detail rows, the integration service bloc4s all the details source while it caches rows from the master source. 9s it bloc4s the detail source, the unsorted 3oiner is called a bloc4ing transformation. L. Phat are the settings used to configure the 3oiner transformation -aster and detail source Type of 3oin Aoin condition 1. Phat is a filter transformation? 9 filter transformation is used to filter out the rows in mapping. The filter transformation allows the rows that meet the filter condition to pass through and drops the rows that do not meet the condition. <ilter transformation is an active transformation. /. +an we specify more than one filter condition in a filter transformation? Pe can only specify one condition in the filter transformation. To specify more than one condition, we have to use router transformation? '. In which case a filter transformation acts as passive transformation? If the filter condition is set to TB,I, then it passes all the rows without filtering any data. In this case, the filter transformation acts as passive transformation. 0. +an we concatenate ports from more than one transformation into the filter transformation? 7o. The input ports for the filter must come from a single transformation. 1. How to filter the null values and spaces? ,se the I.7,@@ and I.".29+I. functions Ixample II<5I.7,@@5commission6,<9@.I,TB,I6 >. How session performance can be improved by using filter transformation? Qeep the filter transformation as close as possible to the sources in the mapping. This allows the unwanted data to be discarded and the integration service processes only the required rows. If the source is relational source, use the source qualifier to filter the rows. 1. Phat is aggregator transformation? 9ggregator transformation performs aggregate calculations li4e sum, average, count etc. It is an active transformation, changes the number of rows in the pipeline. ,nli4e expression transformation 5performs calculations on a row8by8row basis6, an aggregator transformation performs calculations on group of rows. /. Phat is aggregate cache? The integration service creates index and data cache in memory to process the aggregator transformation and stores the data group in index cache, row data in data cache. If the integration service requires more space, it stores the overflow values in cache files. '. How can we improve performance of aggregate transformation? ,se sorted input .ort the data before passing into aggregator. The integration service uses memory to process the aggregator transformation and it does not use cache memory. <ilter the unwanted data before aggregating. @imit the number of inputOoutput or output ports to reduce the amount of data the aggregator transformation stores in the data cache. 0. Phat are the different types of aggregate functions? The different types of aggregate functions are listed below 9!) +%,7T <IB.T @9.T -9H -I&I97 -I7 2IB+I7TI@I .T&&I! .,- !9BI97+I 1. Phy cannot you use both single level and nested aggregate functions in a single aggregate transformation? The nested aggregate function returns only one output row, whereas the single level aggregate function returns more than one row. .ince the number of rows returned are not same, you cannot use both single level and nested aggregate functions in the same transformation. If you include both the single level and nested functions in the same aggregator, the designer mar4s the mapping or mapplet as invalid. .o, you need to create separate aggregator transformations. >. ,p to how many levels, you can nest the aggregate functions? Pe can nest up to two levels only. Ixample -9H5 .,-5 ITI- 6 6 K. Phat is incremental aggregation? The integration service performs aggregate calculations and then stores the data in historical cache. 7ext time when you run the session, the integration service reads only new data and uses the historical cache to perform new aggregation calculations incrementally. L. Phy cannot we use sorted input option for incremental aggregation? In incremental aggregation, the aggregate calculations are stored in historical cache on the server. In this historical cache the data need not be in sorted order. If you give sorted input, the records come as presorted for that particular run but in the historical cache the data may not be in the sorted order. That is why this option is not allowed. F. How the 7,@@ values are handled in 9ggregator? (ou can configure the integration service to treat null values in aggregator functions as 7,@@ or Gero. :y default the integration service treats null values as 7,@@ in aggregate functions.