Processando inserções, atualizações e exclusões
No fluxo de dados de um pacote Integration Services, que realiza 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 Recuperando e compreendendo 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 Melhorando cargas incrementais com Change Data Capture. Para ver exemplos completos que demonstram o uso do Change Data Capture em pacotes, consulte os exemplos do Integration Services no Codeplex. |
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 Criando 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:Aplicando as alterações ao destino
|
Consulte também