Partilhar via


Fonte CDC

Aplica-se a:SQL Server SSIS Integration Runtime em Azure Data Factory

Importante

Os componentes de fluxo CDC, incluindo CDC Control Task, CDC Source e CDC Splitter, foram preteridos. Para obter detalhes, consulte o anúncio.

A fonte CDC lê uma variedade de dados de alteração de tabelas de alteração do SQL Server e fornece as alterações downstream para outros componentes do SSIS.

O intervalo de dados de alteração lidos pela fonte CDC é chamado de Intervalo de Processamento CDC e é determinado pela tarefa CDC Control que é executada antes do início do fluxo de dados atual. O Intervalo de Processamento CDC é derivado do valor de uma variável de pacote que mantém o estado do processamento CDC para um grupo de tabelas.

A fonte CDC extrai dados de um banco de dados SQL Server usando uma tabela de banco de dados, uma exibição ou uma instrução SQL.

A fonte CDC usa as seguintes configurações:

  • Um gerenciador de conexões do SQL Server ADO.NET para acessar o banco de dados CDC do SQL Server.

  • Uma tabela habilitada para CDC.

  • O nome da instância de captura da tabela selecionada (se existir mais de uma).

  • O modo de processamento de alteração.

  • O nome da variável do pacote de estado CDC com base na qual se determina o intervalo de processamento CDC. A fonte CDC não modifica essa variável.

Os dados retornados pela Origem CDC são os mesmos retornados pelas funções CDC do SQL Server cdc.fn_cdc_get_all_changes_<capture-instance-name> ou cdc.fn_cdc_get_net_changes_<capture-instance-name> (quando disponível). A única adição opcional é a coluna __$initial_processing que indica se o intervalo de processamento atual pode se sobrepor a uma carga inicial da tabela. Para obter mais informações sobre o processamento inicial, consulte Tarefa de controle CDC.

A fonte CDC tem uma saída regular e uma saída de erro.

Tratamento de erros

A fonte CDC tem uma saída de erro. A saída de erro do componente inclui as seguintes colunas de saída:

  • Código de erro: O valor é sempre -1.

  • Coluna de erro: A coluna de origem que causa o erro (para erros de conversão).

  • Colunas de linha de erro: os dados de registro que causam o erro.

Dependendo da configuração de comportamento de erro, a fonte CDC suporta o registo de erros (conversão de dados, truncamento) que ocorrem durante o processo de extração na saída de erro.

Suporte a tipos de dados

O componente de origem CDC para Microsoft oferece suporte a todos os tipos de dados do SQL Server, que são mapeados para os tipos de dados SSIS corretos.

Solução de problemas da fonte do CDC

O texto seguinte contém informações sobre a resolução de problemas da fonte CDC.

Use esse script para isolar problemas e reproduzi-los no SQL Server Management Studio

A operação de origem CDC é regida pela operação da tarefa CDC Control executada antes de invocar a fonte CDC. A tarefa Controle CDC prepara o valor da variável de pacote de estado CDC para conter as LSNs de início e fim. Ele executa função equivalente ao seguinte script:

use <cdc-enabled-database-name>  
               declare @start_lsn binary(10), @end_lsn binary(10)  
               set @start_lsn = sys.fn_cdc_increment_lsn(  
                       convert(binary(10),'0x' + '<value-from-state-cs>', 1))  
               set @end_lsn =   
                       convert(binary(10),'0x' + '<value-from-state-ce>', 1)  
               select * from cdc.fn_cdc_get_net_changes_dbo_Table1(@start_lsn,  
@end_lsn, '<mode>')  

onde:

  • <cdc-enabled-database-name> é o nome do banco de dados do SQL Server que contém as tabelas de alteração.

  • <value-from-state-cs> é o valor que aparece na variável de estado CDC como CS/<value-from-state-cs>/ (CS significa Current-processing-range-Start).

  • <value-from-state-ce> é o valor que aparece na variável de estado CDC como CE/<value-from-state-cs>/ (CE significa Current-processing-range-End).

  • <são> os modos de processamento CDC. Os modos de processamento têm um dos seguintes valores All, All with Old Values, Net, Net with Update Mask, Net with Merge.

Esse script ajuda a isolar problemas reproduzindo-os no SQL Server Management Studio, onde é fácil reproduzir e identificar erros.

Mensagem de erro do SQL Server

A seguinte mensagem pode ser retornada pelo SQL Server:

Foi fornecido um número insuficiente de argumentos para o procedimento ou função cdc.fn_cdc_get_net_changes_<...>

