Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Olá pessoal!
Inicialmente agradeço a todos, pois a partir do Manual de referência e outros post aqui da comunidade, estou alterando as cargas do Qlikview para incremental, algumas já estão funcionando. No entanto, estou com um problema que ainda não achei solução. Conto com a expertise e experiência dos amigos do grupo para isto.
Em resumo, as cargas funcionaram quando a chave primária é apenas um campo, e meu problema está quando a chave é composta por quatro campos conforme script de exemplo.
Processo: leitura dos registros dos último quatro dias, seguindo os campos de inclusão ou alteração na base. Na sequência, concateno com o QVD já existente que possui 20GB e por fim, aplico o INNER JOIN para retirar registros excluídos.
Após todo o processo, o novo QVD ficou com apenas 350MB, o que está errado visto que mantenho os 134 milhões de registros na tabela. Em anexo incluí a imagem que mostra a leitura da tabela completa.
Obrigado pela atenção.
Script:
LET UltimaExec = date(ReloadTime() -4,'YYYY-MM-DD');
//1 -CARREGA DADOS DOS ÚLTIMOS DIAS
BN_PROD_GUIEVE_INC:
SQL
SELECT ID_PROD_GUIEVE ||'-'|| TIPO ||'-'|| CHAVE_AUX ||'-'|| ID_PROD_GUI AS CHAVE,
GEVE.*
FROM BN_PROD_GUIEVE GEVE
WHERE (to_char(DW_INC,'YYYY-MM-DD') >= '$(UltimaExec)'
OR to_char(DW_ALT,'YYYY-MM-DD') >= '$(UltimaExec)')
;
Concatenate
//2 -BASE JA CARREGADA:
LOAD *
FROM $(vQvds)\BN_PROD_GUIEVE_INC.QVD (qvd)
WHERE NOT EXISTS(CHAVE, ID_PROD_GUIEVE &'-'& TIPO &'-'& CHAVE_AUX &'-'& ID_PROD_GUI)
;
INNER JOIN
//3 -RETIRA REGISTROS EXCLUIDOS DA BASE:
SQL
SELECT ID_PROD_GUIEVE ||'-'|| TIPO ||'-'|| CHAVE_AUX ||'-'|| ID_PROD_GUI AS CHAVE
FROM DWUNIMED."BN_PROD_GUIEVE"
;
STORE BN_PROD_GUIEVE_INC INTO $(vQvds)\BN_PROD_GUIEVE_INC.QVD;
Muito Obrigado.
Tiago
Olá pessoal,
Desculpa a demora, retornei pois vi que não havia finalizado.
Obrigado a todas as dicas.
Abraços.