Mappings - (Introdução ao Informatica DEI - Parte 2)

 

Mappings

Um mapeamento ou Mapping é um conjunto de objetos de entrada e saída que representam um fluxo de dados entre origens e destinos. 

Geralmente são vinculados por objetos de transformação que definem as regras para a transformação de dados. O Data Integration Service fica responsável por usar as instruções configuradas no mapeamento para ler, transformar e gravar dados.

É possível fazer a execução de um Mapeamento/Maps através de um workflow/fluxo de trabalho, isso ajuda bastante caso precisamos ter dependencias entre os processos e é preciso uma ordem entre eles.

Dependendo do tipo de objetos de entrada e saida que colocamos no nosso mapa, pode ser alterado o tipo de mapeamento, os tipos são:

  • Logical data object mapping (Mapeamento de objetos de dados lógicos): Vincula um objeto de dados lógicos a um ou mais objetos de dados físico. Um mapeamento de objeto de dados lógicos ajuda a integrar dados de várias fontes e formatos em uma exibição padronizada.
  • Operation mapping (Mapeamento de operação): Tem uma operação como entrada, saída ou ambas do mapeamento. Um mapeamento de operação executa a operação de serviço da web para um cliente de serviço da web.
  • Virtual table mapping (Mapeamento de mesa virtual): Possui uma tabela virtual como saída do mapeamento. Um mapeamento de tabela virtual define o fluxo de dados virtuais entre fontes e uma tabela virtual em um serviço de dados SQL. Use um mapeamento de tabela virtual para transformar os dados.
  • Dynamic mapping (Mapeamento dinâmico): Um mapeamento no qual você pode alterar as origens, os destinos e a lógica de transformação em tempo de execução com base em parâmetros e regras que você define. Use um mapeamento dinâmico para gerenciar mudanças frequentes de esquema ou metadados.

Componentes de um mapeamento

Os componentes de um mapeamento determinam o fluxo de dados entre as origens e destinos.

Cada mapeamento deve conter um objeto de entrada, que lê os dados de um componente ou arquivo de mapeamento. Cada mapeamento também deve conter um objeto de saída, que grava dados em um componente ou arquivo de mapeamento.

Um mapeamento também pode conter os seguintes componentes:

  • Data object operations(Operações de objetos de dados): Objetos de repositório que contêm propriedades necessárias para executar certas operações de tempo de execução em origens ou destinos. Obrigatório para algumas fontes de dados do adaptador do PowerExchange.
  • Transformations(Transformações): Permite modificar os dados antes de gravá-los nos destinos. 
  • Mapplets: Objetos reutilizáveis contendo um conjunto de transformações que você pode usar em vários mapeamentos.
  • Segments(Segmentos): Consistem em um ou mais objetos em um mapeamento, mapplet, regra ou stored procedures.

Operações de Objeto de Dados

Uma operação de objeto de dados é um objeto de repositório que contém propriedades necessárias para realizar certas operações de tempo de execução em origens ou destinos. 

Depois de criar um objeto de dados físicos e as operações de objeto de dados necessárias, você pode visualizar o objeto de dados físicos no editor de objetos. 

A visualização do editor de objeto inclui uma guia onde você pode configurar as propriedades de operação do objeto de dados. 

Um objeto de dados pode ter várias operações de leitura e gravação.

Operação de leitura de objeto de dados

Uma operação de leitura de objeto de dados está associada a um objeto de dados de origem. 

Você pode criar uma operação de leitura de objeto de dados e configurar as propriedades dela no editor de objeto.

Quando você visualiza a operação de leitura do objeto de dados no editor de objetos, o editor de objetos exibe um objeto de origem e um objeto de saída. 

Os objetos de origem e de saída compreendem a operação de leitura do objeto de dados. 

Depois de criar a operação de leitura do objeto de dados para o objeto de dados físicos, você pode criar uma transformação de Leitura para adicionar o objeto de dados físicos como uma fonte no fluxo de trabalho de mapeamento. 

Ao adicionar o objeto de dados físicos ao mapeamento, você pode especificar a transformação de Leitura e a operação de leitura do objeto de dados que deseja usar.

A transformação Read usa as propriedades que você configurou no objeto de saída da operação de leitura do objeto de dados.

Operação de gravação de objeto de dados

