Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Want to see what's currently in public preview? We've pulled it all together in one place. Check it out here
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Qvd Incremental

Prezado(a)s Boa tarde.

Tenho um projeto de que apura as metas X realizado dos analistas de negocios de minha empresa.

Hoje meu aplicativo ele faz a projecao do mes anterior e o mes corrente.

Primeiramente devido ao tempo de carga que deve ser o mais rapido possivel.

Porem gostaria de ir acumulando em um qvd "extra" digamos as cargas anteriores e subir no Qvw estas informacoes.

Imagino da seguinte maneira, durante a carga diaria, eu so processe o realizado do mes corrente.

Ai no ultimo dia do mes, ele pegue os dados deste qvd principal e jogue para outro qvd.

Dessa forma sempre acumulando..

Alguem ja precisou trabalhar desta maneira ?

5 Replies
Not applicable
Author

Pq vc não gera um QVD por mês ??? Se vc gerar 1 QVD por mês vc teria esse as informações acumuladas e a informação do mês atual.

Not applicable
Author

Eu faço assim

Gerar QVD Mensal

Declaro essa variavel

Let sAnoMesProc = mid(AddMonths(today(),-1),7,4)&mid(AddMonths(today(),-1),4,2);

E na Query e para gerar o qvd

WHERE date_format(DT_HOR_INI, '%Y%m') = '$(sAnoMesProc)';

STORE FATO_APONTAMENTO INTO [..\QVD\FATO_APONTAMENTO_$(sAnoMesProc).QVD];

Após isso para carregar o arquivo eu faço um loop

SUB DoDir (Root)

          [Diretorios]:

          Load

          '$(Root)' as path autogenerate 1;

               [FATO]:

                LOAD

               CAMPOS

                              FROM

                              [..\QVD\FATO_*.QVD]

                              (qvd);

END SUB

FOR each Dir in dirlist ('..\QVD')

                      CALL DoDir(Dir)

NEXT Dir

Gerando as tabelas fatos atráves de Sub

Comando Root é utilizado para criar o caminho de origem do arquivo. Após isso ele irá verificar se a Variavel Dir está no caminho C:\ETL\QVD

Se estiver ele irá chamar a função Sub DoDir que irá carregar todos os arquivos  que estão nesse caminho

[..\..\..\..\ETL\QVD\FATO_*.QVD]

(OBS: o sinal de '*' é usado para representar qualquer coisa que estiver escrito depois da palavra FATO_)

Not applicable
Author

Bom dia!

Eu tive que trabalhar com um cenário parecido com este onde eu teria que armazenar a classificação do Cliente em um determinado período. As informações eram extraídas do banco e armazenavam a informação semanal do cliente, para ter um curva de classificação de acordo com o cenário dos últimos 6 meses. Eu geralmente utilizo isso quando preciso armazenar uma informação onde o cenário pode modificar constantemente. Por exemplo: um cliente B na semana passada, pode ser, nesta semana, um cliente A.

Att.

Rebeca Gums

Anonymous
Not applicable
Author

QVDs incrementais devem ser utilizados só em ultimo caso.

Raramente os utilizo e acho-os pesados.

Como exemplo direi que 12 QVD individuais de 100 Mb não correspondem a

um com 12x100mb.

Simplemente porque a geração de QVD's regista os dados por coluna e não grava os dados

em duplicado.

Estou a fazer um documento sobre esta matéria - Geração Dinamica de QVD's fora do Qlik.

Abr

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa tarde.

Eu por exemplo uso a rotina abaixo em uma tabela que tem uma chave sequencial (CHANGENR).

Assim, eu verifico se existe um .qvd.  Se existir, eu busco o ultimo numero (CHANGENR) e crio uma variável com o where maior que este numero.  Caso contrario, a variável fica branca.

Depois de ler, verifico se existir o .qvd eu concateno nela e depois dou um store, criando um .qvd com os dados anteriores (congelados ) mais os novos.

2014-12-14 17_42_04-.png

Se você mudar esta rotina, podes fazer por data e neste caso verificando o ultimo dia do mês para dar o concatenate no congelado.

Para efeito de informação, esta tabela CDPOS do SAP, registra as alterações (LOG itens) e contem milhões de linhas. Sem o incremental levava 30 minutos lendo esta tabela.  Com a rotina acima, este tempo caiu para 15 segundos, pois somente lé os registros de um numero para frente e neste caso o banco de dados (DB2) resolve de forma rápida e entrega somente os últimos registros.

Att,

Alessandro Furtado

furtado@farolbi.com.br