Transformações Ativas e Passivas Transformações Passivas: Não altera o número de linhas – mesmo número de linhas que entra, sai. Exemplos: Expression and Lookup transformations Transformações Ativas: Pode alterar a quantidade de linhas (Agrupando, filtrando, etc.) Exemplos: Aggregator, Filter, Joiner transformations Source Qualifier Seleciona dados de flat files e bases relacionais. Para bases relacionais, cria uma consulta SQL. Ativa As portas representam as colunas da tabela ou os campos de um arquivo texto. Todas as portas são de input/output (I/O) Padrão de Nomenclatura: <DSQ>_<descrição>, onde descrição entende-se por nome da tabela ou conjunto de tabelas do qual estão sendo extraídos os dados. Expression Transformation Executa calculos linha a linha (sem agregação) Passiva O campo Expression fica disponível apenas nas portas de saída (O) ou Variável (V) Padrão de Nomenclatura: <EXP>_<descrição> Filter Transformation Filtra linhas de acordo com uma condição Ativa Todas as portas são de input/output (I/O) A condição do filtro é sempre verdadeira, ou seja, os registros que atendem a condição passam para a próxima transformação. Padrão de Nomenclatura: <FIL>_<descrição lógica> Sorter Transformation Ordena os registros por uma ou mais portas Ativa Todas as portas são de input/output (I/O) A forma de ordenação (ascendente ou descendente) pode ser definida para cada chave Na aba Properties existe a opção distinct Padrão de Nomenclatura: <SRT>_<descrição> Joiner Transformation Realiza joins heterogêneos em dois fluxos de dados Ativa As portas podem ser de input ou input/output Padrão de Nomenclatura: <JNR>_<tabela master>_<tabela detail>, onde entende-se por tabela o ultimo objeto do fluxo, já que pode haver um joiner no meio do fluxo. Caso isso aconteça apenas à descrição do objeto deve fazer parte da formação do nome do joiner, sem a necessidade do seu prefixo. Uma origem de dados deve ser designada como Master. Para melhor performance esta deve ser a com menor quantidade de linhas Joiner Transformation (cont.) Join Types Normal Join: Retorna somente as linhas que atendam a condição Master Outer Join: Retorna todas as linhas do Detail e as correspondências no Master Detail Outer Join: Retorna todas as linhas do Master e as correspondências no Detail Full Outer Join: Retorna todas as linhas do Master e do Detail mesmo não tendo encontrado a condição Define a condição do Join Lookup Transformation Retorna valores de uma tabela ou um arquivo texto baseado em um valor de entrada Passiva As portas de output/lookup (O/L) são o retorno da LKP, caso a condição não seja atendida, retorna NULL Padrão de Nomenclatura: <LKP>_<nome da tabela> ou _<objetivo fim do lookup> Define a condição da Lookup Lookup Transformation (cont.) Propriedades: Lookup Transformation (cont.) Unconnected Lookup Uma porta deverá ser Marcada como retorno A chamada desta Lookup será feita como uma Função dentro da transformação Expression Esta tranformção não será ligada por links a nenhuma outra transformação, ficará “solta” no mapa Sequence Generator Transformation Gera um seqüencial Passiva Não possui porta de Input e as portas existentes não podem ser alteradas. Padrão de Nomenclatura: <SEQ>_<nome da coluna> Sequence Generator Transformation (cont.) Aggregator Transformation Realiza cálculos com agregações Ativa As portas marcadas como GroupBy serão usadas como “chave” na agregação Padrão de Nomenclatura: <AGG>_<nome da tabela> ou _<descrição>. Nos casos em que a dimensão tempo aparece, ela deverá ser colocada no nome. As portas de Output ou Variáveis podem receber Expressões Aggregator Transformation (cont.) Aggregate Expressions Aggregator Transformation (cont.) Propriedades Router Transformation QTD_PRODUTO < 50 QTD_PRODUTO >= 50 AND QTD_PRODUTO < 200 QTD_PRODUTO >=200 Router Transformation Envia as linhas para diferentes direções baseado em filtros Ativa Padrão de Nomenclatura: <RTR>_<descrição lógica dos grupamentos> Router Groups Grupo de entrada Grupos de saída definidos pelo usuário Cada grupo atende a uma condição As condições de TODOS os grupos são avaliadas a cada linha A mesma linha pode atender a mais de uma condição As linhas que não atendem a nenhuma das condições definidas, caem no Default group Update Strategy Transformation Ativa Especifica a ação de cada linha na tabela de destino (insert, update, delete, ou reject) baseado em uma expressão Padrão de Nomenclatura: <UPS>_<nome do target>_<operação>, onde operação pode ser: upd,ins,del,rej. Caso o update strategy, dependendo de uma condição, possa executar operações diferentes, todas devem constar no nome. Update Strategy Expressions Exemplo: IIF(ISNULL(COD_PRODUTO_lkp), DD_INSERT, DD_UPDATE) As opções são: DD_INSERT(0), DD_UPDATE(1), DD_DELETE(2), DD_REJECT(3) A condição é testada a cada linha É gerado um SQL apropriado para cada operação: Insert, Update, Delete DD_REJECT não é enviado para o banco, apenas é informado no log Stored Procedure Transformation Executa uma SP Passiva Pode ser conectada ou desconectada Pode ser executada antes ou depois do Source ou do Target Padrão de Nomenclatura: <SP>_<nome da stored procedure> Union Transformation Une fluxos de dados Ativa Podem ser criados vários grupos de entrada. Não remove registros duplicados. Padrão de Nomenclatura: <UNI>_<descrição> Normalizer Transformation Normaliza os registros Ativa Transforma colunas em linhas, gerando novos registros. Padrão de Nomenclatura: <NRM>_<descrição>