Uma operação de gravação de objeto de dados está associada a um objeto de dados de destino. Você pode criar uma operação de gravação de objeto de dados e configurar as propriedades da operação de gravação de objeto de dados no editor de objeto.

Quando você visualiza a operação de gravação do objeto de dados no editor de objetos, o editor de objetos exibe um objeto de entrada e um objeto de destino. Os objetos de entrada e destino compreendem a operação de gravação do objeto de dados. Você edita as propriedades avançadas e de tempo de execução no objeto de entrada.

Depois de criar a operação de gravação do objeto de dados para o objeto de dados físicos, você pode criar uma transformação de Gravação para adicionar o objeto de dados físicos como um destino no fluxo de trabalho de mapeamento. Ao adicionar o objeto de dados físicos ao mapeamento, você pode especificar a transformação Write e a operação de gravação do objeto de dados que deseja usar.

A transformação de Gravação usa as propriedades que você configurou no objeto de entrada da operação de gravação do objeto de dados.

Transformações

Uma transformação é um objeto que gera, modifica ou transmite dados.

O Informatica Developer oferece um conjunto de transformações que executam funções específicas. 

As transformações em um mapeamento representam as operações que o Data Integration Service executa nos dados. 

Os dados passam por portas de transformação que você vincula em um mapeamento ou mapplet.

As transformações podem ser ativas ou passivas. 

As transformações podem ser conectadas ao fluxo de dados ou podem ser desconectadas. 

Mapplets

Um mapplet é um objeto reutilizável que contém um conjunto de transformações que você pode usar em vários mapeamentos.

Ao usar um mapplet em um mapeamento, você usa uma instância do mapplet. 

Qualquer alteração feita no mapplet é herdada por todas as instâncias do mapplet. Os mapplets podem conter outros mapplets. 

Você também pode usar um mapplet mais de uma vez em um mapeamento ou mapplet. 

É possivel criar um mapplet manualmente e também pode se gerar um mapplet a partir de um segmento em um mapeamento ou outro mapplet.

O tipo de mapplet é determinado pela entrada e saída do mapplet.

É possível criar os seguintes tipos de mapplet:

  • Source: O mapplet contém uma fonte de dados como entrada e uma transformação de Saída como saída.
  • Target: O mapplet contém uma transformação de entrada como entrada e uma fonte de dados como saída.
  • Midstream: O mapplet contém uma transformação de entrada e uma transformação de saída. Ele não contém uma fonte de dados para entrada ou saída.

Segmentos

Um segmento consiste em um ou mais objetos em um mapeamento, mapplet, regra ou stored procedure. 

Um segmento pode incluir uma origem, um destino, uma transformação ou um mapplet.

Você também pode gerar um mapplet a partir de um segmento em um mapeamento ou mapplet. 

Validação de mapeamento

Ao desenvolver um mapeamento, devemos configurá-lo para que o Data Integration Service possa ler e processar todo o mapeamento. 

A ferramenta Developer marca um mapeamento como inválido quando detecta erros que impedirão o Data Integration Service de executar o mapeamento.

A ferramenta Developer executa os seguintes tipos de validação:

  • Validação de conexão(Connection Validation): É quando são validadas as conexões de portas, se estão todas conectadas, se pelo menos um objeto de entrada e um objeto de saída estão conectados, se pelo menos uma porta de entrada e uma porta de saída do mapplet estão conectadas ao mapeamento, se os tipos de dados entre as portas são compatíveis.
  • Validação de expressão(Expression Validation): É quando é validade um expressão em um transformação.
  • Validação de objeto(Object Validation): Quando você valida um mapeamento, a ferramenta Developer verifica se as definições dos objetos independentes, como transformações de entrada ou mapplets, correspondem à instância no mapeamento. Se algum objeto mudar enquanto você configura o mapeamento, o mapeamento pode conter erros. Se algum objeto for alterado enquanto você não estiver configurando o mapeamento, a ferramenta Developer rastreia os efeitos dessas alterações nos mapeamentos.
  • Validação de parâmetro(Parameter Validation): Para validar os parâmetros de mapeamento na ferramenta Developer, visualize o mapeamento com parâmetros resolvidos e valide o mapeamento. Quando você resolve parâmetros de mapeamento, a ferramenta Developer gera uma instância de tempo de execução do mapeamento que mostra os parâmetros resolvidos em tempo de execução. Valide a instância de tempo de execução do mapeamento para validar os parâmetros de mapeamento. Você pode validar os parâmetros de mapeamento que usam os valores de parâmetro padrão no mapeamento, um conjunto de parâmetros ou um arquivo de parâmetro.
  • Validação de sincronização(Synchronization Validation): Você pode validar a sincronização em tempo de execução de origens e destinos dinâmicos. Se você configurar um mapeamento dinâmico que usa fontes de dados definidas para sincronizar no tempo de execução, poderá visualizar a instância do tempo de execução do mapeamento para validar a sincronização. 

