Comment rendre vos chargements et applications Qlik Sense plus performants en un minimum d’effort ?

31/05/2021

Comme vous l’avez peut-être entendu, 2 consultants en Business Intelligence ont rejoint notre équipe début mai. Parfait timing en parallèle de leurs formations et sessions de coaching Qlik pour assister aux webinar du Qlik World 2021….  Et vous partager quelques sujets intéressants !

Parmi les sujets suivis avec attention, nous avons plus particulièrement relevé celui-ci, qui a largement inspiré le contenu de cet article.  : « Hacking Qlik Application performance for more and faster data »

Nous avons ainsi rassemblé un ensemble de tips qui vous permettront d’améliorer la performance de vos applications Qlik Sense et le chargement de vos données. Les solutions proposées sont faciles à mettre en place lors du développement d’une app, ou même lors de modifications d’une app existante.

Dans cet article, nous nous concentrons sur les meilleures pratiques au niveau du :

 

Attention, nous insistons sur le fait qu’il s’agit de tips et qu’en fonction des cas, d’autres solutions peuvent être plus performantes.

 

Pourquoi s’inquiéter de la performance ? 

 

Améliorer la performance de vos apps permettra aux différents utilisateurs de vos solutions Qlik de bénéficier d’une meilleure expérience à tous les niveaux. Voici comment la performance peut affecter les différents types d’utilisateurs :

 

Pour savoir quelle application prend trop de temps à être rechargée, vous pouvez notamment vous aider des monitoring apps.

 

Data load editor monitoring apps

 

I. Améliorer la performance de vos apps et du chargement des données au niveau du Data Load Editor

 

1)    Limiter les données chargées

 

Moins de données à charger améliore logiquement la performance. Voici trois idées qui permettent de limiter la quantité de données chargées :

 

2)     Optimiser le chargement des QVD

Pour des raisons techniques que nous ne détaillerons pas ici, ne pas modifier les données lors du chargement d’un QVD rend le chargement des données très performant.

Une action que l’on peut réaliser sur le chargement d’un QVD sans détériorer la performance est l’utilisation d’un « where exists() ».

Pour rappel le «where exists()» permet de charger seulement des données dont la valeur d’une des colonnes a déjà été importée dans une autre table. Par exemple, si j’ai une table de produits et une table de factures, grâce au «where exists()», je peux loader les données de produit pour lesquels une facture existe. J’importe donc seulement les produits qui sont utilisés dans l’app et non tous les produits de la base de données source.

Point d’attention : le «where exists()»  n’est pas optimal dans tous les cas et dépend du case. Pour les grandes volumétries, privilégiez “left keep”.

Il est possible de voir si un QVD est optimisé dans le Data load progress :

 

Data load editor Data load progress

 

Voici quelques exemples de loads de QVD non optimisés (en rose) rendus plus performants via des where Exists() :

Data load editor pas optimisé

 

3)     Limiter le nombre d’appel aux sources de donnés

Faire appel à des sources de données demande des ressources et du temps. Le mieux est de charger une seule fois toutes les données nécessaires et donc de se connecter une seule fois à la base de données source.

Si on doit faire à nouveau appel à ces données plus loin dans le script du code, référez-vous à l’utilisation d’un Resident qui chargera les données d’une table déjà existante plutôt que de faire à nouveau appel à la base de données.

 

4)    Limiter les données du smart search

Plutôt que de désactiver le search index, nous vous conseillons de :

Pour rappel, il arrive souvent que les développeurs désactivent le search index car c’est un moyen facile de gagner du temps lors du chargement des données.

Par exemple, vous pouvez exclure du smart search les ID, qui sont souvent des valeurs que l’utilisateur final ne connait pas.

Dans l’exemple suivant on exclut tout ce qui contient ‘Amount’ et qui finit par ‘ID’ :

 

Data load editor search

5)    Préparer les données

 

Afin d’optimiser l’utilisation de votre application, il est intéressant de préparer un maximum de données en amont et de les transformer pour répondre au besoin fonctionnel des utilisateurs dans le script. Ceci permettra d’éviter de devoir faire des calculs dans les apps et donc d’améliorer la performance de celles-ci.

Nous vous proposons les solutions suivantes :

 

6)    Utilisation de l’autonumber

 

Créez des clés uniques et simples en utilisant la commande autonumber dans le script de chargement. Dans l’utilisation de l’app ceci permettre d’éviter d’utiliser des clés lourdes et longues et donc de gagner en performance.

