Tuesday 15 May 2012

Aggregation Without Aggregator Transformation


General Idea of Aggregation without Aggregator Transformation

Let us take an example: Suppose we want to find the SUM of SALARY for Each Department of the Employee Table. The SQL query for this would be:
SELECT DEPTNO, SUM(SALARY) 
FROM EMP_SRC 
GROUP BY DEPTNO; 
If we need to implement this in Informatica, it would be very easy as we would obviously go for an Aggregator Transformation. By taking the DEPTNO port as GROUP BY and one output port as SUM(SALARY) the problem can be solved easily.
But we want to achieve this without aggregator transformation!
We will use only Expression transformation to achieve the functionality of Aggregator expression. The trick is to use the very funda of the expression transformation of holding the value of an attribute of the previous tuple over here.
But wait... why would we do this? Aren't we complicating the things here?
Yes, we are! But as it appears, in many cases, it might have an performance benefit (especially if the input is already sorted or when you know input data will not violate the order, like you are loading daily data and want to sort it by day). Please see this article to know more about how toimprove the performance of Aggregator transformation
Remember Informatica holds all the rows in Aggregator cache for aggregation operation. This needs time and cache space and this also voids the normal row by row processing in Informatica. By removing the Aggregator with an Expression, we reduce cache space requirement and ease out row by row processing. The mapping below will show how to do this.
Mapping for Aggregation with Expression and Sorter only:
Mapping for Aggregation with Expression and Sorter only
  • Sorter (SRT_SAL) Ports Tab
    Sorter1
    Now I am showing a sorter here just illustrate the concept. If you already have sorted data from the source, you need not use this thereby increasing theperformance benefit.
  • Expression (EXP_SAL) Ports Tab
    Expression1
  • Sorter (SRT_SAL1) Ports Tab
    Sorter2
  • Expression (EXP_SAL2) Ports Tab
    Expression2
  • Filter (FIL_SAL) Properties Tab
    Filter
This is how we can implement aggregation without using Informatica aggregator transformation.

1 comment:

  1. Thanks for such a great article here. I was searching for something like this for quite a long time and at last, I’ve found it on your blog. It was definitely interesting for me to read about their market situation nowadays. Well written article Thank You for Sharing with Us pmp training fee | | project management training in chennai | project management certification online | project management course online |

    ReplyDelete