Skip to main content
Announcements
Have questions about Qlik Connect? Join us live on April 10th, at 11 AM ET: SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
joffremota
Partner - Contributor III
Partner - Contributor III

Trabalhar com MUITAS informações

Bom dia a todos!

Estou com uma situação meio complicada. Um dos clientes mais antigos está tendo problemas de performance por causa da grande quantidade de dados que estão sendo carregados no QlikView.

Para se ter ideia, um dos arquivos QVDs da extração de dados (Extraction) está ficando com aproximadamente 8 GB. Após a transformação (Transformation), há casos de QVDs com mais de 20 GB e isso reflete diretamente no arquivo de apresentação (Load) que está ficando com cerca de 300 MB. Um simples filtro demora a ser efetivado e o cliente não está gostando muito disso.

Sugeri que diminuíssem o intervalo de informações lidas do banco (atualmente estão lendo dados de janeiro de 2008 até novembro de 2014) mas foram irredutíveis e afirmaram que precisa continuar como está.

Gostaria de saber se alguém tem alguma sugestão de como melhorar a performance tanto da carga (Extraction e Transformation) quanto da apresentação (Load), além é claro de um Upgrade na máquina que hospeda o QlikView Server (atualmente eles têm um Intel Xeon E5-2620 com 16 GB de RAM).

Obrigado.

Atenciosamente,

Joffre Mota

Labels (2)
25 Replies
Not applicable

Bom dia Joffre, primeiro de tudo, pede o up de memória para 32gb e um up para processadores, hoje são quantos?

Segundo, na tua aplicação front-end, tu usa a tabela link?

Grato pela atenção.

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Boa noite.

Alem do up na maquina sugerido pelo Paulo Dantas também acho interessante analisar a modelagem (big facto, star,snowflake) e algumas questões ligadas a campos chaves e datas.  Campos chaves, se forem por exemplo

Campo1 & Campo2 & Campo3 as PK_Campochave usaram mais memoria do que com o autonumber

autonumber(Campo1 & Campo2 & Campo2)  as PK_Campochave

pois o primeiro ira guardar 2 informacoes (simbolo e campo distinto) e o segundo somente o simbolo que reduzira o consumo de ram e sobre as datas, mesmo que esteja sendo visto como 10/11/2014 elas podem estar em formato datetime e com isto perde-se mais do que o dobro do espaço do que como date (que na realidade guarda como numérico mais sem as decimais que seriam do time).  Sobre a modelagem, dependendo de como esta exige do Qlik mais join para executar as expressões e com isto mais tempo.

Outra questão, se usa muito aggr ou macro. O aggr cria uma tabela virtual para executar a expressão e as macros (modelos antigos antes das triggers) eram usadas para algumas seleções e outras execuções (cheguei a ver modelos com quase 1200 linhas de macros fazendo todo o que hoje fazemos facilmente com as triggers....). A macro limpa o cache. Com isto prejudica na performance, fora outros pontos.

Uso muito condicional nos objetos para exigir alguma seleção em modelos grandes. Com isto diminuo o tempo do calculo de alguns objetos quando o usuário limpa todas as seleções...

Outra coisa são os campos no modelo que não são usados. As vezes na carga levasse campos que posteriormente não são usados no script e no UI assim, consome ram.

Claro que estes pontos são comentários visto que não conheço o seu modelo.

Segue um bom documento sobre isto. Tem algumas coisas a fazer na maquina também (NUMA por exemplo).

Att,

Alessandro Furtado

furtado@farolbi.com.br
joffremota
Partner - Contributor III
Partner - Contributor III
Author

Bom dia, pessoal, e muito obrigado pelas suas considerações, Paulo Dantas e ALESSANDRO FURTADO.

O modelo é o "star". A tabela fato, no caso é a "Pessoa".

Já vi modelos muito piores que não oneram tanto o servidor (vide print abaixo).

Modelo_MT.jpg

Mas será que o problema não pode ser apenas a grande quantidade de dados sendo trabalhados?

Atenciosamente,

Joffre Mota

nicolett_yuri

Na verdade seu modelo é SnowFlake, mas talvez seu problema não seja o modelo de dados, acredito que você precisa solicitar que o hardware do servidor seja melhorado em muito.

Verifique as expressões dos gráficos e dimensões, não use dimensões calculadas e se as expressões podem ser simplificadas adiantando os cálculos em script.

Outro problema que vejo é o tamanho de seus qvds, eles poderiam ser incrementais? quebrando um arquivo por ano ou por mêsano? Isso pode ajudar no tempo de recargar da sua aplicação.

Not applicable

De nada Joffre.


Conforme o Alessandro falou:

"Uso muito condicional nos objetos para exigir alguma seleção em modelos grandes. Com isto diminuo o tempo do calculo de alguns objetos quando o usuário limpa todas as seleções..."


Você pode colocar condicionais para evitar calcular com a aplicação sem seleção.


Tipo, você pode solicitar selecionar algo no filtro, por exemplo, ano e mês, os mais indicados. Pelo que vi na sua tabela calendário.


Grato pela atenção.

joffremota
Partner - Contributor III
Partner - Contributor III
Author

Obrigado, nicolett.yuri e paulodantas13.

Yuri, nesse momento estou tentando aplicar os conceitos de recarga incremental para tentar melhorar a performance da recarga. Acredito que seja a melhor solução, além, é claro, de um upgrade de hardware.

Paulo, desculpe, mas não entendi muito bem o que quis dizer com "colocar condicionais para evitar calcular com a aplicação sem seleção". Deve ser a hora!!

Atenciosamente,

Joffre Mota

nicolett_yuri

Muito bom!

Joffre, essa condição de cálculo ajuda bastante também em gráficos pesados, você pode seta-la na aba Principal de cada gráfico na sessão "Condição de Calculo" nela você pode fazer esse gráfico calcular, por exemplo, quando um filtro de ano for feito ou através de outras combinações.

Anonymous
Not applicable

O upgrade de HW poderá resolver o problema ou simplesmente adiar...

Têm problema  a gerar o QVD (ou load's iniciais) ou a utiliza o QVW?

joffremota
Partner - Contributor III
Partner - Contributor III
Author

Sim, bestofwest.

Tanto para gerar um dos QVDs quanto para utilizar o QVW.

Em certo ponto da transformação, o uso de memória atinge o limite e, quando o processamento não trava, demora horas e o servidor fica inutilizável nesse período.

O QVW, por sua vez, está ficando muito grande, tornando a experiência um tanto desagradável.

A parte da recarga, mais especificamente da transformação, acredito que resolverei com a recarga incremental em que estou trabalhando. A parte do QVW ainda é uma incógnita.

Atenciosamente,

Joffre Mota