Nous attirons votre attention sur deux points  :

  1. Nous parlons bien ici de la commande AUTONUMBER dans le script et non de la fonction autonumber().
  2. L’autonumber ralentira votre chargement de données mais permettra de rendre les app plus performantes. Il est donc important d’utiliser ceci en pensant aux conséquences de son utilisation.
  3. En réalisant  l’autonumber, il n’est plus possible de faire un chargement incrémentiel facilement.

 

7)    Utiliser des concatenate

 

Utiliser des concatenate ne fera pas spécialement gagner des temps au load des données. En revanche, l’utilisation des app en sera optimisé si c’est utilisé pour enchainer des petites tables ensemble.

Pour rappel, le concatenate permet d’importer toutes vos données dans une seule table plutôt que plusieurs tables.

 

8)    Jointures

 

Nous vous conseillons d’éviter les jointures de tables volumineuses dans le Data Load Editor. Lors de l’utilisation de l’app, vous risquez de perdre en performance car la recherche de la donnée en sera complexifiée.

 

Exemples :

 

Voici d’autres exemples de loads optimisés :

Data load editor optimisé

 

II.           Améliorer la performance de vos apps lors du développement de vos apps

 

1)    À exclure de son vocabulaire

Utiliser des formules variables peut s’avérer très utile. Il s’agit de formules qui varient selon le choix de l’utilisateur. Par exemple, celui-ci pourra choisir d’afficher soit, la somme des quantités vendues, soit le prix unitaire moyen, soit le pourcentage de marge, etc.

Pour ce faire, est-il déconseillé d’avoir recours aux formules IF ou Pick + Match de la manière suivante :

If(Condition = 1, sum(quantity)

If(Condition = 2 , Avg(UnitPrice),

If(Condition = 3 ,sum(Marge)/Sum(ChiffreDaffaire)

)))

Ou

Pick(Match(Condition,1,2,3), sum(quantity), Avg(UnitPrice), sum(Marge)/Sum(ChiffreDaffaire))

En effet, l’engine de Qlik Sense calcule chacune des alternatives, mais n’en affiche qu’une seule. Selon la volumétrie de l’application, le recours au IF ou Pick + Match peut donc impacter négativement la réactivité de l’application.

Voici ce que Qlik propose à ce sujet :

Créer une table dite “Island » , donc détachée du modèle, et appeler chaque formule via une sélection faite sur le nom de la formule :

Data load editor island

 

 

2)    Limiter les données affichées

 

Il convient d’éliminer toutes les valeurs ou colonnes non nécessaires. L’affichage de chaque information diminuera votre performance. Limitez-vous donc au minimum nécessaire.

 

3)    Gestion des données distinctes

 

Nous vous conseillons également de réduire le nombre de valeurs distinctes. Ceci est faisable en arrondissant par exemple, ou en enlevant les secondes et les millièmes de secondes à des valeurs temporelles.

 

4)    Afficher les graphs sous certaines conditions

 

Comme vous le savez, Qlik offre la possibilité de charger un objet seulement sous certaines conditions. Nous vous conseillons d’utiliser cette fonctionnalité lorsqu’il y a beaucoup de données potentielles à afficher. Par exemple, vous pouvez mettre comme condition d’afficher un graphique seulement si les sélections réalisées font qu’il y a moins de 100 000 données sur lesquelles il faut faire un calcul.

 

Data load editor affichage conditionnel

 

Liens utiles

Analyse de performance :

Nous avons également écrit un article sur l’analyse de la mémoire RAM utilisée sur Qlik sense SaaS. N’hésitez pas à y jeter un coup d’œil ici.

Qlik propose également un ensemble des meilleures pratiques dans cet article.

Vidéo :

La vidéo suivante vous expliquera également comment certaines fonctionnalités sont moins performantes que d’autres.

Voici l’article Qlik lié à la vidéo.

 

Besoin de support

 

Pour plus de conseils concernant la performance des outils Qlik, contactez votre partenaire Qlik ou votre consultant.

 

Consultante Qlik Laetitialaetitia.larchanche@weqan.be
+32(0)489/970.736
Laetitia, Sales & Marketing manager

Restez informés des différentes actualités de WeQan en nous suivant sur LinkedIn et Facebook.

 

Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD
Téléchargez le témoignage
Télécharger
Vous acceptez nos conditions RGPD