Transformação do Agregador na Informatica com Exemplo

⚔ Resumo Inteligente

A transformação de agregador no Informatica é o objeto ativo que realiza cÔlculos como soma, média e contagem em um grupo de linhas, mantendo essas linhas em um cache de agregados até que cada grupo esteja completo.

  • 🧮 CĆ”lculo agrupado: Os grupos sĆ£o definidos por portas, e o ServiƧo de Integração retorna uma linha para cada combinação Ćŗnica.
  • šŸ’¾ Dois caches: Os valores de grupo sĆ£o armazenados no cache de Ć­ndice, enquanto os dados de linha sĆ£o armazenados no cache de dados.
  • 🧪 Exemplo resolvido: A expressĆ£o sum(SAL) agrupada por DEPTNO carrega os totais do departamento em SUM_SAL_DEPTWISE.
  • šŸ”€ Entrada ordenada: A prĆ©-classificação do grupo por portas permite que o ServiƧo de Integração libere cada grupo antecipadamente e armazene em cache muito menos dados.
  • šŸ“ˆ ExecuƧƵes incrementais: A agregação incremental reutiliza o cache histórico, de forma que apenas as novas linhas de origem sejam calculadas.
  • 🚫 Limite de aninhamento: Uma Ćŗnica transformação pode conter funƧƵes de nĆ­vel Ćŗnico ou funƧƵes aninhadas, nunca ambas.

Transformação do Agregador na Informatica

O que é transformação de agregador?

A transformação de agregador é uma transformação ativa que realiza cÔlculos agregados, como soma, média e contagem.

Por exemplo, se você quiser calcular a soma dos salÔrios de todos os funcionÔrios por departamento, pode usar a transformação Agregador.

As operações agregadas são executadas em um grupo de linhas, portanto, é necessÔrio um espaço reservado temporÔrio para armazenar todos esses registros e realizar os cÔlculos.

Para isso, utiliza-se o cache do agregador. Trata-se de uma memória principal temporÔria alocada à transformação do agregador para executar tais operações, e é dividida em duas partes: o cache de índice armazena os valores do grupo, enquanto o cache de dados armazena os dados das linhas que estão sendo agregados.

A transformação estÔ ativa porque altera o número de linhas no pipeline. VÔrios milhares de registros de funcionÔrios podem entrar e apenas uma linha por departamento sai dele.

Como usar a transformação de agregadores no Informatica

Neste exemplo, calcularemos a soma dos salÔrios do departamento. Para isso, necessitamos de uma nova coluna para armazenar esta soma. Então, antes de mais nada, prepararemos uma nova coluna.

Passo 1) Crie uma nova tabela de destino no banco de dados, por exemplo, "sum_sal_deptwise", usando o script abaixo. Você verÔ a nova tabela de destino criada em Targetpasta s na próxima etapa.

Baixe o arquivo Create_table_sal_deptwise.txt acima

Passo 2) Crie um novo mapa,ping ā€œm_sum_sal_deptwiseā€.

Para criar o novo mapapingPrecisamos da tabela de origem (EMP) e da tabela de destino (sum_sal_deptwise) no mapa.ping Designer, então precisamos de

  1. Importe a tabela de destino ā€œsum_sal_deptwiseā€ no mapa.ping.
  2. Importe a tabela de origem ā€œempā€.

Ambas as definiƧƵes agora aparecem na tela, como mostrado abaixo.

Mapaping Designer com a fonte EMP, SQ_EMP e o destino SUM_SAL_DEPTWISE importado.

Passo 3) No mapaping,

  1. De Qualificador de origem, exclua as colunas empno, ename, job, mgr, hiredate e comm, deixando apenas as colunas deptno e sal.
  2. Crie uma nova transformação de Agregador usando o menu da caixa de ferramentas, conforme mostrado na captura de tela. Ao clicar no ícone do agregador, uma nova transformação de Agregador serÔ criada.

O novo objeto AGGTRANS aparece ao lado do qualificador de origem truncado.

ƍcone do agregador na barra de ferramentas criando AGGTRANS ao lado do SQ_EMP truncado

Passo 4) Arraste e solte as colunas SAL e DEPTNO do Qualificador de Origem (SQ_EMP) para a transformação Agregador. As duas portas agora estão vinculadas em AGGTRANS.

