Pages

Subscribe:

Thursday, February 24, 2011

Pushdown Optimization In Informatica

Pushdown Optimization which is a new concept in Informatica PowerCentre, allows developers to balance data transformation load among servers. This article describes pushdown techniques.

Pushdown Optimization

Pushdown optimization is a way of load-balancing among servers in order to achieve optimal performance. Veteran ETL developers often come across issues when they need to determine the appropriate place to perform ETL logic. Suppose an ETL logic needs to filter out data based on some condition. One can either do it in database by using WHERE condition in the SQL query or inside Informatica by using Informatica Filter transformation. Sometimes, we can even "push" some transformation logic to the target database instead of doing it in the source side (Especially in the case of EL-T rather than ETL). Such optimization is crucial for overall ETL performance.

How does Push-Down Optimization work?

One can push transformation logic to the source or target database using pushdown optimization. The Integration Service translates the transformation logic into SQL queries and sends the SQL queries to the source or the target database which executes the SQL queries to process the transformations. The amount of transformation logic one can push to the database depends on the database, transformation logic, and mapping and session configuration. The Integration Service analyzes the transformation logic it can push to the database and executes the SQL statement generated against the source or target tables, and it processes any transformation logic that it cannot push to the database.


Using Pushdown Optimization

Use the Pushdown Optimization Viewer to preview the SQL statements and mapping logic that the Integration Service can push to the source or target database. You can also use the Pushdown Optimization Viewer to view the messages related to pushdown optimization.

Let us take an example

Filter Condition used in this mapping is: DEPTNO>40


Suppose a mapping contains a Filter transformation that filters out all employees except those with a DEPTNO greater than 40. The Integration Service can push the transformation logic to the database. It generates the following SQL statement to process the transformation logic:

INSERT INTO EMP_TGT(EMPNO, ENAME, SAL, COMM, DEPTNO)
SELECT EMP_SRC. EMPNO,
EMP_SRC.ENAME,
EMP_SRC.SAL,
EMP_SRC.COMM,
EMP_SRC.DEPTNO
FROM EMP_SRC
WHERE (EMP_SRC.DEPTNO >40)

The Integration Service generates an INSERT SELECT statement and it filters the data using a WHERE clause. The Integration Service does not extract data from the database at this time.

We can configure pushdown optimization in the following ways:

Using source-side pushdown optimization:

The Integration Service pushes as much transformation logic as possible to the source database. The Integration Service analyzes the mapping from the source to the target or until it reaches a downstream transformation it cannot push to the source database and executes the corresponding SELECT statement.

Using target-side pushdown optimization:

The Integration Service pushes as much transformation logic as possible to the target database. The Integration Service analyzes the mapping from the target to the source or until it reaches an upstream transformation it cannot push to the target database. It generates an INSERT, DELETE, or UPDATE statement based on the transformation logic for each transformation it can push to the database and executes the DML.

Using full pushdown optimization:

The Integration Service pushes as much transformation logic as possible to both source and target databases. If you configure a session for full pushdown optimization, and the Integration Service cannot push all the transformation logic to the database, it performs source-side or target-side pushdown optimization instead. Also the source and target must be on the same database. The Integration Service analyzes the mapping starting with the source and analyzes each transformation in the pipeline until it analyzes the target. When it can push all transformation logic to the database, it generates an INSERT SELECT statement to run on the database. The statement incorporates transformation logic from all the transformations in the mapping. If the Integration Service can push only part of the transformation logic to the database, it does not fail the session, it pushes as much transformation logic to the source and target database as possible and then processes the remaining transformation logic.

For example, a mapping contains the following transformations:
SourceDefn -> SourceQualifier -> Aggregator -> Rank -> Expression -> TargetDefn

SUM(SAL), SUM(COMM) Group by DEPTNO

RANK PORT on SAL

TOTAL = SAL+COMM

Pushdown optimization example 2


