4_horas_microsoft

Post on 11-Apr-2017

67 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Capturando Dados Históricos com Change Data Capture

Arthur Luz | MCSA & MCT em SQL Serverarthurjosemberg@gmail.comhttp://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 - arthurjosemberg@gmail.com

Linkedin – Arthur Luz

Twitter - @arthurjosemberg

Skype - arthurjosemberg

Blog – arthurluz.wordpress.com

top related