As portas SAL e DEPTNO foram arrastadas de SQ_EMP para a transformação do agregador AGGTRANS.

Passo 5) Double-clique na transformação Agregador para abrir suas propriedades e, em seguida,

  1. Adicione uma nova porta na transformação
  2. Renomeie a porta para SUM_SAL
  3. Altere o tipo de dados desta nova porta para double
  4. Configure esta porta como porta de saída selecionando a caixa de seleção da porta de saída.
  5. Clique na opção de expressão

A aba Portas agora lista SAL, DEPTNO e a nova porta de saĆ­da SUM_SAL.

Na aba Portas do AGGTRANS, a nova porta de saĆ­da SUM_SAL estĆ” configurada para o tipo de dados double.

Passo 6) Na janela do Editor de ExpressƵes

  1. Adicione a expressão sum(SAL); você precisa escrever essa expressão você mesmo.
  2. Selecione o botão OK; isso abrirÔ novamente a janela Editar Transformações.

O Editor de Expressões mostra a expressão agregada atribuída a SUM_SAL.

Editor de expressões para a porta SUM_SAL que contém a expressão agregada sum(SAL)

Passo 7) Na janela Editar TransformaƧƵes, selecione a opção ā€œAgrupar porā€ marcando a caixa de seleção ao lado da coluna deptno e clique em OK. Ao selecionar ā€œAgrupar porā€ para a coluna deptno, estamos instruindo o Informatica a agrupar os salĆ”rios por deptno.

Aba Portas com a caixa de seleção Agrupar por selecionada ao lado da porta DEPTNO

Passo 8) Vincule as colunas deptno e sum_sal da transformação Aggregator à tabela de destino. O mapeamentoping O processo é então concluído, da origem ao destino.

DEPTNO e SUM_SAL vinculados de AGGTRANS à definição de destino SUM_SAL_DEPTWISE

Agora salve o mapaping e executÔ-lo após criar um novo Sessão para este mapapingA tabela de destino conterÔ a soma dos salÔrios por departamento. Dessa forma, podemos usar a transformação Agregador para calcular os resultados agregados.

Agrupar por portas na transformação de agregadores

A etapa anterior marcou uma única porta como "Agrupar por", o que transformou o total da empresa em um total por departamento. Qualquer porta de entrada, entrada/saída, saída ou variÔvel pode ser marcada da mesma forma.

TrĆŖs regras regem o conjunto de resultados:

  • Uma fila por grupo. Quando os valores sĆ£o agrupados, o ServiƧo de Integração gera uma linha para cada combinação Ćŗnica de agrupamento por portas.
  • Sem agrupamento, apenas uma linha. Se nenhuma porta for selecionada, toda a entrada serĆ” tratada como um Ćŗnico grupo e uma Ćŗnica linha serĆ” retornada para todas as linhas de entrada.
  • A Ćŗltima fila vence. Juntamente com o resultado agregado, o ServiƧo de Integração normalmente passa a Ćŗltima linha recebida no grupo, a menos que uma função como FIRST nomeie uma linha diferente.

Quando vÔrios portos estão marcados, a ordem dos portos determina o grupo.ping ordem, e a ordem pode alterar o resultado. Grupoping por DEPTNO e depois JOB não é o mesmo que grupoping primeiro por JOB e depois por DEPTNO, porque os valores da segunda coluna não são necessariamente únicos.

Propriedades de transformação do agregador

A aba Propriedades da janela Editar TransformaƧƵes contƩm as configuraƧƵes que definem onde o cache fica armazenado e quanto dele Ʃ utilizado. A tabela abaixo lista essas configuraƧƵes.

Configuração O que ele controla
Diretório de cache Diretório local no qual o Serviço de Integração cria os arquivos de índice e cache de dados. O padrão é a variÔvel de processo $PMCacheDir definida no Gerenciador de Fluxo de Trabalho.
TracNível de ing Quantidade de detalhes registrados no log da sessão para esta transformação.
Entrada ordenada Declara que os dados recebidos jÔ estão classificados por grupo de portas. Selecione esta opção somente quando o mapaping Realmente fornece dados organizados.
Tamanho do cache de dados do agregador Tamanho do cache de dados. O padrão é 2,000,000 bytes, e a opção AutomÔtico permite que o Serviço de Integração o dimensione.
Tamanho do cache do índice agregador Tamanho do cache de índice. O padrão é 1,000,000 bytes, e a opção AutomÔtico permite que o Serviço de Integração o dimensione.
Escopo da Transformação Aplica a lógica a cada transação ou a todos os dados recebidos. A opção "Todas as entradas" descarta os limites das transações recebidas.

