Como consumir os dados do CDC pelo SSIS – Parte 2

Autores Rodrigo Crespi e Tiago Crespi

No primeiro post sobre CDC, mostramos a criação de um pacote do SQL Server Integration Services o qual faz a carga inicial dos dados. Neste post iremos consumir a leitura dos dados que foram alterados. Para quem não leu a primeira parte, segue o link: Parte 1 – Como Consumir os Dados do CDC pelo SSIS – CDB Data Solutions

Criando um pacote na solução existente

Vamos assumir que você leitor está acompanhando do primeiro post, assim continuaremos com a mesma solução. Seguindo aqui iremos começar com a criação do pacote Diferencial.dtsx.

Para criar o pacote Diferencial.dtsx devemos ir em Solution Explorer, com o botão direito em SSIS Packages e em New SSIS Packages e já aparecerá um novo pacote junto aos outros pacotes existentes.

Para deixarmos tudo organizado, altere o nome do novo pacote que esta como Package1.dtsx para Diferencial.dtsx.

Componentes do pacote Diferencial.

Os componentes serão os mesmos do pacote Inicial.dtsx. Incluam neste novo pacote dois CDC Control Task e um Data Flow Task organizando-os conforme a imagem abaixo.

Configurando os componentes

As mudanças nas configurações entre os dois pacotes são mínimas, se comparados ao Inicial.dtxs:

  • CDC Control Operation: escolha a opção “Mark processed range”. Esta opção irá coletar os dados rastreados desde a última vez que os dados foram consumidos;
  • Variable containing the CDC state: use a CDC_State que já foi criada na parte 1;
  • Connection manager for the database Where the state is storage: neste exemplo, vamos utilizar a mesma conexão que criamos acima;
  • Table to use for storing state: esta tabela foi criada na parte 1, a tabela será mostrada na lista, selecione ela;
  • State name: na lista escolha o CDC_state;

No segundo CDC Control Task vamos colocar o nome de CDC Marca Fim e a configuração é igual ao do primeiro CDC Control Task.

DataFlow

No Dataflow vamos precisar de:

  • 1 CDC Source;
  • 1 CDC Splitter;
  • 3 ADO Net Destination.

A função deste componente será a mesma do inicial.dtsx, receber os dados do CDC, separar as operações e gravar nas respectivas tabelas.

E está pronto o pacote Diferencial.dtsx.

Este pacote poderá ser agendado para executar com frequência. A frequência vai depender da estratégia da empresa, pode ser diário, semanal etc. Lembrando que quanto maior o tempo entre as execuções mais dados serão lidos e maior será o log do banco de origem para reter estes dados.

Este pacote vai ler a última posição registrada na tabela CDC_State, carregará estes dados para o Fluxo do SSIS e o CDC splitter fará a separação por tipo de transação e gravará nas tabelas apropriadas.

Ao final o último CDC control Task gravará da última posição lida por este processo, deixando pronto para a próxima carga.

É um recurso muito útil quando o banco de dados não tem campos específicos nas tabelas que indiquem quando o registro foi alterado.

Espero ter ajudado com esta série de artigos sobre o CDC.

Até o próximo post pessoal!😊

Categorias

Artigos Recentes

Um Pouco sobre a LGPD – Lei Geral de Proteção aos Dados

Fale Conosco

Converse com nossos especialistas e descubra como transformar seus dados em informações seguras, disponíveis e acessíveis.

Endereço

Rua Angelo Antonello, 93 – Sala 62, Centro – Farroupilha/RS – CEP: 95170-492

Contato Comercial

Email: contato@cdbdatasolutions.com.br
Telefone: (54) 3401-1471

Abrir bate-papo
Olá
Podemos ajudar?