Este erro não indica que um argumento está faltando. Isso significa que os valores de LSN inicial ou final na variável de estado CDC são inválidos.

Configurando a origem CDC

Você pode configurar a fonte CDC programaticamente ou por meio do Designer SSIS.

Para obter mais informações, consulte um dos seguintes tópicos:

A caixa de diálogo Advanced Editor contém as propriedades que podem ser definidas programaticamente.

Para abrir a caixa de diálogo Advanced Editor:

  • Na tela Fluxo de Dados do seu projeto do SQL Server 2019 Integration Services (SSIS), clique com o botão direito do mouse na fonte CDC e selecione Mostrar Editor Avançado.

Para obter mais informações sobre as propriedades que você pode definir na caixa de diálogo Editor Avançado , consulte Propriedades personalizadas de origem CDC.

Na presente seção

Editor de código-fonte CDC (Página Gestor de Conexões)

Use a página Gerenciador de Conexões da caixa de diálogo Editor de código-fonte CDC para selecionar o gerenciador de conexões ADO.NET para o banco de dados do SQL Server do qual a fonte CDC lê as linhas de alteração (o banco de dados CDC). Uma vez que o banco de dados CDC é selecionado, você precisa selecionar uma tabela capturada no banco de dados.

Para obter mais informações sobre a fonte CDC, consulte CDC Source.

Lista de Tarefas

Para abrir a página do CDC Source Editor Connection Manager

  1. Em SQL Server Data Tools, abra o pacote do SQL Server 2019 Integration Services (SSIS) que contém a fonte CDC.

  2. Na guia Fluxo de Dados , clique duas vezes na fonte CDC.

  3. No CDC Source Editor, clique em Connection Manager.

Opções

ADO.NET gerenciador de conexões
Selecione um gerenciador de conexões existente na lista ou clique em Novo para criar uma nova conexão. A conexão deve ser com um banco de dados do SQL Server habilitado para CDC e onde a tabela de alterações selecionada está localizada.

Novo
Clique em Novo. A caixa de diálogo Configurar ADO.NET Editor do Gerenciador de Conexões é aberta, onde você pode criar um novo gerenciador de conexões

Tabela CDC
Selecione a tabela de origem CDC que contém as alterações capturadas que você deseja ler e alimentar para componentes SSIS downstream para processamento.

Instância de captura
Selecione ou introduza o nome da instância de captura do CDC que contém a tabela CDC a ser lida.

Uma tabela de origem capturada pode ter uma ou duas instâncias capturadas para lidar com a transição perfeita da definição da tabela por meio de alterações de esquema. Se mais de uma instância de captura for definida para a tabela de origem que está sendo capturada, selecione a instância de captura que você deseja usar aqui. O nome da instância de captura padrão para uma tabela [esquema].[tabela] é <schema>_<tabela> mas os nomes de instância de captura reais em uso podem ser diferentes. A tabela real que é lida é a tabela CDC cdc .<instância-captura>_CT.

Modo de processamento CDC
Selecione o modo de processamento que melhor atende às suas necessidades de processamento. As opções possíveis são:

  • Todos: retorna as alterações no intervalo CDC atual sem os valores Antes da atualização .

  • Todos com valores antigos: retorna as alterações no intervalo de processamento CDC atual, incluindo os valores antigos (Antes da atualização). Para cada operação de atualização, haverá duas linhas, uma com os valores de atualização anterior e outra com o valor de atualização posterior.

  • Net: retorna apenas uma linha de alteração por linha de origem modificada no intervalo de processamento CDC atual. Se uma linha de origem foi atualizada várias vezes, a alteração combinada é produzida (por exemplo, insert+update é produzido como uma única atualização e update+delete é produzido como uma única exclusão). Ao trabalhar no modo de processamento de alterações de rede, é possível dividir as alterações para as saídas Excluir, Inserir e Atualizar e manipulá-las em paralelo porque a única linha de origem aparece em mais de uma saída.

  • Rede com máscara de atualização: Este modo é semelhante ao modo Net regular, mas também adiciona colunas booleanas com o padrão de nome __$<column-name>__Changed que indicam colunas alteradas na linha de alteração atual.

  • Net with merge: Este modo é semelhante ao modo Net normal, mas com operações Insert e Update mescladas em uma única operação Merge (UPSERT).

Observação

Para todas as opções de alteração de rede, a tabela de origem deve ter uma chave primária ou um índice exclusivo. Para tabelas sem chave primária ou índices exclusivos, você deve usar a opção Todos .

