Melhores Práticas – QVD Optimized

Pessoal, estarei postando diversos passos de melhores práticas em QlikView e gostaria que todos participassem. Acho que vai ficar bem legal!

Vamos lá!

Cargas QVD otimizadas são até 100 vezes mais rápidas do que as não otimizadas. Isso faz muita diferença no tempo de recarga e ainda mais diferença para o desempenho do seu servidor.

A razão para a grande diferença está relacionada ao algoritmo de compressão que o QlikView usa quando armazenamos dados para análise em memória. Arquivos QVD são armazenados em um formato que espelha a compressão utilizada na memória (que é por isso que os arquivos QVD são tão pequenas no disco) e durante uma carga otimizada os dados são enviados diretamente do disco para a memória no mesmo formato comprimido. Quando uma carga não-otimizada é realizada isso não acontece.

Então porque não fazer todas as cargas do QVD otimizado? O simples fato é que algumas operações requerem que os dados sejam descompactados, modificados e em seguida re-embalados. Apenas uma alteração nos dados fará com que uma carga não seja otimizada.

Alguns exemplos que farão com que a carga não seja otimizada:

– Adição de novos campos para a tabela

– Derivando novos valores a partir de um campo na QVD

– Recuperando um campo duas vezes

– Mais condições WHERE

– JOIN em uma tabela de memória

– Carregando dados em uma tabela de mapeamento (mapping load)

Alguns exemplos que farão com que a carga seja otimizada:

– Renomear campos

– LOAD DISTINCT

– Omitir Campos (Omit)

– Where Exists Simples

Quando criamos QVDs incrementais com quebra por mês, ou seja, um qvd por mês (Faturamento_201401.qvd, Faturamento_201402.qvd), na maioria das vezes, quando o cliente deseja restringir a quantidade de meses na aplicação, criamos uma variável e restringimos através de um WHERE MESANO >= $(v_MesAno_Limite), mas a dica aqui é utilizar o EXISTS Simples, ou seja, com um campo só. Vamos para um exemplo:

Quero exibir somente os dados de 2013 e 2014, desta forma realizamos a seguinte lógica:

1) Criar uma tabela (INLINE) com o mesmo nome da coluna da tabela que sofrerá redução dos anos e colocar os valores 2013 e 2014.

OBS: Isso vale para MêsAno, Datas, Produtos ou combinações de colunas.

Restrição:

LOAD * INLINE [

Faturamento.ANO

2014

2013

];

2) Quando realizar a leitura da tabela em que deseja fazer a restrição dos valores, basta realizar a leitura normalmente e adicionar um WHERE Exists para retornar somente os dados de 2014 e 2013.

Faturamento:

LOAD

    Faturamento.ANO,

    Faturamento.MES,

    Faturamento.DATA,

    Faturamento.EMPRESA,

    Faturamento.VALOR

FROM Faturamento_*.qvd (qvd)

WHERE

EXISTS(Faturamento.ANO);

DROP TABLE Restrição;

Repare que a leitura dos qvds manterá o QVD Optimized!

Fontes:

Manual QlikView

Optimized QVD Loads in Qlikview

Qlikview Notes: QVD Questions and Answers

Anúncios

3 pensamentos sobre “Melhores Práticas – QVD Optimized

  1. Pingback: Melhores Práticas – Formatação de campos sem perder a leitura otimizada | Blog do Nicolett

  2. Pingback: Melhores Práticas – Concatenar tabelas sem perder a leitura otimizada | Blog do Nicolett

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s