Capturando Dados Históricos com
Change Data Capture
Arthur Luz | MCSA & MCT em SQL Server
arthurjosemberg@gmail.com
http:/...
Patrocinadores
Quem sou eu?
Sênior BI Analyst at Comp Line
Services Solutions
BI and Database Consultant and Instructor in
One Way Soluti...
Agenda
Parte 1
 Change Data Capture – Overview
 Change Data Capture – Arquitetura
 Criando o CDC no SQL Server
 Entend...
Change Data Capture - Overview
Feature responsável pela captura de dados de alteração em
tabelas a partir do Log de maneir...
Change Data Capture - Arquitetura
Log
Table 1 Table 2 Table 3
_CDC 1
_CDC 2
_CDC 3
OLTP OLAP
Criando o Change
Data Capture
Parâmetros Avançados
Na procedure de sistema sys.sp_cdc_change_job é possível editar os
seguintes parâmetros de configuraç...
Parâmetros Avançados
Na procedure de sistema sys.sp_cdc_change_job é possível editar os
seguintes parâmetros de configuraç...
Parâmetros Avançados
Maxscans - Número de
ciclos de leitura do Log Novo ciclo de leitura
Maxstrans - Número de
transações ...
Parâmetros Avançados
Padrão – @continuous = 1, @maxscans = 10,
@maxtrans = 500 e @pollinginterval = 5
Modificado – @contin...
Parâmetros Avançados
Configurações
Avançadas
Melhores Práticas e Observações
1) Cuidado com o subsistema de I/O. Quando o CDC está habilitado, o Log pode
crescer entre...
Melhores Práticas e Observações
5) Se o arquivo de Log estiver cheio não será possível carregar as tabelas de CDC. Nesse
c...
Consumindo Dados do CDC
através do SSIS - Default
CDC Source – Task usada para captura de dados a partir
de uma tabela de ...
Consumindo Dados do CDC
através do SSIS - Default
Verifica o tipo de
carga
Marca o LSN inicial de
Carga
Executa carga inic...
Consumindo Dados do CDC
através do SSIS - Default
CDC Source
CDC Splitter
Destino Inseridas
Data Flow
Destino Atualizadas
...
Configurando ETL
Carga Padrão
Consumindo Dados do CDC
através do SSIS - Dynamic
Captura tabela do
ciclo
Habilita Trace Flag
610
Desabilita Trace
Flag 61...
Configurando ETL
Carga Dinâmica
Muito obrigado pela presença de todos!
Dúvidas?!...
Email - arthurjosemberg@gmail.com
Linkedin – Arthur Luz
Twitter - @arthurjosemberg
Skype - arthurjosemberg
Blog – arthurlu...
4_horas_microsoft
Próximos SlideShares
Carregando em…5
×

4_horas_microsoft

77 visualizações

Publicada em

0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
77
No SlideShare
0
A partir de incorporações
0
Número de incorporações
6
Ações
Compartilhamentos
0
Downloads
1
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

