Transformação de Joiner na Informatica com EXEMPLO

⚡ Resumo Inteligente

A transformação Joiner no Informatica é o objeto ativo e conectado que une duas fontes heterogêneas com base em uma condição de correspondência, armazenando em cache o pipeline mestre na memória enquanto o pipeline de detalhes flui através dele.

  • 🧩 Domínio e atenção aos detalhes: Dois canais de entrada alimentam a transformação, e a aba Portas decide qual deles atuará como mestre.
  • 💾 O arquivo mestre está em cache: O pipeline principal é sempre integrado a um índice e cache de dados, portanto, a fonte menor pertence a esse mesmo contexto.
  • 🔗 Quatro tipos de junção: As opções Normal, Master Outer, Detail Outer e Full Outer definem quais linhas não correspondentes sobreviverão à junção.
  • 🧪 Exemplo resolvido: EMP e DEPT são unidos pelo número deptno em uma junção normal e carregados em EMP_DEPTNAME.
  • ⚖️ Somente a igualdade: Uma condição de junção compara portas com o operador de igualdade, e ambas as portas devem compartilhar um tipo de dados.
  • ⚡ Entrada ordenada: A pré-classificação de ambos os pipelines nas portas de condição reduz a entrada e a saída de disco durante a sessão.

Transformação de Joiner na Informatica

O que é transformação de marceneiro?

A transformação Joiner é uma transformação ativa e conectada que oferece a opção de criar junções no Informatica. As junções criadas usando a transformação Joiner são semelhantes às junções em bancos de dados. A vantagem da transformação Joiner é que as junções podem ser criadas para sistemas heterogêneos (bancos de dados diferentes).

Na transformação Joiner, existem duas fontes que usaremos para as junções. Essas duas fontes são chamadas de

  • Fonte Mestre
  • Fonte de detalhes

Nas propriedades da transformação Joiner, você pode selecionar qual fonte de dados será a principal e qual será a fonte de detalhes.

Durante a execução, a fonte principal é armazenada em cache na memória para fins de junção. Portanto, recomenda-se selecionar a fonte com menos registros como fonte principal. O pipeline principal é mantido em dois caches: um cache de índice para os valores usados ​​na condição de junção e um cache de dados para os demais dados das linhas.

Tipos de junções na transformação Joiner

A propriedade Tipo de Junção na guia Propriedades define o que acontece com as linhas que não encontram correspondência. As seguintes junções podem ser criadas usando a transformação Junção.

  1. Junção externa mestre – Em uma junção mestre-externa, todos os registros da fonte de detalhes são retornados pela junção e apenas as linhas correspondentes da fonte mestre são retornadas.
  2. Detalhe da junção externa – Em uma junção externa de detalhes, somente as linhas correspondentes são retornadas da fonte de detalhes, e todas as linhas da fonte principal são retornadas.
  3. Junção externa completa – Em uma junção externa completa, todos os registros de ambas as fontes são retornados.
  4. Junção normal – Em uma junção normal, somente as linhas correspondentes são retornadas de ambas as fontes.

As junções externas mestras e as junções externas detalhadas são equivalentes às junções externas à esquerda em SQLCada um mantém todas as linhas de uma fonte e apenas as correspondências da outra. A tabela abaixo compara os quatro tipos com seus equivalentes em SQL.

Tipo de junção Fileiras mantidas do mestre Linhas mantidas fora dos detalhes Equivalente em SQL
Junção normal Somente correspondências Somente correspondências Junção interna
Junção externa mestre Somente correspondências Todas as linhas Junção externa esquerda na fonte de detalhes
Detalhe da junção externa Todas as linhas Somente correspondências Junção externa à esquerda na fonte principal
Junção externa completa Todas as linhas Todas as linhas Junção externa completa

O tipo de junção é uma propriedade, não uma escolha estrutural, portanto pode ser alterado posteriormente sem a necessidade de reconstruir o mapa.ping ou religando quaisquer portas.

Como usar a transformação Joiner no Informatica

Neste exemplo, vamos unir as tabelas emp e dept usando a transformação Joiner. Siga os oito passos abaixo no mapa.ping Designer.