Quando a agregação incremental estÔ habilitada, o Serviço de Integração grava um backup dos arquivos de cache a cada execução, portanto, o diretório de cache precisa armazenar dois conjuntos de arquivos em vez de um.

Regras de Expressão Agregada e Dicas de Desempenho

Uma expressão agregada pode combinar uma função agregada com clÔusulas condicionais e funções não agregadas, o que possibilita somas e contagens condicionais em uma única porta. Duas regras restringem o que pode ser escrito.

  • Um nĆ­vel de aninhamento. Apenas uma função agregada pode estar aninhada dentro de outra, e a expressĆ£o interna Ć© avaliada primeiro.
  • Sem mistura. Uma transformação pode conter funƧƵes de nĆ­vel Ćŗnico ou funƧƵes aninhadas, nunca ambas. Se contiver ambas, o Designer marca o mapa.ping invĆ”lido, entĆ£o divida a lógica em duas transformaƧƵes de Agregador.

Em termos de afinação, três configurações fazem a maior parte do trabalho:

  • Entrada ordenada. Quando as linhas chegam ordenadas por grupo por portas, cada grupo pode ser liberado assim que sua Ćŗltima linha chegar, resultando em muito menos dados em cache e uma sessĆ£o mais rĆ”pida. A entrada ordenada nĆ£o pode ser combinada com agregação incremental.
  • Agregação incremental. Novas linhas de origem sĆ£o passadas pelo mapa.ping e combinado com o cache histórico em vez de recalcular o histórico, o que Ć© adequado para um carregamento noturno em um total acumulado.
  • Filtrar antecipadamente. As linhas que nunca contribuirĆ£o para o total devem ser descartadas antes do agregador, seja na consulta do qualificador de origem ou em um Transformação de filtro, porque cada linha que chega ao Agregador consome memória cache. Esta Ć© uma das verificaƧƵes padrĆ£o durante ajuste de desempenho.

Perguntas Frequentes

A família agregada cobre AVGAs funções COUNT, FIRST, LAST, MAX, MEDIAN, MIN, PERCENTILE, STDDEV, SUM e VARIANCE retornam um valor resumido para os valores não nulos na porta selecionada.

Toda a entrada é tratada como um único grupo, portanto, uma única linha é retornada para todas as linhas de entrada. Essa linha contém o resultado agregado juntamente com a última linha recebida pela transformação.

O cache de Ć­ndice armazena os valores de grupo, ou seja, os valores das portas marcadas como "Agrupar por". O cache de dados armazena os dados das linhas usados ​​no cĆ”lculo. Qualquer excesso de cache em qualquer um deles Ć© gravado em arquivos de cache.

Ele transmite apenas dados de origem novos através do mapa.ping e combina isso com o cache histórico de execuções anteriores, de modo que os totais sejam atualizados em vez de reconstruídos. Não pode ser combinado com a opção de entrada classificada.

Por padrão, o Serviço de Integração trata valores nulos como NULL e os ignora; portanto, uma soma ignora salÔrios vazios. O serviço pode ser configurado para tratar valores nulos em funções de agregação como zero.

No diretório especificado pela configuração "Diretório de Cache", que por padrão é a variÔvel de processo $PMCacheDir configurada no Workflow Manager. Certifique-se de que o diretório exista e tenha espaço livre suficiente em disco.

Os assistentes de IA analisam os dados de origem e o histórico de carga de trabalho para sugerir a que grupo um total pertence e a qual grupo ele se encaixa.ping As chaves são importantes e indicam onde um cÔlculo é mais eficiente no banco de dados. Consultores baseados em aprendizado de mÔquina classificam as opções, e um engenheiro as aprova.

O Copilot gera expressões e o SQL correspondente rapidamente, o que economiza tempo em tarefas repetitivas de configuração de portas. Ele não consegue visualizar o tamanho do seu cache ou a ordem das portas, portanto, valide cada sugestão no Editor de Expressões antes de salvar.

Resuma esta postagem com: