O que é Transaction Control Transformation?
O Controle de Transação é uma transformação ativa e conectada que nos permite confirmar ou reverter transações durante a execução do mapeamento. As operações de confirmação e reversão são de importância significativa, pois garantem a disponibilidade dos dados.
Ao processar um grande volume de dados, pode haver uma situação em que os dados sejam confirmados para o destino. Se um commit for executado com muita frequência, será uma sobrecarga para o sistema. Se uma confirmação for executada tarde demais, em caso de falha, há chances de perda de dados.
Portanto, para fornecer flexibilidade, a transformação do controle de transações é fornecida.
Comandos TCL COMMIT e ROLLBACK
Existem cinco variáveis embutidas disponíveis nesta transformação para lidar com a operação.
TC_CONTINUE_TRANSACTIONEm tc_continue_transaction não há operações realizadas, o processo de carregamento de dados continua como está.
TC_COMMIT_BEFOREEm tc_commit_before, quando este sinalizador é encontrado definido, uma confirmação é executada antes do processamento da linha atual.
TC_COMMIT_AFTEREm tc_commit_after a linha atual é processada, então um commit é executado.
TC_ROLLBACK_BEFOREEm tc_rollback_before, o rollback é executado primeiro e, em seguida, os dados são processados para gravação.
TC_ROLLBACK_AFTEREm tc_rollback_after os dados são processados, então o rollback é executado.
Exemplo:
Neste exemplo, vamos confirmar os dados para o destino quando a condição dept no = 20 for considerada verdadeira
Etapa 1 - Criar um mapeamento com EMP como origem e EMP_TARGET como destino
Passo 2 - Crie uma nova transformação usando o menu de transformação, então
- Selecione um controle de transação como a nova transformação
- Insira o nome da transformação "tc_commit_dept20"
- Selecione a opção de criação
Etapa 3 - A transformação do controle da transação será criada, selecione o botão Concluído
Etapa 4 - Arraste e solte todas as colunas do qualificador de origem para a transformação de controle de transação e, em seguida, vincule todas as colunas da transformação de controle de transação à tabela de destino
Etapa 5 - Clique duas vezes na transformação de controle de transação e, em seguida, na janela de edição de propriedade
- Selecione a guia de propriedades
- Clique no ícone do editor de controle de transação
Etapa 6 - no editor de expressão, insira a expressão -
" iif (deptno = 20, tc_commit_before, tc_continue_transaction)" e selecione OK
Isso significa que se o deptno 20 for encontrado, efetue o commit da transação no destino, caso contrário, continue o processamento atual.
Etapa 7 - Selecione OK na janela anterior
Agora salve o mapeamento e execute-o após criar a sessão e os fluxos de trabalho. Este mapeamento irá comprometer os dados para o destino sempre que o departamento número 20 for encontrado nos dados.