IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

QlikView Discussion :

Qlik View Script - Modification & Rechargement


Sujet :

QlikView

  1. #1
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut Qlik View Script - Modification & Rechargement
    Bonjour a tous,

    Nouvel utilisateur de QlikView, je suis en pleine découverte de cet outils particulièrement attirant !

    Je me pose une question concernant le script d'import des données.
    J'ai rapatrié un certain nombre de champs depuis une BDD, l'import a été assez long a cause du nombre de ligne (plus d'un million).

    Voilà un extrait de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ODBC CONNECT TO BDD;
    SQL SELECT "ID_Num",
           .....,
           .....,
           DateAjout,
      FROM "data";
    J'ai ensuite modifié mon script de la facon suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ODBC CONNECT TO BDD;
    SQL SELECT "ID_Num",
           .....,
           .....,
           DateAjout,
           Year(DateAjout),
           Month(DateAjout),
      FROM "data";
    Question :

    Est - il possible d'effectuer la MAJ de ces deux champs sans re-importer l'ensemble des données (1 Million de lignes..) ?

    Est - il possible d'importer automatiquement la différence entre ce que j'ai dans mon .qvw et le contenu en base plutot que de toute réimporter ?

    Merci d'avance,

    CN

  2. #2
    Modérateur

    Inscrit en
    Octobre 2006
    Messages
    1 649
    Détails du profil
    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 649
    Points : 2 529
    Points
    2 529
    Billets dans le blog
    6
    Par défaut
    Est - il possible d'effectuer la MAJ de ces deux champs sans re-importer l'ensemble des données (1 Million de lignes..) ?
    Il est possible de faire un chargement depuis une table déjà en mémoire dans QlikView. Cela va beaucoup plus vite.

    Soit vous créez une nouvelle table depuis la première chargée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Ma_table_TMP:
    ODBC CONNECT TO BDD;
    SQL SELECT "ID_Num",
    .....,
    .....,
    DateAjout,
    FROM "data";
     
     
    Ma_table:
    LOAD 
    *,
    year(DateAjout) AS AnneeAjout,
    month(DateAjout) AS MoisAjout
    RESIDENT Ma_table_TMP;
     
    DROP TABLE Ma_table_TMP;


    Soit vous enrichissez la table avec une jointure :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Ma_table:
    ODBC CONNECT TO BDD;
    SQL SELECT "ID_Num",
    .....,
    .....,
    DateAjout,
    FROM "data";
     
     
    LEFT JOIN (Ma_table)
    LOAD 
    ID_Num, // le champ qui sert à faire le lien
    year(DateAjout) AS AnneeAjout,
    month(DateAjout) AS MoisAjout
    RESIDENT Ma_table;

    Est - il possible d'importer automatiquement la différence entre ce que j'ai dans mon .qvw et le contenu en base plutot que de toute réimporter ?
    Oui. Pour cela, il y a plusieurs solutions.
    Regardez la partie "partial reload" de la documentation qui explique comment charger des données de manière partielle (soit en ajoutant des données aux tables déjà chargées, soit en chargeant seulement certaines tables).


    Personnellement, j'aime bien stocker mes faits dans des fichiers QVD par mois.
    Lors du chargement, je ne reload depuis la base que les X derniers mois, et le reste depuis les QVD déjà existants.

  3. #3
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Merci beaucoup pour cette réponse très instructive.

    Me vient tout de suite d'autres question concernant le QVD, je n'ai actuellement qu'un QVW comment obtenir un QVD à partir de mon QVW ? Dois-je tout réimporter ?

    J'ai essayé de modifier le script en rajoutant la jointure et nommant Ma_Table mais un message d'erreur lors du rechargement partiel m'indique que Ma_Table n'existe pas .

    Autrement dit, je ne vois pas comment charger les données qui sont déjà en mémoire :s

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Pour créer un QVD, il suffit d'utiliser STORE dans le script.
    Attention : Un QVD ne contient qu'une table et une seule !

    Si tu as un message d'erreur sur ma_table, c'est probablement que tu n'as pas nommé ta table dans ton script. Ou que tu as fait une fote d'aurtaugraf quelquepart.

    Pour nommer la table que tu charge, il suffit de faire précéder le load d'une ligne contenant le nom de la table suivi de " : "
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MaTable:
    SQL SELECT * FROM TABLEODBC;
    STORE MaTable INTO C:\Repertoire\FicMaTable.QVD (QVD);

  5. #5
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    OK super, Merci Formulary, j'ai à présent 3 QVD qui correspondent à mes données de départ.

    J'aimerai à présent enrichir le code avec Month(DateAjout) et Year(DateAjout) dans une des tables.
    J'ai tenté de reprendre le code proposé plus haut mais sans y parvenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    InfoOF_Bis:
    LOAD *,
         Month(DateAjout) as Mois,
         Year(DateAjout) as Annee
    FROM
    C:\qv\InfoOF.QVD
    (qvd);
    Lorsque j'effectue le rechargement partiel, je n'obtiens pas ces 2 datas en plus dans mes dimensions.

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    La syntaxe me paraît pourtant bonne.
    Vérifie que tu as bien un champ DateAjout dans ton QVD.
    Vérifie aussi qu'il s'agit bien d'un champ de type date.

  7. #7
    Membre à l'essai
    Inscrit en
    Septembre 2009
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 32
    Points : 23
    Points
    23
    Par défaut
    Effectivement une erreur devait s’être glissé dans mon code, c'est à présent fonctionnel.

    Me viennent d'autres question notamment sur l'industrialisation d'un tel procédé ou encore des questions autour des graphiques, mais je vais d'abord me documenter sur le sujet avant d'ouvrir un nouveau topic !

    Merci a tous les deux, sujet résolu !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Prototype] Modification inline rechargement
    Par Mister Shell dans le forum Bibliothèques & Frameworks
    Réponses: 7
    Dernier message: 31/07/2007, 17h23
  2. [VRML] Script modification d'un objet avec le VRML
    Par L'aigle de Carthage dans le forum API graphiques
    Réponses: 5
    Dernier message: 28/05/2007, 09h07
  3. [XP Pro] Script modification paramètres réseau
    Par lidouka dans le forum Administration
    Réponses: 4
    Dernier message: 10/03/2007, 22h03
  4. [DOS-BATCH] Création script modif arborescence
    Par stygre dans le forum Windows
    Réponses: 2
    Dernier message: 19/07/2006, 14h02
  5. Réponses: 2
    Dernier message: 20/06/2006, 22h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo