Skip to main content
Announcements
Live today at 11 AM ET. Get your questions about Qlik Connect answered, or just listen in. SIGN UP NOW
cancel
Showing results for 
Search instead for 
Did you mean: 
JonathanMoretti
Enthusiast
Enthusiast

Otimização de Performance para Grandes Volumes de Dados

Olá pessoal!

 

Estou desenvolvendo uma aplicação em Qlik Sense (versão Enterprise) com um grande volume de dados. O processo de ETL é baseado em arquivos CSV, cujos são convertidos em QVD, transformados e carregados na aplicação principal.

 

O modelo de dados atual é o seguinte:

 

 

Neste modelo, as tabelas possuem os seguintes volumes de dados:

  • Beneficiários_ANS: 809.109.970 linhas;
  • Demonstrativos_Contábeis: 5.361.706 linhas;
  • Municípios: 293 linhas;
  • Municípios_Área: 297 linhas

 

Por conta da transformação em QVD, o processo de extração e transformação é relativamente rápido. Todavia, o carregamento das visualizações (principalmente quando há utilização de filtros) está muito lento.

 

Na aplicação principal há apenas 4 sheets, contendo gráficos de barras, pivot tables, painéis de filtros e um mapa (comum, sem GeoAnalytics). As medidas são compostas por itens mestres que utilizam set analysis simples para montar os cálculos.

 

Desta forma, partindo do pressuposto que todos os campos são importantes para análise (pois os desnecessários foram excluídos na extração), há alguma boa prática ou até mesmo ferramenta auxiliar que posso utilizar para otimizar a performance deste grande volume de dados?

 

Obrigado!

Abração;

1 Solution

Accepted Solutions
diogoduarte
Partner - Contributor III
Partner - Contributor III

JonathanMoretti, sugiro que utilize a aplicação que o Afurtado indicou, com certeza será uma boa ajuda.

Você disse que utiliza set analysis simples, mas vale, com base na análise do Doc Analyzer e quando possível, levar set analysis complexos para serem calculados no script, como o Ezir mencionou.

Sugiro ainda que prepare sua massa de dados para utilizar no set analysis sempre campos numéricos, evitando ao máximo textos, te entregará uma performance muito melhor. Evite dentro do possível a utilização de "IF" na criação das medidas. O "IF" é calculado linha a linha de cada registro e com essa quantidade de registros que você tem, se seus filtros forem muito abrangentes, você terá muito cálculo.

Outro ponto que cabe é você analisar o que é gargalo no seu servidor quando enfrenta as lentidões, se é processamento ou memória.

Recentemente realizamos um projeto com uma massa de dados bastante robusta também, com mais de 1bi de linhas, e todos esses pontos foram bastante cruciais para podermos entregar mais performance ao cliente.

View solution in original post

5 Replies
Ezir
Creator II
Creator II

Olá @JonathanMoretti,

Quando puder, veja este material  http://www.qlikisrael-support.com/Knowledgebase/Article/GetAttachment/164/2093991.

 

Em seu caso, eu sugeriria reduzir, na medida do possível, o uso de set analysis e criar/transformar os campos no script de carga para aumentar a performance.

 

Bom trabalho!

 

Ezir

 

afurtado
Partner Ambassador/MVP
Partner Ambassador/MVP

Uma boa é analisar o app com o documento abaixo

https://qlikviewcookbook.com/2019/02/qlik-sense-document-analyzer-v1-5/

furtado@farolbi.com.br
diogoduarte
Partner - Contributor III
Partner - Contributor III

JonathanMoretti, sugiro que utilize a aplicação que o Afurtado indicou, com certeza será uma boa ajuda.

Você disse que utiliza set analysis simples, mas vale, com base na análise do Doc Analyzer e quando possível, levar set analysis complexos para serem calculados no script, como o Ezir mencionou.

Sugiro ainda que prepare sua massa de dados para utilizar no set analysis sempre campos numéricos, evitando ao máximo textos, te entregará uma performance muito melhor. Evite dentro do possível a utilização de "IF" na criação das medidas. O "IF" é calculado linha a linha de cada registro e com essa quantidade de registros que você tem, se seus filtros forem muito abrangentes, você terá muito cálculo.

Outro ponto que cabe é você analisar o que é gargalo no seu servidor quando enfrenta as lentidões, se é processamento ou memória.

Recentemente realizamos um projeto com uma massa de dados bastante robusta também, com mais de 1bi de linhas, e todos esses pontos foram bastante cruciais para podermos entregar mais performance ao cliente.

pablolabbe
Luminary Alumni
Luminary Alumni

Acho que antes de falar de otimização de performance da app é preciso ter uma idéia de percepção de performance quando você navega nela fazendo seleções e navegando entre as pastas.

 - Quanto tempo leva para os gráficos serem gerados na abertura da pasta ?

 - Qual a complexidade das expressões , apesar do set analysis?

 -  Tem expressões com IF, AGGR ?

 - Tem dimensão calculada ?

 - Quanto a infra, quanto de memória e CPUs tem o servidor Qlik Sense para suportar essa app ?

 - Tem ideia de quantos usuarios devem acessar essa app ? e quantos simultaneamente ?

PL

JonathanMoretti
Enthusiast
Enthusiast
Author

Ótimo, Diogo!

 

Segui as suas dicas e dos demais colegas:

 

  • Utilizei o Doc Analyzer para entender os gargalos da aplicação, fato que também propiciou alguns ajustes no modelo de dados;
  • Transferi os campos calculados com set analysis para o script;
  • Analisamos e aumentamos a capacidade de memória do servidor.

 

Com estes poucos passos, a performance de carregamento e usabilidade do app melhorou significativamente.

 

Portanto, muito obrigado à você e aos demais amigos pelos esclarecimentos e sugestões.

 

Grande Abraço;