Partilhar via


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

  1. Na guia Fluxo de Dados , adicione uma transformação de Divisão Condicional.

  2. Conecte a saída da origem OLE DB à transformação de Divisão Condicional.

  3. 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

    1. Digite uma linha com a condição CDC_OPERATION == "I" para direcionar as linhas inseridas para a saída para inserções.

    2. Digite uma linha com a condição CDC_OPERATION == "U" para direcionar as linhas atualizadas para a saída para atualizações.

    3. 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