Aggregator Transformation In Informatica
Aggregator transformation is an active transformation used to perform calculations such as sums, averages, counts on groups of data. The integration service stores the data group and row data in aggregate cache. The Aggregator Transformation provides more advantages than the SQL, you can use conditional clauses to filter rows.
Properties of Aggregator Transformation
-Group by port
This component defines the group for a specific port (s) which participates in aggregation
Use aggregate functions to drive the aggregate expression which can be develop either in variable ports (or) In only output ports
“Group by ports” are sorted using a sorted transformation and receive the sorted data as a input to improve the performance of data aggregation.
Keep the sorted transformation prior the aggregator transformation to perform sorting on fro up by ports.
The aggregator stores data in the aggregate cache until it completes aggregate calculations.When u run a session that uses an aggregator transformation,the informatica server creates index and data caches in memory to process the transformation.If the informatica server requires more space,it stores overflow values in cache files.
The aggregate cache contains group by ports, non group by input ports and output port which contains aggregate expressions.
This transformation offers even more functionality than SQL’s group by statements since one can apply conditional logic to groups within the aggregator transformation. Many different aggregate functions can be applied to individual output ports within the transformation. One is also able to code nested aggregate functions as well. Below is a list of these aggregate functions:
Creating an Aggregator Transformation in Informatica
Go to the Mapping Designer, click on transformation in the toolbar -> create.
Select the Aggregator transformation, enter the name and click create. Then click Done. This will create an aggregator transformation without ports.
To create ports, you can either drag the ports to the aggregator transformation or create in the ports tab of the aggregator.
Informatica Nested Aggregate Functions
You can nest one aggregate function within another aggregate function. You can either use single-level aggregate functions or multiple nested functions in an aggregate transformation. You cannot use both single-level and nested aggregate functions in an aggregator transformation. The Mapping designer marks the mapping as invalid if an aggregator transformation contains both single-level and nested aggregate functions. If you want to create both single-level and nested aggregate functions, create separate aggregate transformations.
You can reduce the number of rows processed in the aggregation by specifying a conditional clause.
Example: SUM(salary, slaray>1000)
This will include only the salaries which are greater than 1000 in the SUM calculation.
Non Conditional clauses
You can also use non-aggregate functions in aggregator transformation.
Example: IIF( SUM(sales) <20000, SUM(sales),0)
Note: By default, the Integration Service treats null values as NULL in aggregate functions. You can change this by configuring the integration service.
Incremental Aggregation in Informatica
After you create a session that includes an Aggregator transformation, you can enable the session option, Incremental Aggregation. When the Integration Service performs incremental aggregation, it passes source data through the mapping and uses historical cache data to perform aggregation calculations incrementally.