Passo 1) Crie uma nova tabela de destino chamada EMP_DEPTNAME no banco de dados usando o script abaixo e importe a tabela nos destinos do Informatica.

Baixe o arquivo emp_deptname.sql acima

Passo 2) Crie um novo mapa,ping e importe as tabelas de origem “EMP” e “DEPT” e a tabela de destino que criamos na etapa anterior. Todas as três definições agora estão na tela, como mostrado abaixo.

Mapaping Tela de design com as fontes EMP e DEPT e a definição de destino EMP_DEPTNAME.

Passo 3) No menu Transformação, selecione a opção Criar. Em seguida, na janela Criar Transformação mostrada abaixo,

  1. Selecione a transformação do joiner
  2. Insira o nome da transformação “jnr_emp_dept”
  3. Selecione a opção de criação

Crie uma janela de transformação com o recurso Joiner selecionado e o nome jnr_emp_dept inserido.

Passo 4) Arraste e solte todas as colunas de ambos os Qualificadores de origem para a transformação Joiner. Ambos os pipelines agora estão vinculados ao jnr_emp_dept, como mostra a captura de tela.

Colunas de ambos os qualificadores de origem arrastadas para a transformação Joiner jnr_emp_dept

Passo 5) Double Clique na transformação Joiner e, em seguida, na janela Editar Transformações.

  1. Selecione a guia de condição
  2. Clique no ícone adicionar nova condição
  3. Selecione deptno na lista de colunas mestre e de detalhes

A aba Condição agora contém a única condição de junção em deptno.

Aba "Condição" da transformação Joiner com o número do departamento selecionado nas colunas mestre e detalhe.

Passo 6) Então na mesma janela

  1. Selecione a guia de propriedades
  2. Selecione Junção Normal como tipo de junção
  3. Selecione o botão OK

A seguir, é exibida a guia Propriedades com o tipo de junção definido.

Aba Propriedades da transformação Joiner com o tipo de junção definido como Junção Normal

Para otimizar o desempenho, atribuímos a fonte principal ao pipeline da tabela de origem que possui menos registros. Para executar essa tarefa:

Passo 7) Double Clique na transformação Joiner para abrir a janela Editar Transformações e, em seguida,

  1. Selecionar guia de portas
  2. Selecione qualquer coluna de uma fonte específica que você deseja tornar mestre
  3. Selecione OK

A aba "Portas" marca o pipeline escolhido como o principal, conforme mostrado abaixo.

A guia "Portas" da transformação "Joiner" com o sinalizador "mestre" definido para um pipeline de origem.

Passo 8) Vincule as colunas relevantes da transformação Joiner à tabela de destino. O mapaping Agora, os dados são processados ​​a partir de ambas as fontes, através da junção com EMP_DEPTNAME.

Colunas unidas vinculadas de jnr_emp_dept à tabela de destino EMP_DEPTNAME

Agora salve o mapaping e executá-lo após criar um Sessão e de gestão de documentos Para isso, a junção será criada usando o Informatica Joiner e os detalhes relevantes serão obtidos de ambas as tabelas.

Propriedades de transformação do conector

A aba Propriedades contém mais do que apenas o tipo de junção. As configurações abaixo controlam quanta memória a junção utiliza e onde os arquivos de cache são gravados.

Configuração O que ele controla
Tipo de junção Normal, Master Outer, Detail Outer ou Full Outer. Define quais linhas não correspondentes serão mantidas.
Condições de adesão A lista de pares de portas mestre-para-detalhe é comparada com o operador de igualdade. Várias condições são combinadas com o operador E.
Entrada ordenada Declara que ambos os pipelines já chegam ordenados pelas portas de condição, o que permite ao Serviço de Integração minimizar a entrada e saída de disco.
Ordem de classificação principal A ordem de classificação dos dados de origem principais, usada em conjunto com a entrada classificada.
Diretório de cache Diretório no qual os arquivos de índice e cache de dados são criados. O padrão é a variável de processo $PMCacheDir.
Tamanho do cache de dados do Joiner Tamanho do cache de dados que armazena os dados da linha principal. O padrão é Automático, o que permite que o Serviço de Integração o dimensione.
Tamanho do cache do índice Joiner Tamanho do cache de índice que armazena os valores da condição principal. O padrão é Automático.
Escopo da Transformação Aplica a junção a cada transação, a todos os dados recebidos ou a um escopo em nível de linha.