Variável que contém o estado CDC
Selecione a variável de pacote de string SSIS que mantém o estado CDC para o contexto CDC atual. Para obter mais informações sobre a variável de estado CDC, consulte Definir uma variável de estado.

Incluir coluna indicadora de reprocessamento
Marque essa caixa de seleção para criar uma coluna de saída especial chamada __$reprocessing.

Esta coluna tem um valor true quando o intervalo de processamento CDC se sobrepõe ao intervalo de processamento inicial (o intervalo de LSNs correspondente ao período de carga inicial) ou quando um intervalo de processamento CDC é reprocessado após um erro em uma execução anterior. Essa coluna de indicador permite que o desenvolvedor do SSIS manipule erros de forma diferente ao reprocessar alterações (por exemplo, ações como uma exclusão de uma linha não existente e uma inserção que falhou em uma chave duplicada podem ser ignoradas).

Para obter mais informações, consulte CDC Source Custom Properties.

Editor de código-fonte CDC (Página das Colunas)

Use a página Colunas da caixa de diálogo CDC Source Editor para mapear uma coluna de saída para cada coluna externa (fonte).

Lista de Tarefas

Para abrir a página Colunas do Editor de código-fonte CDC

  1. Em SQL Server Data Tools, abra o pacote do SQL Server 2019 Integration Services (SSIS) que contém a fonte CDC.

  2. Na guia Fluxo de Dados , clique duas vezes na fonte CDC.

  3. No Editor de código-fonte CDC, clique em Colunas.

Opções

Colunas externas disponíveis
Uma lista de colunas externas disponíveis na fonte de dados. Não é possível usar esta tabela para adicionar ou excluir colunas. Selecione as colunas a serem usadas na fonte. As colunas selecionadas são adicionadas à lista Coluna Externa na ordem em que são selecionadas.

Coluna Externa
Uma exibição das colunas externas (origem) na ordem em que você as vê ao configurar componentes que consomem dados da fonte CDC. Para alterar essa ordem, primeiro limpe as colunas selecionadas na lista Colunas Externas Disponíveis e, em seguida, selecione colunas externas na lista em uma ordem diferente. As colunas selecionadas são adicionadas à lista Coluna Externa na ordem em que são selecionadas.

Coluna de saída
Insira um nome exclusivo para cada coluna de saída. O padrão é o nome da coluna externa (fonte) selecionada, no entanto, você pode escolher qualquer nome exclusivo e descritivo. O nome inserido é exibido no Designer SSIS.

CDC Source Editor (página de saída de erro)

Use a página Saída de erro da caixa de diálogo CDC Source Editor para selecionar opções de tratamento de erros.

Lista de Tarefas

Para abrir a página de saída de erro do CDC Source Editor

  1. Em SQL Server Data Tools, abra o pacote do SQL Server 2019 Integration Services (SSIS) que contém a fonte CDC.

  2. Na guia Fluxo de Dados , clique duas vezes na fonte CDC.

  3. No CDC Source Editor, clique em Error Output (Saída de erro).

Opções

de entrada/saída
Exiba o nome da fonte de dados.

Coluna
Exiba as colunas externas (origem) selecionadas na página Gerenciador de Conexões da caixa de diálogo Editor de código-fonte CDC .

Erro
Selecione como a fonte CDC deve lidar com erros em um fluxo: ignorar a falha, redirecionar a linha ou falhar o componente.

Truncamento
Selecione como a fonte CDC deve lidar com o truncamento num fluxo: ignore a falha, redirecione a linha ou cancele o componente.

Descrição
Não utilizado.

Defina esse valor para células selecionadas
Selecione como a fonte do CDC lida com todas as células selecionadas quando ocorre um erro ou truncamento: ignore a falha, redirecione a linha ou deixe o componente falhar.

Candidatar-se
Aplique as opções de tratamento de erros às células selecionadas.

Opções de tratamento de erros

Use as opções a seguir para configurar como a fonte CDC lida com erros e truncamentos.

Componente de reprovação
A tarefa Fluxo de Dados falha quando ocorre um erro ou um truncamento. Este é o comportamento padrão.

Ignorar erro
O erro ou o truncamento é ignorado e a linha de dados é direcionada para o output de origem do CDC.

Fluxo de redirecionamento
Um erro ou uma linha de dados truncada é direcionada para a saída de erro da fonte CDC. Neste caso, o tratamento de erros da fonte do CDC é utilizado. Para obter mais informações, consulte CDC Source.