Inserções, atualizações e exclusões de processos

Aplica-se a: SQL Server SSIS Integration Runtime em Azure Data Factory

No fluxo de dados de um pacote de Serviços de Integração que realiza uma carga incremental de dados de alteração, a segunda tarefa é separar inserções, atualizações e eliminações. Depois, podes usar comandos apropriados para os aplicar ao destino.

Note

A primeira tarefa ao desenhar o fluxo de dados de um pacote que realiza 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 mais informações sobre este componente, consulte Recuperar e Compreender os Dados de Alteração. Para uma descrição do processo global de criação de um pacote que realiza uma carga incremental de dados de alteração, veja Captura de Dados de Alteração (SSIS).

Associar valores amigáveis a inserções, atualizações e eliminações separadas

Na consulta de exemplo que recupera dados de alteração, a função cdc.fn_cdc_get_net_changes_<capture_instance> devolve apenas a coluna de metadados chamada __$operation. Esta coluna de metadados contém um valor ordinal que indica qual a operação que causou a alteração.

Note

Para mais informações sobre a consulta que utiliza chamadas à função cdc.fn_cdc_get_net_changes_<capture_instance> , veja Criar a Função para Recuperar os Dados de Alteração.

Associar um valor ordinal à sua operação correspondente não é tão simples como usar um mnemónico da operação. Por exemplo, 'D' pode facilmente representar uma operação de eliminação e 'I' representa uma operação de inserção. A consulta de exemplo criada no tópico, Criar a Função para Recuperar os Dados de Alteração, faz esta conversão de um valor ordinal para um valor de string amigável que é devolvido numa 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  

Configurar uma Transformação Condicional Dividida para Direcionar Inserções, Atualizações e Eliminaçõ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 eliminação.

Note

A coluna CDC_OPERATION contém um valor de cadeia amigável derivado do valor numérico na coluna __$operation .

Para dividir inserções, atualizações e eliminações para processamento usando uma transformação de Divisão Condicional

  1. No separador Fluxo de Dados, adicione uma transformação de Divisão Condicional.

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

  3. No Editor de Transformação Dividida Condicional, no painel inferior do editor, introduza as três linhas seguintes para designar as três saídas

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

    2. Introduza uma linha que inclua a condição CDC_OPERATION == "U" para encaminhar as linhas atualizadas para a saída destinada a atualizações.

    3. Introduza uma linha com a condição CDC_OPERATION == "D" para encaminhar as linhas eliminadas para a saída de eliminações.