Processar inserções, atualizações e exclusões
Aplica-se a: SQL Server SSIS Integration Runtime no Azure Data Factory
No fluxo de dados de um pacote do Integration Services, que executa uma carga incremental de dados de alteração, a segunda tarefa serve para separar inserções, atualizações e exclusões. Em seguida, você pode usar comandos apropriados para aplicá-los ao destino.
Observação
A primeira tarefa na criação do fluxo de dados de um pacote que realize uma carga incremental de dados de alteração é configurar o componente de origem que executa a consulta que recupera os dados de alteração. Para obter mais informações sobre esse componente, consulte Recuperar e compreender os dados de alteração. Para obter uma descrição do processo geral para criar um pacote que realiza uma carga incremental de dados de alteração, confira Captura de Dados de Alterações (SSIS).
Associando valores amigáveis para separar inserções, atualizações e exclusões
Na consulta de exemplo que recupera dados de alteração, a função cdc.fn_cdc_get_net_changes_<capture_instance> retorna somente a coluna de metadados chamada __$operation. Esta coluna de metadados contém um valor ordinal que indica qual operação causou a alteração.
Observação
Para obter mais informações sobre a consulta que usa chamadas da função cdc.fn_cdc_get_net_changes_<capture_instance>, confira Criar a função para recuperar os dados de alteração.
Corresponder um valor ordinal a sua operação correspondente não é tão fácil quanto usar um mnemônico da operação. Por exemplo, 'D' pode representar facilmente uma operação de exclusão e 'I' representar uma operação de inserção. A consulta de exemplo criada no tópico, Criando a função para recuperar os dados de alteração, faz essa conversão de um valor ordinal para um valor de cadeia de caracteres amigável que retorna uma nova coluna. O seguinte segmento de código mostra esta conversão:
select
...
case __$operation
when 1 then 'D'
when 2 then 'I'
when 4 then 'U'
else null
end as CDC_OPERATION
Configurando uma transformação de divisão condicional para direcionar inserções, atualizações e exclusões
Para direcionar linhas de dados de alteração para uma de três saídas, a transformação de Divisão Condicional é ideal. A transformação apenas verifica o valor da coluna CDC_OPERATION em cada linha e determina se essa alteração foi uma inserção, atualização ou exclusão.
Observação
A coluna de CDC_OPERATION contém um valor da cadeia de caracteres amigável derivado do valor numérico na coluna __$operation .
Para dividir inserções, atualizações e exclusões por processamento usando uma transformação de Divisão Condicional
Na guia Fluxo de Dados , adicione uma transformação de Divisão Condicional.
Conecte a saída da origem OLE DB à transformação de Divisão Condicional.
No Editor de Transformação de Divisão Condicional, no painel inferior do editor, digite as três linhas a seguir para designar as três saídas
Digite uma linha com a condição
CDC_OPERATION == "I"
para direcionar as linhas inseridas para a saída para inserções.Digite uma linha com a condição
CDC_OPERATION == "U"
para direcionar as linhas atualizadas para a saída para atualizações.Digite uma linha com a condição
CDC_OPERATION == "D"
para direcionar as linhas excluídas para a saída para exclusões.
Próxima etapa
Após você dividir as linhas por processamento, a próxima etapa é aplicar as alterações ao destino.
Próximo tópico: Aplicar as alterações ao destino
Confira também
Transformação Divisão Condicional
Dividir um conjunto de dados por meio da transformação Divisão Condicional