Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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
No separador Fluxo de Dados, adicione uma transformação de Divisão Condicional.
Ligue a saída da fonte OLE DB à transformação de Divisão Condicional.
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
Introduza uma linha com a condição
CDC_OPERATION == "I"para direcionar as linhas inseridas para a saída de inserções.Introduza uma linha que inclua a condição
CDC_OPERATION == "U"para encaminhar as linhas atualizadas para a saída destinada a atualizações.Introduza uma linha com a condição
CDC_OPERATION == "D"para encaminhar as linhas eliminadas para a saída de eliminações.