Download - 4_horas_microsoft
![Page 1: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/1.jpg)
Capturando Dados Históricos com Change Data Capture
Arthur Luz | MCSA & MCT em SQL [email protected]://arthurluz.wordpress.com
![Page 2: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/2.jpg)
Patrocinadores
![Page 3: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/3.jpg)
![Page 4: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/4.jpg)
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
![Page 5: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/5.jpg)
AgendaParte 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çõesParte 2 Consumindo os Dados do CDC com SSIS – Default Consumindo os Dados do CDC com SSIS – Dynamic
![Page 6: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/6.jpg)
Change Data Capture - OverviewFeature 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.
![Page 7: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/7.jpg)
Change Data Capture - Arquitetura
Log
Table 1 Table 2 Table 3
_CDC 1
_CDC 2
_CDC 3
OLTP
OLAP
![Page 8: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/8.jpg)
Criando o Change Data Capture
![Page 9: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/9.jpg)
Parâmetros AvançadosNa 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.
![Page 10: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/10.jpg)
Parâmetros AvançadosNa 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;
![Page 11: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/11.jpg)
Parâmetros AvançadosMaxscans - 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
![Page 12: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/12.jpg)
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
![Page 13: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/13.jpg)
Parâmetros Avançados
![Page 14: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/14.jpg)
Configurações
Avançadas
![Page 15: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/15.jpg)
Melhores Práticas e Observações1) 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.
![Page 16: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/16.jpg)
Melhores Práticas e Observações5) 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.
![Page 17: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/17.jpg)
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;
![Page 18: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/18.jpg)
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
![Page 19: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/19.jpg)
Consumindo Dados do CDC através do SSIS - Default
CDC Source
CDC Splitter
Destino Inseridas
Data Flow
Destino Atualizadas
Destino Deletadas
![Page 20: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/20.jpg)
Configurando ETL
Carga Padrão
![Page 21: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/21.jpg)
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
![Page 22: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/22.jpg)
Configurando ETL
Carga Dinâmica
![Page 23: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/23.jpg)
Muito obrigado pela presença de todos!
Dúvidas?!...
![Page 24: 4_horas_microsoft](https://reader036.vdocument.in/reader036/viewer/2022062523/58eca21a1a28ab6b418b456f/html5/thumbnails/24.jpg)
Email - [email protected]
Linkedin – Arthur Luz
Twitter - @arthurjosemberg
Skype - arthurjosemberg
Blog – arthurluz.wordpress.com