4_horas_microsoft
TRANSCRIPT
Capturando Dados Históricos com Change Data Capture
Arthur Luz | MCSA & MCT em SQL [email protected]://arthurluz.wordpress.com
Patrocinadores
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
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
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.
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ç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.
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;
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
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
Parâmetros Avançados
Configurações
Avançadas
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.
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.
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;
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
Consumindo Dados do CDC através do SSIS - Default
CDC Source
CDC Splitter
Destino Inseridas
Data Flow
Destino Atualizadas
Destino Deletadas
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 610
Verifica o tipo de carga
Captura as colunas a serem
populadas
Executa carga inicial
Captura as colunas a serem
populadas
Executa carga incremental
Configurando ETL
Carga Dinâmica
Muito obrigado pela presença de todos!
Dúvidas?!...
Email - [email protected]
Linkedin – Arthur Luz
Twitter - @arthurjosemberg
Skype - arthurjosemberg
Blog – arthurluz.wordpress.com