The Rank transformation cannot be pushed to the database. If the session is configured for full pushdown optimization, the Integration Service pushes the Source Qualifier transformation and the Aggregator transformation to the source, processes the Rank transformation, and pushes the Expression transformation and target to the target database.

When we use pushdown optimization, the Integration Service converts the expression in the transformation or in the workflow link by determining equivalent operators, variables, and functions in the database. If there is no equivalent operator, variable, or function, the Integration Service itself processes the transformation logic. The Integration Service logs a message in the workflow log and the Pushdown Optimization Viewer when it cannot push an expression to the database. Use the message to determine the reason why it could not push the expression to the database.


How does Integration Service handle Push Down Optimization?

To push transformation logic to a database, the Integration Service might create temporary objects in the database. The Integration Service creates a temporary sequence object in the database to push Sequence Generator transformation logic to the database. The Integration Service creates temporary views in the database while pushing a Source Qualifier transformation or a Lookup transformation with a SQL override to the database, an unconnected relational lookup, filtered lookup.

1. To push Sequence Generator transformation logic to a database, we must configure the session for pushdown optimization with Sequence.
2. To enable the Integration Service to create the view objects in the database we must configure the session for pushdown optimization with View.
2. After the database transaction completes, the Integration Service drops sequence and view objects created for pushdown optimization.


Configuring Parameters for Pushdown Optimization

Depending on the database workload, we might want to use source-side, target-side, or full pushdown optimization at different times and for that we can use the $$PushdownConfig mapping parameter. The settings in the $$PushdownConfig parameter override the pushdown optimization settings in the session properties. Create $$PushdownConfig parameter in the Mapping Designer , in session property for Pushdown Optimization attribute select $$PushdownConfig and define the parameter in the parameter file.

The possible values may be,
1. none i.e the integration service itself processes all the transformations,
2. Source [Seq View],
3. Target [Seq View],
4. Full [Seq View]


Pushdown Optimization Viewer

Use the Pushdown Optimization Viewer to examine the transformations that can be pushed to the database. Select a pushdown option or pushdown group in the Pushdown Optimization Viewer to view the corresponding SQL statement that is generated for the specified selections. When we select a pushdown option or pushdown group, we do not change the pushdown configuration. To change the configuration, we must update the pushdown option in the session properties.

Database that supports Informatica Pushdown Optimization

We can configure sessions for pushdown optimization having any of the databases like Oracle, IBM DB2, Teradata, Microsoft SQL Server, Sybase ASE or Databases that use ODBC drivers.

When we use native drivers, the Integration Service generates SQL statements using native database SQL. When we use ODBC drivers, the Integration Service generates SQL statements using ANSI SQL. The Integration Service can generate more functions when it generates SQL statements using native language instead of ANSI SQL.


Handling Error when Pushdown Optimization is enabled

When the Integration Service pushes transformation logic to the database, it cannot track errors that occur in the database.

When the Integration Service runs a session configured for full pushdown optimization and an error occurs, the database handles the errors. When the database handles errors, the Integration Service does not write reject rows to the reject file.

If we configure a session for full pushdown optimization and the session fails, the Integration Service cannot perform incremental recovery because the database processes the transformations. Instead, the database rolls back the transactions. If the database server fails, it rolls back transactions when it restarts. If the Integration Service fails, the database server rolls back the transaction.

