0% found this document useful (0 votes)
158 views4 pages

Interview Questions Harsha

The document discusses various Informatica concepts including: 1. Lookup transformations which look up data in tables and pass results to other transformations. 2. The difference between connected and unconnected lookups and their capabilities. 3. Aggregate transformations which allow performing calculations like sums and averages in groups. 4. Incremental aggregation which performs new calculations incrementally using historical cache data. 5. Source qualifier transformations which represent the source data read by Informatica sessions. 6. Ways to identify and address bottlenecks in mappings, sources, targets, sessions, and transformations.

Uploaded by

Harsha Vardhan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
158 views4 pages

Interview Questions Harsha

The document discusses various Informatica concepts including: 1. Lookup transformations which look up data in tables and pass results to other transformations. 2. The difference between connected and unconnected lookups and their capabilities. 3. Aggregate transformations which allow performing calculations like sums and averages in groups. 4. Incremental aggregation which performs new calculations incrementally using historical cache data. 5. Source qualifier transformations which represent the source data read by Informatica sessions. 6. Ways to identify and address bottlenecks in mappings, sources, targets, sessions, and transformations.

Uploaded by

Harsha Vardhan
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

INTERVIEW QUESTIONS

1) What is a lookup transformation?


Used to look up data in a relational table, views, or synonym, The informatica server queries the
lookup table based on the lookup ports in the transformation. It compares lookup transformation
port values to lookup table column values based on the lookup condition. The result is passed to
other transformations and the target.
Used to :
Get related value
Perform a calculation
Update slowly changing dimension tables.
2) Diff between connected and unconnected lookups.
Connected :
Received input values directly from the pipeline
Can use Dynamic or static cache.
Cache includes all lookup columns used in the mapping
Can return multiple columns from the same row
If there is no match , can return default values
Default values can be specified.
Un connected :
Receive input values from the result of a LKP expression in another transformation.
Only static cache can be used.
Cache includes all lookup/output ports in the lookup condition and lookup or return port.
Can return only one column from each row.
If there is no match it returns null.
Default values cannot be specified.

3) Explain aggregate transformation?


The aggregate transformation allows you to perform aggregate calculations, such as averages,
sum, max, min etc. The aggregate transformation is unlike the Expression transformation, in
that you can use the aggregator transformation to perform calculations in groups. The expression
transformation permits you to perform calculations on a row-by-row basis only.

4) Incremental aggregation?
In the Session property tag there is an option for performing incremental aggregation. When the
Informatica server performs incremental aggregation , it passes new source data through the
mapping and uses historical cache (index and data cache) data to perform new aggregation
calculations incrementally.

5) What is Source qualifier transformation?


When you add relational or flat file source definition to a mapping , you need to connect to a
source Qualifier transformation. The source qualifier represents the records that the informatica
server reads when it runs a session.
Join Data originating from the same source database.
Filter records when the Informatica server reads the source data.
Specify an outer join rather than the default inner join.
Specify sorted ports
Select only distinct values from the source
Create a custom query to issue a special SELECT statement for the Informatica server to read the
source data.

6) Explain constraint-based load ordering? Where do you set this?

A: Constraint based loading can be used when you have multiple targets in the mapping and the target
tables have a PK-FK relationship in the database. It can be set in the session properties. You have to set
the Source “Treat Rows as: INSERT” and check the box “Constraint based load ordering” in Advanced
Tab.

Q: What is Slowly Changing Dimention and what are the types of Slowly changing Dimension?

Type 1 Dimension mapping. Loads a slowly changing dimension table by inserting new
dimensions and overwriting existing dimensions. Use this mapping when you do not want a history of
previous dimension data.

Type 2 Dimension/Flag Current mapping. Loads a slowly changing dimension table by inserting new
and changed dimensions using a flag(ACTIVE/INACTIVE) to mark current dimension data and an
incremented primary key to track changes. Use this mapping when you want to keep a full history of
dimension data, tracking the progression of changes while flagging only the current dimension.

Type 3 Dimension mapping. Loads a slowly changing dimension table by inserting new dimensions
and updating values in existing dimensions. Use this mapping when you want to keep the current
and previous dimension values in your dimension table.

