Skip to main content
Announcements
Qlik Connect 2024! Seize endless possibilities! LEARN MORE
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Processo de carga incremental, limpeza e reprocessamento

Olá!

Gostaria de uma ajuda para entender uma questão relacionada a carga incremental e possíveis reprocessamentos. Partindo do princípio que entendo o formato de trabalhar com datas de criação e modificação, o meu problema é que não tenho estas informações na origem. Então vamos as perguntas:

1. Como o Qlik trata a questão de limpar o que existe e carregar as novas informações, este controle é "nosso" no script, ou é lógico dentro do processo do QV mesmo?

2. Nesta situação, como conseguiria carregar apenas 1 dia no início do mês, por exemplo?

A massa de dados que tenho é muito grande, e não tenho controle de criação/modificações. Então o reprocesso será por exemplo de 15 dias pra trás, ou seja todos os dias rodamos os últimos 15 dias. Podendo ocorrer também um reprocessamento de 3 dias do início do mês.

A principio é isso, espero ter explicado de forma clara.

Obrigado.

André Cirilo

11 Replies
Anonymous
Not applicable
Author

Bom dia Jeferson Vargas,

Deixe-me ver ser consigo te ajudar:

Pelo que entendi sua carga é apenas incremental, para adicionar novos dados. Correto?

Eu faço da seguinte forma:

1 - Carrego uma tabela com o qvd para saber qual é a última data gravada:

E_R_TIMESTAMP:                       //   Carregar última data no qvd
LOAD Max(DT_ATUAL) AS TIMESTAMP_P01
FROM
P01_ENERGIA_RECUPERADA.qvd (
qvd)

GROUP BY;


2 - Depois armazeno o valor numa variável para que eu possa utilizar num comando Load ou Select:

LET V_TIMESTAMP_P01 = Peek('TIMESTAMP_P01',0);       // Armazenar o valor numa variável

DROP Table E_R_TIMESTAMP;                            // Apagar a tabela da memória


3 - Então adiciono o valor da variável na cláusula Where da consulta ao banco:

and h.his_datahora >= '$(V_TIMESTAMP_P01)'

4 - Finalmente adiciono uma condição na Where para evitar duplicidade nos dados:

Where Not Exists(“Campo de Chave primária da sua tabela”);  // Essa cláusula vai excluir os dados que foram atualizados desde a última carga

Observação importante: O processo de carga incremental só funciona corretamente com tabelas que possuam chave primária simples (com um campo apenas). Para tabelas com chaves primárias compostas você vai precisar gerar um campo único que pode ser por concatenação mesmo, isso afetará apenas o tamanho do qvd não o desempenho do processamento do QV.

Espero ter podido ajudar...

Felicidades...

Anonymous
Not applicable
Author

Só uma observação André Cirilo:

Cuidado com a função WildMatch: ela trata os dados como texto. Se você está usando campos de data, hora ou números com ela o resultado pode não ser o desejado.

Felicidades...