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 terceira e última tarefa é aplicar as alterações ao seu destino. Precisará de um componente para aplicar inserções, um para aplicar atualizações e um para aplicar eliminações.
Note
A segunda tarefa no desenho do fluxo de dados de um pacote que realiza uma carga incremental de dados de alteração é separar inserções, atualizações e eliminações. Para mais informações sobre este componente, consulte Inserções de Processos, Atualizações e Eliminações. 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).
Aplicação de insertos
Para aplicar inserts, utiliza-se um destino OLE DB porque as novas linhas não requerem qualquer tratamento especial.
Para processar as inserções utilizando um OLE DB Destination
No separador de fluxo de dados , adicione um destino de base de dados OLE.
Ligue a saída que contém inserções da transformação de Divisão Condicional ao destino da base de dados OLE.
No Editor de Destino OLE DB, na página Gestor de Ligações, selecione as seguintes opções:
Selecione ou crie um OLE DB Gestor de Ligações para a base de dados de destino.
Selecione uma opção de modo de acesso a dados e depois selecione a tabela de destino ou introduza uma instrução SQL que contenha as colunas de destino.
Na página de Mapeamentos do editor, mapeie as colunas apropriadas dos dados de alteração para a tabela de destino.
Atualizações de Candidatura
Para aplicar atualizações, utiliza-se uma transformação de comandos OLE DB. Usas esta transformação porque tens de usar uma instrução parametrizada UPDATE para atualizar uma linha de cada vez com os novos valores das colunas.
Note
Também pode usar componentes de destino para aplicar atualizações. Ao usar esta abordagem, utiliza os componentes de destino para guardar as linhas em tabelas temporárias que cria para esse fim. Depois, usas tarefas de Executar SQL para realizar operações de atualização e eliminação em massa contra o destino das tabelas temporárias.
Para processar atualizações usando uma transformação de comandos OLE DB
No separador de fluxo de dados , adicione uma transformação de comandos OLE DB.
Ligue a saída que contém atualizações da transformação Condicional Split à transformação OLE DB Command.
No Editor Avançado for OLE DB Command, no separador Gestor de Ligações, selecione ou crie um OLE DB Gestor de Ligações para a base de dados de destino.
No Editor Avançado for OLE DB Command, no separador Propriedades do Componente, para SqlCommand, introduza uma instrução parametrizadaUPDATE.
Por exemplo, uma UPDATE instrução para uma tabela Customer pode ter a seguinte sintaxe:
update CDCSample.Customer set TerritoryID = ?, CustomerType = ?, rowguid = ?, ModifiedDate = ? where CustomerID = ?No separador Mapeamentos de colunas do editor, mapeie as colunas apropriadas dos dados das alterações para os parâmetros na instrução UPDATE.
Aplicação de Eliminações
Para aplicar eliminações, utiliza-se uma transformação de comandos OLE DB. Usas esta transformação porque tens de usar uma instrução parametrizada DELETE que apaga uma única linha de cada vez com base no valor da coluna que identifica unicamente a linha.
Note
Também podes usar componentes de destino para aplicar eliminações. Ao usar esta abordagem, utiliza os componentes de destino para guardar as linhas em tabelas temporárias que cria para esse fim. Depois, usas tarefas de Executar SQL para realizar operações de atualização e eliminação em massa contra o destino das tabelas temporárias.
Para processar eliminações usando uma transformação de comandos OLE DB
No separador de fluxo de dados , adicione uma transformação de comando OLE DB ao fluxo de dados.
Ligue a saída que contém eliminações da transformação Condicional Split à transformação OLE DB Command.
Abra o Editor Avançado para configurar a transformação.
No Editor Avançado for OLE DB Command, no separador Gestor de Ligações, selecione ou crie um OLE DB Gestor de Ligações para a base de dados de destino.
No Editor Avançado for OLE DB Command, no separador Propriedades do Componente do editor, para SqlCommand, introduza uma instrução parametrizadaDELETE.
Por exemplo, uma DELETE instrução para uma tabela Customer pode ter a seguinte sintaxe:
delete from Customer where CustomerID = ?No separador Mapeamentos de Colunas do editor, associe a coluna apropriada dos dados de alterações ao parâmetro na instrução DELETE.
Otimizar inserções e atualizações com a funcionalidade MERGE
Pode otimizar o processamento de inserções e atualizações combinando certas opções de captura de dados alterados com o uso da palavra-chave Transact-SQL MERGE . Para mais informações sobre a palavra-chave MERGE, consulte MERGE (Transact-SQL).
Na instrução Transact-SQL que recupera os dados de alterações, pode 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>. Esta função de captura de dados de alteração funciona de forma mais eficiente quando não tem de realizar o processamento extra necessário para distinguir inserções de atualizações. Quando especifica o valor do parâmetro all with merge, o valor __$operation dos dados de alterações é 1 para eliminações ou 5 para alterações causadas por inserções ou atualizações. Para mais informações sobre a função Transact-SQL utilizada para recuperar os dados de alteração, consulte Recuperar e Compreender os Dados de Alteração. Depois de recuperar alterações com o valor do parâmetro all with merge , podes aplicar deletes e enviar as linhas restantes para uma tabela temporária ou uma tabela de staging. Depois, numa Tarefa Executar SQL subsequente, pode utilizar uma única instrução MERGE para aplicar todas as inserções ou atualizações da tabela de preparação na tabela de destino.