Q: What is Mapping Parameter and Variable?

Mapping Parameters : A mapping parameter represents a constant value that you can define before
running a session. A mapping parameter retains the same value throughout the entire session

Mapping Variables : Unlike a mapping parameter, a mapping variable represents a value that can
change through the session. The Informatica Server saves the value of a mapping variable to the
repository at the end of each successful session run and uses that value the next time you run the
session.

7) How do you identify the bottlenecks in Mappings?


Bottlenecks can occur in
1. Targets
The most common performance bottleneck occurs when the informatica server writes to a target
database. You can identify target bottleneck by configuring the session to write to a flat file target.

If the session performance increases significantly when you write to a flat file, you have a target
bottleneck.
Solution :
Drop or Disable index or constraints
Perform bulk load (Ignores Database log)
Increase commit interval (Recovery is compromised)
Tune the database for RBS, Dynamic Extension etc.,

2. Sources
Set a filter transformation after each SQ and see the records are not through.
If the time taken is same then there is a problem.
You can also identify the Source problem by
Read Test Session – where we copy the mapping with sources, SQ and remove all transformations
and connect to file target. If the performance is same then there is a Source bottleneck.
Using database query – Copy the read query directly from the log. Execute the query against the
source database with a query tool. If the time it takes to execute the query and the time to fetch
the first row are significantly different, then the query can be modified using optimizer hints.
Solutions:
Optimize Queries using hints.
Use indexes wherever possible.

3. Mapping
If both Source and target are OK then problem could be in mapping.
Add a filter transformation before target and if the time is the same then there is a problem.
(OR) Look for the performance monitor in the Sessions property sheet and view the counters.

Solutions:
If High error rows and rows in lookup cache indicate a mapping bottleneck.
Optimize Single Pass Reading:
Optimize Lookup transformation :
1. Caching the lookup table:
When caching is enabled the informatica server caches the lookup table and queries the
cache during the session. When this option is not enabled the server queries the lookup
table on a row-by row basis.
Static, Dynamic, Shared, Un-shared and Persistent cache
2. Optimizing the lookup condition
Whenever multiple conditions are placed, the condition with equality sign should take
precedence.
3. Indexing the lookup table
The cached lookup table should be indexed on order by columns. The session log contains
the ORDER BY statement
The un-cached lookup since the server issues a SELECT statement for each row passing
into lookup transformation, it is better to index the lookup table on the columns in the
condition

Optimize Filter transformation:


You can improve the efficiency by filtering early in the data flow. Instead of using a filter
transformation halfway through the mapping to remove a sizable amount of data.
Use a source qualifier filter to remove those same rows at the source,
If not possible to move the filter into SQ, move the filter transformation as close to the
source
qualifier as possible to remove unnecessary data early in the data flow.
Optimize Aggregate transformation:
1. Group by simpler columns. Preferably numeric columns.
2. Use Sorted input. The sorted input decreases the use of aggregate caches. The server
assumes all input data are sorted and as it reads it performs aggregate calculations.
3. Use incremental aggregation in session property sheet.
Optimize Seq. Generator transformation:
1. Try creating a reusable Seq. Generator transformation and use it in multiple mappings
2. The number of cached value property determines the number of values the informatica
server caches at one time.
Optimize Expression transformation:
1. Factoring out common logic
2. Minimize aggregate function calls.
3. Replace common sub-expressions with local variables.
4. Use operators instead of functions.

4. Sessions
If you do not have a source, target, or mapping bottleneck, you may have a session bottleneck.
You can identify a session bottleneck by using the performance details. The informatica server
creates performance details when you enable Collect Performance Data on the General Tab of
the session properties.
Performance details display information about each Source Qualifier, target definitions, and
individual transformation. All transformations have some basic counters that indicate the

Number of input rows, output rows, and error rows.


Any value other than zero in the readfromdisk and writetodisk counters for Aggregate, Joiner,

or Rank transformations indicate a session bottleneck.


Low bufferInput_efficiency and BufferOutput_efficiency counter also indicate a session
bottleneck.
Small cache size, low buffer memory, and small commit intervals can cause session bottlenecks.

You might also like