O que é o Aggregator do Informatica Powercenter?
Esta transformação ativa do Informatica PowerCenter permite realizar cálculos de agregação, como médias, somas, máximos e mínimos em grupos de dados.
A funcionalidade Aggregator também é útil para remover variáveis duplicadas.
Funções do Aggregator no Informatica PowerCenter
- AVG
- COUNT
- FIRST
- LAST
- MAX
- MEDIAN
- MIN
- PERCENTILE
- STDDEV
- SUM
- VARIANCE
Aggregator x Expression
As transformações Aggregator e Expression do Informatica PowerCenter podem parecer muito semelhantes a primeira vista. Entretanto, uma grande diferença é que na transformação de agregação os cálculos são feitos em grupos de dados, enquanto que na transformação Expression o resultado é dado linha por linha.
Como funciona o cache no Aggregator
O Data Integration Service (DIS) realiza os cálculos ao ler o conjunto dos dados e os guarda em cache. Caso você tenha os dados de entrada ordenados (sorted), o cache é reduzido consideravelmente durante a execução do mapping e a performance da tarefa melhorada.
O DIS cria os seguintes caches:
- Index cache: guarda os valores agrupados de acordo com as configurações de agrupamento.
- Data cache: guarda os cálculos, baseado no agrupamento das portas
Sorter
No Aggregator, você não pode usar dados de input ordenados (sorted) se alguma dessas condições for verdade:
- A expressão de agregação contem funções nested
- Source data é definido como data driven
Você pode colocar a transformação Sorter em qualquer lugar do mapping antes da transformaçao Aggregaotr, desde que não haja alteração no ordenamento dos dados sortidos.
No Informatica PowerCenter, se houver agrupamento por colunas (group by), as colunas devem aparecer na mesma ordem em que aparecem na transformação Sorter. O número de colunas selecionadas para realizar o Group By na transformação Aggregator deve ser correspondente ao número de colunas selecionadas para a transformação Sorter.
Níveis de função
Você pode incluir uma função do Aggregator dentro da outra (nested functions).
Por exemplo: AVG(COUNT(ITENS_SOLD))
Contudo, dentro de uma mesma transformação Aggregator você não pode misturar portas de saída com funções nested e non-nested/single-level. Caso você tente criar uma transformação desta forma, o mapping ou mapplet será invalido.
Usando condicionais no Aggregator do Informatica PowerCenter
É possível utilizar cláusulas condicionais para reduzir o número de linhas para o cálculo da função agregadora.
A cláusula condicional pode ser qualquer uma que forneça como resultado TRUE ou FALSE.
Por exemplo, o cálculo da soma total das comissões apenas de empregados que superaram suas metas pode ser dado como: SUM( COMMISSION, COMMISSION > QUOTA )
Valores Duplicados no Informatica PowerCenter
Para remover valores duplicados com auxílio da transformação Aggregator, você pode definir uma das colunas, por exemplo o campo utilizado como ID, para que os registros se agrupem. Quando houver dois ou mais registros com o mesmo identificador, apenas o último será fornecido como output.
Para operações mais complexas ainda é possível utilizar a transformação Rank ou as funções de agregação MAX e MIN.
Valores Agrupados
Quando você agrupa valores, o DIS mostra como resultado uma linha para cada grupo. Veja o exemplo:
Vamos agrupar os dados de entrada por item e por loja:
Nosso objetivo é calcular o valor das vendas por item e em cada loja. Ou seja, para cada item, em cada loja, faremos Price_Out = SUM (Qty * Price):
Como podemos ver, o arquivo de saída repetiu o último registro de cada grupo (cada item de cada loja), juntamente com o valor da função agregadora.
Caso não haja agrupamento, o DIS retorna apenas uma linha para todos as linhas de input.
Renomear grupos e padronizar dados
- Se você quiser renomear, por exemplo, o nome do item ‘AAA battery’ antes de agrupá-lo, você pode criar uma portda de saída chamada CORRECTED_ITEM com a expressão: IIF( ITEM = ‘AAA battery’, battery, ITEM )
Dicas com o Aggregator no Informatica PowerCenter
- Reduza o número de portas de input e output para reduzir a quantidade de dados em cache.
- Filtre os dados antes de agrega-los com a transformação Filter para reduzir agregações desnecessárias.
- A transformação Aggregator pode não fornecer resultados ordenados! É uma boa ideia utilizer a transformação Sorted para ordenar as informações de maneira correrta.
Referência: Informatica Developer Transformation Guide