Informatica Pushdown Tips
Informatica Pushdown Tips
Applies to:
Informatica with Pushdown feature (version 8x)
Summary
Pushdown Optimization is for better performance. Along with enabling this Pushdown property, certain
guidelines should be followed while developing the mapping. This document discusses about the guidelines,
tuning tips and practices to be followed to achieve the Pushdown for simple/complex mappings.
Author Bio
Author(s): Manimala Rajangam
Company: Merill Lynch
Created on: April 27, 2010
Manimala Rajangam, Merill Lynch(acquired by Bank Of America),
Analyst.
Playing the role of lead developer in Informatica.
Table of Contents
Document Usage
The target audience of this document is:
• Informatica Architects / Informatica Developer.
Details of Document
Preface
Pushdown is a specific feature which is available in Informatica to optimize the load. If the source,
target and other tables (which are used as lookup) are in the same database then pushdown is the
better option to load your target in spite of normal Relational reader/writer which takes more time to
read/write records. There are few steps to be followed for better performance which is given in
detail below:
Steps to be followed
• Create a mapping with a compatible source, lookup and target connections. Push
down can be of source-side, target-side and Full. Better performance is achieved
while using Full pushdown.
Reason: Full pushdown is possible only when the connections used for source, lookup
and target are same (in turn which means the tables should be in the same database).
Else we have to opt for either “To Source” or “To Target”. Optimizer queries will not
be the same for “To Source”, “To Target” and “Full” pushdown.
• Incase if the lookup table or source table should be restricted with filter condition,
best way is to use SQL Override query or Lookup override query with that filter
condition which will give better performance in spite of using the source filter or
lookup filter.
Reason: Unconnected lookups will always be outer joined with source in the push down
query. So it always creates a view for that unconnected lookup. But for source filter, a
separate view will not be created if the filter condition is given in the source filter. For
better performance, the filter condition should be given along with the SQL override
query. View will be created based on the query in SQL override.
If the same filter is given in source filter or in any filter transformation in the mapping,
the filter will be appended to the pushdown query. But if they were given in the SQL
Override a separate view will be created after filtering those records. So that the number
of records read will reduced.
• Grant select access to all the lookup tables if they are in different schema in the same
database. Else Informatica will fail to create a view when it tries to create a view on
a table in other schema.
• Expression functions in the variable ports cannot be pushed, so always the
expression functions or the lookup call can be given in the output ports. For the
nested variables one or more expression transformations should be used.
For example: Let us say emp_name is available in the source for which we have to
lookup Employee table to get the emp_id and then pass this emp_id to get dept_id from
department table.
This can be achieved in a single expression transformation if we do not use Pushdown.
Here the emp_id value should be assigned to a variable port and then do a lookup to
department table to retrieve dept_id but the variable port cannot be pushed to a query
while using push down optimization.
Two expression transformations should be used in this case. Where first expression
transformation should have a lookup on employee table and the value returned should
be assigned to an output port out_emp_id.
And in the second expression transformation, this out_emp_id can be passed to the
lookup on department table where the returned value can be assigned to another output
port in second expression transformation.
• Not all expression functions can be pushed by the pushdown optimization. Please
refer the Informatica help PDFs to know the functions which are supported for each
database.
• Avoid two lookup conditions in the single output port
For example:
out_emp_id=iif (
isnull( :LKP.LKP_EMPLOYEE(emp_name)),’DEFAULT’, :LKP.LKP_EMPLOYEE(emp_name))
This could error out pushdown while configuring the pushdown for “FULL”.We cannot
view the reason also. So whenever the pushdown preview fails it shows the query
conversion is blocked in the mapping.
• Uncheck the “Pre 85 timestamp compatibility” session property, if its checked while
creating a session.
• If the source have SQL override or the mapping uses lookup, enable the option for
the view creation by pushdown (shown above).
If sequence is used, enable the option for the sequence creation (shown above).
The views or the sequence will be created in the same schema, which is configured
for source and target.
After the run the views will be dropped.
• Preview the pushdown optimization after configuring the session for push down
• The session log will not have the transformations details for the processed
records.
• The session will fail even if there is a single failure while loading the target table,
even if the stop on error session property is set as “0”.
• Debugger will not work when a session is configured for push down.
• Only the total number of records that were read and processed will be available.
• The busy percentages for the transformations will not be available.
Benefits
• Better performance gain.
• Storage space can be reduced. As all temporary views will be created and
dropped after the run.
Limitations
Conclusion
Performance gain can be highly achieved by Pushdown Optimization. Compare the mapping with and
without pushdown to measure the gain.