Compartilhar via


Origem CDC

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

O intervalo de leitura de dados de alteração pela origem CDC é chamado Intervalo de Processamento CDC e é determinado pela tarefa Controle de CDC 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 origem CDC extrai dados de um banco de dados do SQL Server usando uma tabela de banco de dados, uma exibição ou uma instrução SQL.

A origem CDC usa as configurações seguintes:

  • Um gerenciador de conexões SQL Server ADO.NET para acessar o banco de dados SQL Server CDC. Para obter mais informações sobre como configurar a conexão de origem CDC, confira Editor de Origem CDC (Página Gerenciador de Conexões).

  • Uma tabela habilitada para CDC.

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

  • O modo de processamento de alteração.

  • O nome da variável de pacote do estado CDC com base no qual o intervalo de Processamento CDC é determinado. A origem CDC não modifica essa variável.

Os dados retornados pela Origem CDC são iguais aos retornados pelas funções do 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 CDC Control Task.

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

Tratamento de erros

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

  • 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 origem CDC oferece suporte ao retorno de erros (conversão de dados, truncamento) que ocorre durante o processo de extração na saída de erro. Para obter mais informações, consulte Editor de Origem CDC (Página Saída de Erro).

Suporte do tipo de dados

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

Solucionando problemas da origem CDC

A seguir são apresentadas informações sobre como solucionar problemas de origem CDC.

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

Uma operação de origem CDC é governada pela operação da tarefa Controle CDC executada antes da chamada à origem CDC. A tarefa Controle CDC prepara o valor da variável de pacote do estado CDC para conter LSNs de início e término. Ela executa uma 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ções.

  • <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, início atual do intervalo de processamento).

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

  • <mode> corresponde aos modos de processamento CDC. Os modos de processamento têm um dos seguintes valores: Tudo, Tudo com Valores Antigos, Rede, Rede com Máscara de Atualização, Rede com Mesclagem.

Este 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 mensagem seguinte poderá ser retornada pelo SQL Server:

Um número insuficiente de argumentos foram fornecidos ao procedimento ou função cdc.fn_cdc_get_net_changes_<..>.

Esse erro não indica que um argumento está faltando. Significa que os valores de LSN de início ou fim na variável de estado CDC são inválidos.

Configurando a origem CDC

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

Para obter mais informações, consulte um dos tópicos a seguir.

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

Para abrir a caixa de diálogo Editor Avançado :

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

Para obter mais informações sobre as propriedades que podem ser definidas na caixa de diálogo Editor Avançado , consulte CDC Source Custom Properties.

Nesta seção