18 comments:

  1. You'll be able to quite easily keep track of 50 employees at a time so you can monitor the sheer number of working hours of each employee. It helps you in calculating the precise soon add up to be paid to a member of staff depending until the number of hours QuickBooks Payroll Support Phone Number has contributed of their work. The amazing feature because of this application is direct deposit and that can be done at any time one day.

    ReplyDelete
  2. Every user are certain to get 24/7 support services with this online technical experts using QuickBooks support contact number. When you’re stuck in times which you can’t discover ways to eradicate a concern, all that is necessary would be to dial QuickBooks Support Number Remain calm; they will inevitably and instantly solve your queries.

    ReplyDelete
  3. Are you currently utilising the software the very first time? You might get some technical glitch. You'll have errors also. Where do you turn? Take help from us straight away. We're going to provide full support to you personally. You can cope with the majority of the errors. We have to just coach you on something. Thoughts is broken trained, you're getting everything fine. Where can you turn when you yourself have to deal with the company’s transaction? It must be flawless. Do you think you're confident about any of it? If not, this might be basically the right time so you can get the QuickBooks Payroll Support Phone Number. We have trained staff to soft your issue. Sometimes errors could also happen as a consequence of some small mistakes. Those are decimals, comma, backspace, etc. Are you go through to cope with this? Unless you, we have been here that will help you.

    ReplyDelete
  4. The team of genius are highly experienced and certified in solving QuickBooks error 1904 technical issues and also nontechnical issues. The QuickBooks customer care executives is likely to be available 24/7 only for their users. So get quick help by contacting the QuickBooks Technical Support Phone Number.

    ReplyDelete
  5. it is commonplace to manage any errors on your own QuickBooks if you're doing not proceed with the syntax, if the code is not put in properly or if you’re having any corruption within the information of the QuickBooks 247 Support Phone Number.

    ReplyDelete
  6. Yes, our QuickBooks Enterprise help number may be a magic bullet to solve any QuickBooks Enterprise tech issue. Our QuickBooks Enterprise Support team comes with QuickBooks Experts who can solve your problems instantly as soon as they get a call on QuickBooks Enterprise Tech Support Number.

    ReplyDelete
  7. In a nutshell, we could manage your whole QuickBooks Enterprise Technical Support accounting to meet your needs. In order to make your QuickBooks Enterprise software error free, contact us at an get linked to us in minutes.

    ReplyDelete
  8. Do not need to worry if you're stuck with QuickBooks Support Phone Number issue in midnight as our technical specialists at QuickBooks support cell phone number is present twenty-four hours just about every day to serve you combined with best optimal solution very quickly.

    ReplyDelete
  9. As QuickBooks Support Phone Number Premier has various industry versions such as retail, manufacturing & wholesale, general contractor, general business, Non-profit & Professional Services, there is in number us errors that may make your task quite troublesome.

    ReplyDelete
  10. Intuit QuickBooks Support Number Services provide methods to all your valuable QuickBooks problem and in addition assists in identifying the errors with QuickBooks data files and diagnose them thoroughly before resolving these problems.

    ReplyDelete
  11. QuickBooks is present for users around the world while the best tool to provide creative and innovative features for business account management to small and medium-sized business organizations. If you’re encountering any kind of QuickBooks’ related problem, you can get all that problems solved just by with the QuickBooks Support Phone Number.

    ReplyDelete
  12. It is rather possible you can face trouble while installing QuickBooks Help & Support software since this essentially the most universal problem. You don't have to go any where if you encounter any difficulty in QuickBooks Installation, just call us at QuickBooks support phone number and experience matchless support services.

    ReplyDelete
  13. It is terribly frustrating, to say the smallest amount when you face one such error. Errors hamper the work pace however additionally disturb your mental peace. Our QuickBooks Technical Support Number take most of the errors terribly seriously and they will fix all the errors.

    ReplyDelete
  14. So if you want to contact the team then easily dial our toll-free number of QuickBooks Support Phone Number and get one stop solution for all your problems and build your business.

    ReplyDelete
  15. Experts at QuickBooks Payroll Support Number will diagnose the errors and supply you with resolutions. A few of the other common QuickBooks errors which are resolved by our QuickBooks payroll support team at QuickBooks Support number.

    ReplyDelete
  16. The error could cause the device to hang, run slowly or even are amiss. Also when the accounting professionals are making an effort to update the lender information, they are able to get entangled using this error. If you would like to learn How To Troubleshoot Quickbooks Error 9999, you can continue reading this blog.

    ReplyDelete