A entrada ordenada é a configuração que vale a pena buscar primeiro. Quando ambos os pipelines chegam ordenados pelas portas de condição, o Serviço de Integração não precisa reter toda a fonte mestre antes que a correspondência comece, que é o mesmo princípio aplicado durante ajuste de desempenho de outras transformações em cache.

Regras e limitações da transformação do Joiner

Algumas restrições só aparecem quando o mapaping é validado, portanto é mais barato conhecê-los antes que as portas sejam conectadas.

  • Somente a igualdade. Uma condição de junção compara portas com o operador de igualdade. Operadores de comparação como maior que, menor que ou diferente de não são aceitos na condição.
  • Tipos de dados correspondentes. Em uma determinada condição, ambas as portas devem ter o mesmo tipo de dados. O Designer valida isso, portanto, colunas incompatíveis precisam ser convertidas primeiro, geralmente em uma transformação de Expressão.
  • Nenhuma estratégia de atualização a montante. Uma transformação Joiner não pode ser usada quando qualquer um dos pipelines de entrada contém uma transformação Update Strategy.
  • Sem sequência Generator imediatamente antes disso. Conectando uma sequência Generator A transformação imediatamente a montante do Joiner não é suportada.
  • O armazenamento em cache não pode ser desativado. O pipeline principal é sempre armazenado em cache, razão pela qual a origem menor pertence ao lado principal e por que o dimensionamento do cache é importante em junções grandes.

A junção de três fontes requer duas transformações Joiner encadeadas, pois cada uma aceita exatamente um pipeline mestre e um pipeline de detalhes. Quando a segunda fonte é uma pequena tabela de referência lida linha por linha, em vez disso, Transformação de pesquisa Geralmente é o design mais simples.

Perguntas Frequentes

Dois. Cada Joiner aceita um pipeline mestre e um pipeline de detalhes, portanto, unir três fontes significa encadear duas delas: a saída da primeira torna-se um pipeline de entrada da segunda. Em geral, n fontes precisam de n menos um.

Quando ambas as tabelas residem no mesmo banco de dados relacional, o Source Qualifier envia essa junção para o banco de dados, evitando completamente o armazenamento em cache. Utilize o Joiner somente quando as duas fontes forem heterogêneas ou já estiverem em pipelines separados.

O cache de índice armazena os valores da porta mestre especificados na condição de junção, e o cache de dados armazena os dados restantes da linha mestre retornados pela junção. Ambos são construídos somente a partir do pipeline mestre, nunca do pipeline de detalhes.

Não. Um valor nulo em qualquer uma das portas faz com que a condição falhe, exatamente como acontece em SQL, portanto, essas linhas são tratadas como não correspondentes. Substitua os valores nulos por um valor padrão no fluxo de dados anterior, quando eles deveriam ser incluídos na junção.

Sim. Adicione a definição da fonte ao mapa.ping duas vezes para que existam dois pipelines separados, e então alimente um no lado mestre e o outro no lado de detalhes. Esta é a maneira usual de resolver uma coluna de gerente de volta para o nome do funcionário.

Sim, e esse caso heterogêneo é a principal razão para a existência da transformação. Um pipeline de arquivo plano e um pipeline relacional se unem em portas correspondentes, assim como duas tabelas de banco de dados, porque a junção ocorre dentro do Serviço de Integração.

Assistentes de IA analisam ambas as fontes para sugerir chaves de junção candidatas, estimam a quantidade de linhas para que o lado menor seja escolhido como mestre e sinalizam colunas desbalanceadas ou com muitos valores nulos que poderiam distorcer o conjunto de resultados. Consultores baseados em aprendizado de máquina também classificam as opções de dimensionamento de cache.

O Copilot gera o SQL equivalente e as conversões de tipo de dados rapidamente, o que agiliza o trabalho de preparação das portas. Ele não consegue visualizar o tamanho do seu cache nem a contagem de linhas, portanto, verifique cada sugestão em relação ao mapeamento.ping antes de salvá-lo.

Resuma esta postagem com: