mercredi 21 mars 2012

QlickView - Gérer le chargement partiel


Comme beaucoup, vous avez commencé par une première application sous QlickView codée en trois jours comme promis par le commercial. Au fil des demandes, le nombre d'applications a grossi et votre impression de refaire toujours le même script et toujours les mêmes chargements a grandi. Pour finir, le jour où il a fallu  retoucher n applications car la base sous-jacente a été modifiée vous a convaincu qu'une méthode, disons, plus industrielle, était nécessaire.
Nous allons donc étudier comment Qlickview permet de mutualiser et ré-assembler des ensembles de données, un bon moyen pour faciliter la réutilisation et optimiser les temps de chargement.


Le meilleur moyen pour partager des données entre différentes applications QlikView consiste à utiliser des fichiers QVD. Ces fichiers sont construits à partir d'une application standard en utilisant la commande store. A la différence d'un fichier excel ou txt, ce fichier est optimisé pour QlikView, il sera donc chargé bien plus rapidement lors de son utilisation.

Nous allons donc créer une application dédiée au chargement des principales dimensions contenant uniquement le script suivant:


/* Chargement de la dimension vendeur */


Vendeur:
SQL SELECT 
PK as vendeur_id,
NOM,
    PRENOM
FROM IMPROMPTU."TST_VENDEUR";


/* Chargement de la dimension Date */
Date:
SQL SELECT 
PK as date_id,
ANNEE,
    DATE1,
    "JOUR_ANNEE",
    "JOUR_LIBELLE",
    "JOUR_MOIS",
    "JOUR_SEMAINE",
    "MOIS_ANNEE",
    "MOIS_LIBELLE"
FROM IMPROMPTU."TST_DATE";


/* Sauvegarde des données dans des fichiers .qvd*/
store Vendeur into tst-vendeur.qvd;
store Date into tst-date.qvd;


Ce script charge les deux dimensions Date et Vendeur puis les enregistre dans les fichiers tst-vendeur.qvd et tst-date.qvd.
Il ne reste plus qu'à charger les données (Crtl R) et vous pouvez constater que les deux fichiers tst-vendeur.qvd et tst-date.qvd sont bien créés.
Pour charger ces fichiers dans une autre application, il faut utiliser la commande load dans le script de chargement.

/* Charge les vendeurs*/

Vendeur:
load * from tst-vendeur.qvd (qvd);
/* Charge les dates*/  

Date:
load from tst-date.qvd (qvd);


Une fois les données chargées, vous retrouvez bien vos données à disposition.




En terme de conception, il est conseillé de maintenir ainsi une bibliothèque de vos dimensions. Celles ci peuvent alors être utilisées au grès de vos besoins tout en maintenant une cohérence sur le nommage de vos concepts.



Aucun commentaire:

Enregistrer un commentaire