4_horas_microsoft

  1. 1. Capturando Dados Históricos com Change Data Capture Arthur Luz | MCSA & MCT em SQL Server arthurjosemberg@gmail.com http://arthurluz.wordpress.com
  2. 2. Patrocinadores
  3. 3. Quem sou eu? Sênior BI Analyst at Comp Line Services Solutions BI and Database Consultant and Instructor in One Way Solution and BI do Brasil Writer at SQL Magazine MCSA e MCT em SQL Server Microsoft Instructor at Hepta Novintec
  4. 4. Agenda Parte 1  Change Data Capture – Overview  Change Data Capture – Arquitetura  Criando o CDC no SQL Server  Entendendo as Funções [get_all_changes] e [get_net_changes]  Parâmetros Avançados – sys.sp_cdc_change_job  Melhores Práticas e Observações Parte 2  Consumindo os Dados do CDC com SSIS – Default  Consumindo os Dados do CDC com SSIS – Dynamic
  5. 5. Change Data Capture - Overview Feature responsável pela captura de dados de alteração em tabelas a partir do Log de maneira assíncrona. Permite o versionamento dos dados com range de duração definido pelo LSN de início da transação. Usa as mesmas estrutura de sistema que a replicação transacional. Por isso permite a captura não somente de tabelas específicas, mas também de colunas específicas.
  6. 6. Change Data Capture - Arquitetura Log Table 1 Table 2 Table 3 _CDC 1 _CDC 2 _CDC 3 OLTP OLAP
  7. 7. Criando o Change Data Capture
  8. 8. Parâmetros Avançados Na procedure de sistema sys.sp_cdc_change_job é possível editar os seguintes parâmetros de configuração do CDC para o Job de captura: @maxscans – número de ciclos de leitura do log entre cada pollinginterval; @maxtrans – número de transações lidas em cada ciclo; @continuous – habilita a execução continua do job; @pollinginterval – intervalo em segundos entre cada ciclo de leitura de log.
  9. 9. Parâmetros Avançados Na procedure de sistema sys.sp_cdc_change_job é possível editar os seguintes parâmetros de configuração do CDC para o Job de limpeza: @retention – quantidade de tempo em segundos de armazenamento dos dados históricos; @threshold – quantidade de registros deletados a cada interação do job;
  10. 10. Parâmetros Avançados Maxscans - Número de ciclos de leitura do Log Novo ciclo de leitura Maxstrans - Número de transações lidas por ciclo Pollinginterval – tempo em segundos entre cada ciclo de leitura Tempo
  11. 11. Parâmetros Avançados Padrão – @continuous = 1, @maxscans = 10, @maxtrans = 500 e @pollinginterval = 5 Modificado – @continuous = 1, @maxscans = 100, @maxtrans = 5000 e @pollinginterval = 5
  12. 12. Parâmetros Avançados
  13. 13. Configurações Avançadas
  14. 14. Melhores Práticas e Observações 1) Cuidado com o subsistema de I/O. Quando o CDC está habilitado, o Log pode crescer entre 200% e 300%. 3) Mesmo em recovery mode simple e bulk logged ou depois de um backup de log no mode full o log continua a crescer as tabelas de CDC não forem populadas. 4) Não é possível realizar Shrink ou backup de log para reduzí-lo antes de as tabelas de CDC estarem devidademente carregadas. 2) O CDC funciona em todos os recovery modes, porém, não será mais possível realizar operações minimamente logadas.
  15. 15. Melhores Práticas e Observações 5) Se o arquivo de Log estiver cheio não será possível carregar as tabelas de CDC. Nesse caso, a melhor prática é adicionar temporariamente um novo arquivo de Log. 6) Para manter o filegroup primary pequeno e ter uma clara distinção do que são dados do sistema e dados históricos é recomendando habilitar as tabelas de cdc em um file group diferente; 7) O CDC funciona em todos os recovery modes, porém, não será mais possível realizar operações minimamente logadas. 8) Uma boa rotina de Cleanup é recomendada.
  16. 16. Consumindo Dados do CDC através do SSIS - Default CDC Source – Task usada para captura de dados a partir de uma tabela de CDC; CDC Splitter – Task usada para realizar a separação dos registros Deletados, Inseridos e Atualizados. CDC Control Task – Task usada para controle de Range de LSN;
  17. 17. Consumindo Dados do CDC através do SSIS - Default Verifica o tipo de carga Marca o LSN inicial de Carga Executa carga inicial Captura o último LSN para carga incremental Executa carga incremental Marca o LSN final da carga inicial Salva o ultimo LSN para próxima carga CDC Control Task Control Flow
  18. 18. Consumindo Dados do CDC através do SSIS - Default CDC Source CDC Splitter Destino Inseridas Data Flow Destino Atualizadas Destino Deletadas
  19. 19. Configurando ETL Carga Padrão
  20. 20. Consumindo Dados do CDC através do SSIS - Dynamic Captura tabela do ciclo Habilita Trace Flag 610 Desabilita Trace Flag 610 Verifica o tipo de carga Captura as colunas a serem populadas Executa carga inicial Captura as colunas a serem populadas Executa carga incremental
  21. 21. Configurando ETL Carga Dinâmica
  22. 22. Muito obrigado pela presença de todos! Dúvidas?!...
  23. 23. Email - arthurjosemberg@gmail.com Linkedin – Arthur Luz Twitter - @arthurjosemberg Skype - arthurjosemberg Blog – arthurluz.wordpress.com

×