Projeto de DW e BI - 6º Parte - Configurando as tabelas que serão monitoradas

O proximo passo é configurar as tabelas que irão ser monitoradas. Como acabamos de criar esse banco ele só possui tabelas de sistema como nos mostrar o script abaixo:


Vamos criar algumas tabelas pra podemos ativas o recurso.

      CREATE TABLE TESTE1
     (
       ID   INT NOT NULL PRIMARY KEY,
       TESTE1 VARCHAR(50)
     )

     GO

     CREATE TABLE TESTE2
     (
       ID   INT NOT NULL PRIMARY KEY,
       TESTE2 VARCHAR(50)
     )



Após a criação vamos executar novamente o script e observar como  o valor do campo “is_tracked_by_cdc” é por padrão criado com o valor zerado.





      Antes de ativamos o CDC a nivel de tabela é preciso verificarmos primeiro se o “SQL SERVER AGENT” esta habilitado. Isso é necessario por que quando se habilita o recurso de CDC a nivel de tabela é criado dois Jobs.
      Agora vamos ativar o CDC para as duas tabelas criadas. Para habilitar o CDC nas tabelas criadas vamos utilizar um procedure “sp_cdc_enable_table”. Veja como podemos usar essa procedure:
      Vamos entender o que aconteceu na figura abaixo. Quando ativamos a primeira tabela do banco de dados com o CDC ele cria dois jobs. O job “cdc.BICDC_capture” é responsavel por logar tudo que ocorrer na tabela origem para a tabela que ele criou, isso inclui: Insert, update, delete. Já o job “cdc.BICDC_cleanup” é responsavel por apagar os registros logados na tabela que ele criou depois de um periodo, configuravel, de tempo. Quando execultamos essa procedure ela tambem cria a tabela de log que é criada com o schema cdc mais o schema da tabela mais a o nome e no final da tabela “_CT”. Essa tabela tera todos os campos da tabela original mais alguns campos de controle do CDC. Essa procedure tambem cria procedures e funções. Observe a figura:  






       Para consultar as tabelas que estão com o recurso CDC ativado basta executar o script abaixo e verificar que o valor do campo “is_tracked_by_cdc” é: 1.




         Vamos ver na prática agora como as infomações são guardadas. Vamos fazer um insert, update e delete na tabela TESTE1.


          Observe que os registros aparecem conforme foi inserido. Mais o que é importante observar é a coluna "__$operation" que esta com o valor 2 que representa o insert. Observe no caso do update como fica os registros.

       No caso do update é um pouco diferente. Ele gera dois registro com o codigo 3,4 na coluna "__$operation". Sempre que fizer uma alteração o CDC grava o registro ante de ser alterado,codigo = 3, e o valor alterado que é representado pelo codigo 4 na coluna "__$operation". Já no caso do caso de deletar um registro o CDC cria apenas uma linha com o "__$operation" = 1 conforme a figura abaixo:



        É isso ai pessoal, no próximo artigo vou mostrar como usar o SSIS para Carregar as informações armazenadas nas tabelas que estão sendo monitoradas.







Um comentário: