Processar inserções, atualizações e exclusões
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, consulte Change Data Capture (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 apenas 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 chama a função cdc.fn_cdc_get_net_changes_<capture_instance>, consulte 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
|
Consulte também
Tarefas
Dividir um conjunto de dados por meio da transformação Divisão Condicional