Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Pessoal, primeiramente bom dia!
Hoje tenho um projeto que demora cerca de 5 horas para Recarregar. Um dos grandes motivos dessa demora é os dados passados. Nós carregamos dados desde 2014.
Eu não sou avançado, más penso que deveria existir alguma maneira para esses dados como são passados, simplesmente ficarem congelados, ao invés de toda execução carregar novamente tudo.
Alguém com experiência poderia me informar se existe essa possibilidade, ou a ferramenta sempre irá recarregar todos dados e tratar?
Obrigado desde já, fiquem com Deus.
Bom dia, vc pode estar separando a sua carga em varios arquivos QVDs, que são os arquivos de dados do Qlik, aqui eu separo por ano, no momento do select.
no inicio vc tem que dar um nome para o arquivo, ex:
Carga_2018:
SELECT.....
where data between '01/01/2018' and '12/31/2018';
store Carga_2018 into Carga_2018.qvd;
DROP Table Carga_2018;
no load vc vai varser um load para cada arquivo criado, juntando eles com o comando Concatenate, ex:
LOAD ........
FROM
$(vPasta)\Carga_2018.qvd
(qvd);
Concatenate
LOAD ........
FROM
$(vPasta)\Carga_2019.qvd
Bom dia,
não sei dizer com certeza se existe essa funcionalidade, mas acredito que não.
você poderia sumarizar a carga do QVD TOTAL, para seu QVW PROJETO não ter tanto processamento.
ex:
Quero saber o total de vendas pra um cliente, em vez de carregar venda a venda, faço uma carga agrupando por cliente.
no momento em que é gerado o QVD total, faça uma resident da propria tabela e agrupe por cliente.
INFORMACAO_TOTAL:
LOAD
Cliente,
Data,
Vendas
FROM xxxxx;
INFORMACAO_AGRUPADA:
LOAD
Cliente,
SUM(Vendas) AS VENDAS
RESIDENT INFORMACAO_TOTAL
GROUP BY Clientes;
Entendi,
Não sei se existiria uma opção melhor, mas no momento acho que é o que melhor atende.
nesse cenário você poderia aplicar a sugestão do Ruzivao1980, separar os QVD brutos por ano e ;
na opção 1 carregar o ultimo ano completo;
na opção 2 carregar todos os anos.
Mas antes, deixa eu te perguntar outra coisa, os calculos/tratativas no seu QVW PROJETO são todas analises do projeto? ou tem tratativas de dados? pois se há tratativas, você poderia migrar as tratativas pra QVW TOTAL e atualizar conforme as cargas incrementais.
Assim sua carga do projeto se limita apenas ao carregamento otimizado.
* Caso sejam cálculos voltados especificamento pro projeto, desconsidere.
Você pode criar um looping para carregar as tabelas que precisa.
seus qvd's salvos na pasta:
projeto 2015.qvd
projeto 2016.qvd
projeto 2017.qvd
projeto 2018.qvd
PROJETO ANTIGO 2014 - 2017
Crie uma variável na carga para determinar o ano atual :
vAno='2018'
--------------------------------------------------------------------------------------
FOR
AnoCarga = '2014' to $(vAno)-1
LOAD *
FROM
[Projeto $(AnoCarga).qvd]
(qvd);
NEXT
--------------------------------------------------------------------------------------
PROJETO NOVO 2017-2018 (12 MESES)
Se você pretende carregar determinado período de meses em vez de um ano fechado, experimente:
Criar uma variável na carga para determinar a data inicial :
vDataIni = Addmonths(Monthstart(today()),-12) //vai calcular 12 meses antes de hoje
--------------------------------------------------------------------------------------
FOR
AnoCarga = $(vAno)-1 to $(vAno)
LOAD *
FROM
[Projeto $(AnoCarga).qvd]
(qvd)
WHERE Data >= $(vDataIni);
NEXT
--------------------------------------------------------------------------------------
Experimente assim.
Entendi,
Então é só mudar assim:
--------------------------------------------------------------------------------
PROJETO ANTIGO 2014 - Atual (aqui vai carregar todos os qvd's da pasta):
---------------------------------------------------------------------------------
LOAD *
FROM
[Projeto *.qvd]
(qvd);
--------------------------------------------------------------------------------
PROJETO NOVO 2017-2018 (24 MESES,)
vDataIni = Addmonths(Monthstart(today()),-24) //vai calcular 24 meses antes de hoje
vAnoIni = Year($(vDataIni)) // vai calcular o ano a 24 meses atrás.
* você pode alterar '-24' para a quantidade de meses de sua preferencia.
--------------------------------------------------------------------------------
FOR
AnoCarga = $(vAnoIni) to year(Today()) // Aqui define os anos que o QVW vai carregar, no caso 2017 e 2018.
LOAD *
FROM
[Projeto $(AnoCarga).qvd]
(qvd)
WHERE Data >= $(vDataIni); // aqui define a data inicial que o arquivo vai carregar dos QVD carregados, no caso 01/01/2017
NEXT
--------------------------------------------------------------------------------
o Data >= $(vDataIni) serve para limitar a carga de dados dentro de um ano,
o vAnoIni = Year($(vDataIni)) serve pra identificar o ano inicial que você precisa.
exemplo: estamos em 06/2019 então se você quer 24 meses, você precisa carregar de 06/2017 até 06/2019