Target Load Order Constraints

Uma Target Load Order Constraint restringe como o Data Integration Service carrega e confirma linhas para duas instâncias de destino relacionadas entre si no mesmo mapeamento.

Na ferramenta Developer, você pode configurar restrições para restringir a ordem em que o Data Integration Service carrega as linhas nas tabelas de destino.

Você pode configurar uma restrição para forçar o Data Integration Service a carregar os dados de uma instância de destino primária completamente antes de carregar os dados para uma instância de destino secundária. As tabelas que você define como destino primário e destino secundário dependem das transações nas linhas de entrada.

Saídas de mapeamento

Ao executar um mapeamento é possível configurarmos para que ele retorne saídas.

Uma saída de mapeamento é um valor único resultado de uma agregação de um campo ou de uma expressão em cada linha que o mapeamento processa. As transformações não recebem os valores de saída do mapeamento.

O mapeamento retorna cada valor de mapeamento quando o mapeamento é concluído.

Podemos definir várias saídas de mapeamento no mesmo mapeamento. Um mapeamento pode retornar saídas de mapeamento definidas pelo usuário ou saídas de mapeamento definidas pelo sistema.

  • Saídas de mapeamento definidas pelo usuário: É um valor numérico ou data que um mapeamento retorna agregando um campo ou expressão de cada linha no mapeamento.
  • Saídas de mapeamento definidas pelo sistema: É um valor integrado que o mapeamento sempre retorna sempre que o mapeamento é concluído. O mapeamento retorna o número de linhas de origem, o número de linhas de destino e o número de linhas de erro que o mapeamento processa. Você pode passar esses valores em variáveis de fluxo de trabalho para outra tarefa em um fluxo de trabalho, como uma tarefa de Notificação ou uma tarefa de Gateway. Um mapeamento retorna os seguintes tipos de saídas de mapeamento definidas pelo sistema:
  1. numberOfTargetRows: O número de linhas que o mapeamento gravou no destino.
  1. numberOfSourceRows: O número de linhas que o mapeamento leu da origem.
  1. numberOfErrorRows: O número de linhas de erro que o mapeamento gerou.

Podemos configurar o mapeamento para persistir as saídas de mapeamento para salvar os valores de saída no repositório.

Para mapeamentos implantados para execução no ambiente nativo ou no mecanismo Spark, podemos vincular a saída em um parâmetro do mapeamento para usar o valor em execuções subsequentes do mesmo mapeamento. Ao definir esse parâmetro de mapeamento, atribua um valor padrão para o parâmetro. Ao vincular a saída de mapeamento no parâmetro de mapeamento criado, a saída persistente substitui o valor padrão, a menos que você configure um valor para o mesmo parâmetro em um conjunto de parâmetros ou arquivo de parâmetros.

Se você definir um valor de parâmetro em um conjunto de parâmetros ou arquivo de parâmetros, esse valor será usado para o parâmetro.

Quando você reimplanta um mapeamento ou altera uma saída de mapeamento, pode afetar o estado das saídas de mapeamento persistentes.

Na primeira vez que você implanta um mapeamento, não é necessário realizar nenhuma tarefa adicional se um mapeamento tiver saídas de mapeamento persistentes.

Mas quando o mapeamento é reimplantado, as saídas de mapeamento persistentes são retidas no repositório. Você pode executar o infacmd ms deleteMappingPersistedOutputs para excluir saídas persistentes do repositório.

O estado das saídas de mapeamento não tem backup quando você faz backup de um mapeamento.

Se você renomear uma saída de mapeamento, não poderá usar o valor de saída de mapeamento persistente de uma execução de mapeamento implementada anterior. 

Se você recriar uma saída de mapeamento com o mesmo nome, poderá usar o valor de saída persistente.

Referências