Você está na página 1de 16

Carga Incremental

e
Desacoplamento de Cargas

Por Marcelo Piffer


Carga incremental
• Visando os evidentes benefícios da carga incremental foi desenvolvida a procedure
BI_CONFIG.dbo.prCalculoIntervaloCargaIncremental, que como o próprio nome diz,
retorna o intervalo, data e hora iniciais e finais do intervalo de tempo que deve ser
processado. Implementando assim um algoritmo de carga incremental dinâmica. Não
importando quanto tempo o processo de carga ficou sem “rodar”, sempre será calculado
todo o período desde a última carga.

• Para realização do calculo, está sendo aproveitada a estrutura já existente do log de


processamento de cargas. Esta armazena o histórico de processamento de cargas. Com
status de sucesso ou falha, e data e hora do processamento da carga e “id” identificador
do processo.
Estrutural atual de controle de processos
Carga incremental
• Especificação de chamada:
prCalculoIntervaloCargaIncremental <idCarga>,
<TipoIntervalo>,
@<varDataHoraInicial> output,
@<varDataHoraFinal> output

• O intervalo de tempo retornado, pode ser calculado, conforme parâmetro


informado <TipoIntervalo>, em dia (1) ou hora fechada (2).
Carga incremental
• Se o <TipoIntervalo> for em dia (1), retorna como data hora final, a zero hora
“00:00” do dia atual em que a procedure está sendo executada. E como data
hora inicial, a zero hora “00:00” do último dia em que o processo de carga foi
executado. Ou seja, retorna o período entre o dia do último processamento
até ontem.

• Se o <TipoIntervalo> for em hora (2), retorna como data hora final, a hora atual
e zero minutos “HH:00” do dia atual em que a procedure está sendo
executada. E como data hora inicial, a última hora e zero minutos “HH:00” do
último dia e hora em que o processo de carga foi executado. Ou seja, retorna o
período entre o dia e hora do último processamento até a data e hora atuais.
Carga incremental – Como utilizar
• Crie duas variáveis do tipo datetime para armazenar o retorno da procedure

• Crie um objeto “Tarefa executar SQL”, especifique a conexão, tipo OLE DB, para o banco
BI_Config no server “reports.interfile.com.br”.

• Especifique a propriedade SQLStatement como o exemplo:


prCalculoIntervaloCargaIncremental ?, 2, ? output, ? Output

• Configure os parâmetros do objeto “Tarefa executar SQL” criado, associando corretamente as


duas varáveis criadas e outra que contenha o “id” do processamento.

• Para facilitar pode-se copiar o objeto “Calcula intervalo tempo carga incremental” criado no
“STG_FDI_VEICULOS_LEVES_DPS_STATS_VEICULOSLEVES.DTSX” da solution
“FDI_VEICULOS_LEVES_NOVA_ESTATISTICA”
Carga incremental – Exemplo parâmetros
Carga incremental – Exemplo parâmetros
Carga incremental – Exemplo parâmetros
Nova Estrutura - Desacoplamento
Visando eliminar os problemas descritos a seguir, foi criada uma nova estrutura de solução de
projetos de cargas desacoplada

• Temerária obrigatoriedade de subida conjunta em produção de todos os nossos pacotes (DTSX),


mesmo quando alteramos apenas um pacote DTSX.

• Enorme emaranhado de conexões, com repetições e conexões não mais utilizadas.

• Apontamentos de erros de conexão difícil de se localizar

• Necessidade de se trabalhar offline devido ao grande número de conexões em um único projeto


Nova Estrutura - Desacoplamento

• Demora excessiva ao abrir um pacote DTSX, pois todas as conexões, de todos os


pacotes do projeto são validadas, se estiver em modo online.

• Demora excessiva na compilação, pois todos os pacotes são compilados

• Emaranhado de pacotes sem relação entre si em um único projeto


Nova Estrutura - Desacoplamento
Diretrizes:

• A nova estrutura criada, parte do principio que para subida individual de um


pacote dtsx, o mesmo deve estar sozinho em um único projeto

• Porém, pacotes com dependência técnica devem ficar dentro do mesmo projeto.
Por exemplo pacote dtsx Chamador e seus pacotes dtsx chamados.

• Por questão de organização, os projetos e seus respectivos pacotes, desde que


pertencentes a um mesmo contexto, devem estar dentro de uma mesma solução.
Nova Estrutura - Desacoplamento
Case:
Nova Estrutura - Desacoplamento
Case:
Nova Estrutura - Desacoplamento
Recomendações:

• Aproveitar qualquer necessidade de alteração em pacotes acoplados e realizar o


desacoplamento.

• Sempre optar por cargas incrementais

• Remover todos os erros e avisos antes de publicar em produção, mesmo que


aparentemente o pacote esteja funcionado bem.
Nova Estrutura - Desacoplamento

>>> The End <<<

Você também pode gostar