Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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ções, a terceira e última tarefa é aplicar as alterações ao destino. Você precisará de um componente para aplicar inserções, um para aplicar atualizações e um para aplicar exclusões.
Observação
A segunda tarefa no desenvolvimento do fluxo de dados de um pacote que realiza uma carga incremental de dados de alteração serve para separar inserções, atualizações e exclusões. Para obter mais informações sobre este componente, consulte Processar inserções, atualizações e exclusões. 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).
Aplicando inserções
Para aplicar inserções, você usa um destino OLE DB, pois as linhas novas não requerem nenhuma manipulação especial.
Para processar inserções usando um destino OLE DB
Na guia Fluxo de Dados , adicione um destino OLE DB.
Conecte a saída que contém inserções da transformação de Divisão Condicional para o destino de OLE DB.
No Editor de Destino de OLE DB, na página Gerenciador de Conexões , selecione as seguintes opções:
Selecione ou crie um Gerenciador de Conexões de OLE DB para o banco de dados de destino.
Selecione uma opção Modo de acesso dos dados e selecione a tabela de destino ou digite uma instrução SQL que contenha as colunas de destino.
Na página Mapeamentos do editor, mapeie as colunas apropriadas a partir dos dados de alteração para a tabela de destino.
Aplicando atualizações
Para aplicar atualizações, você usa uma transformação de Comando do OLE DB. Você usa essa transformação porque precisa usar uma instrução parametrizada UPDATE para atualizar uma linha de cada vez com os novos valores de coluna.
Observação
Também é possível usar componentes de destino para aplicar atualizações. Ao usar esse método, você usa os componentes de destino para salvar as linhas em tabelas temporárias criadas para essa finalidade. Em seguida, você usa tarefas Executar SQL para realizar operações de atualização em massa e exclusão em massa no destino a partir das tabelas temporárias.
Para processar atualizações usando uma transformação de Comando OLE DB
Na guia Fluxo de Dados , adicione uma transformação de Comando OLE DB.
Conecte a saída que contém atualizações a partir da transformação de Divisão Condicional para a transformação de Comando OLE DB.
Em Editor Avançado para o Comando OLE DB, no Gerenciador de Conexões selecione ou crie um gerenciador de conexões OLE DB para o banco de dados de destino.
No Editor Avançado para Comando OLE DB, na guia Propriedades do Componente, para SqlCommand, insira uma instrução SQL parametrizada UPDATE.
Por exemplo, uma instrução UPDATE para uma tabela Customer pode ter a seguinte sintaxe:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?Na guia Mapeamentos de colunas do editor, mapeie as colunas apropriadas dos dados de mudança para os parâmetros na instrução UPDATE.
Aplicando exclusões
Para aplicar exclusões, você usa uma transformação de Comando OLE DB. Você usa essa transformação porque precisa usar uma instrução parametrizada DELETE que exclua uma única linha de cada vez com base no valor da coluna que identifica exclusivamente a linha.
Observação
Também é possível usar componentes de destino para aplicar exclusões. Ao usar esse método, você usa os componentes de destino para salvar as linhas em tabelas temporárias criadas para essa finalidade. Em seguida, você usa tarefas Executar SQL para realizar operações de atualização em massa e exclusão em massa no destino a partir das tabelas temporárias.
Para processar exclusões usando uma transformação de Comando OLE DB
Na guia Fluxo de Dados , adicione uma transformação de Comando OLE DB ao fluxo de dados.
Conecte a saída que contém exclusões a partir da transformação de Divisão Condicional para a transformação de Comando OLE DB.
Abra o Editor Avançado para configurar a transformação.
Em Editor Avançado para o Comando OLE DB, no Gerenciador de Conexões selecione ou crie um gerenciador de conexões OLE DB para o banco de dados de destino.
No Editor Avançado do Comando OLE DB, na guia Propriedades do Componente do editor, em SqlCommand, digite uma instrução parametrizada DELETE.
Por exemplo, uma DELETE instrução para uma tabela Customer pode ter a seguinte sintaxe:
delete from Customer where CustomerID = ?Na guia Mapeamentos de Coluna do editor, mapeie a coluna apropriada a partir dos dados de alteração até o parâmetro na instrução DELETE.
Otimizando inserções e atualizações usando MERGE a funcionalidade
Você pode otimizar o processamento de inserções e atualizações combinando determinadas opções de captura de dados de alteração com o uso da palavra-chave Transact-SQL MERGE . Para obter mais informações sobre a MERGE palavra-chave, consulte MERGE (Transact-SQL).
Na instrução Transact-SQL que recupera os dados de alteração, é possível especificar all with merge como o valor do parâmetro row_filter_option ao chamar a função cdc.fn_cdc_get_net_changes_<capture_instance>. Essa função de captura de dados de alteração opera com mais eficiência quando não tem que realizar o processamento extra, necessário para distinguir inserções de atualizações. Ao especificar o valor do parâmetro all with merge , o valor de __$operation dos dados de alteração é 1 para exclusões ou 5 para alterações causadas por inserções ou atualizações. Para obter mais informações sobre a função Transact-SQL usada para recuperar os dados de alteração, consulte Recuperar e compreender os dados de alteração. Após recuperar as alterações com o valor de parâmetro all with merge , é possível aplicar exclusões e enviar as linhas restantes para uma tabela temporária ou uma tabela de preparo. Em seguida, em uma tarefa Executar SQL de downstream, é possível usar uma única instrução MERGE para aplicar todas as inserções ou atualizações da tabela de preparo para o destino.