9 Replies Latest reply: Dec 11, 2017 10:01 AM by Axel Beaugrand RSS

    QVD Normalisé + DROP + NOCONCATENATE

    Axel Beaugrand

      Bonjour à tous,

       

      Je souhaite créer des QVD dis "Normalisé" ce que j'entends par la :

      - Créer un QVD à partir d'une base qui rassemble des données de plusieurs localisation différente au sein de la même BDD

       

      Je prends un exemple car je pense que celui ci vous permettra de mieux comprendre la problématique :

      J'ai une base Oracle sur un logiciel x, celui ci rassemble plusieurs schéma qui rassemble une et unique table

      //enfin pas sur de cette information pour le moment car je n'ai pas moyen de la vérifié.

       

      Ce que j'aimerai savoir c'est comment rassembler en un seul QVD des informations se trouvant dans des localisations différentes dans ma BDD Oracle.

      C'est à dire ex : schemaC2060.AGD_DEMANDE_PLANIF table  AGD_DEMANDE_PLANIF

                                schemac2060.IDE_Adresse table schemac2060.IDE_Adresse

       

      J'ai pu voir dans certaine application la réalisation d'un left join dans le script.

      1/ Ce que j'aimerai obtenir c'est une explication claire sur l'utilisation et la manipulation de cette action, un avis également sur votre opinion s'il existe un autre moyen ?

       

      Par ailleurs, il me vient deux questions complémentaire :

      • 2/ j'ai bien compris tout ce qui par rapport au join | left join | right join | concatenate mais le non concatenate me pertube ?
      • 3/ Enfin le drop table j'ai beau lire et relire des choses sur ce sujet j'ai vraiment beaucoup de mal à l'intégrer ?

       

      Je demande vraiment des explications claire courte et précise svp ?

       

      Dans l'attente de vous lire je vous souhaite une excellente soirée !

        • Re: QVD Normalisé + DROP + NOCONCATENATE
          youssef belloum

          Bonsoir Axel,

           

          Ce que j'aimerai savoir c'est comment rassembler en un seul QVD des informations se trouvant dans des localisations différentes dans ma BDD Oracle.

          C'est à dire ex : schemaC2060.AGD_DEMANDE_PLANIF table  AGD_DEMANDE_PLANIF

                                    schemac2060.IDE_Adresse table schemac2060.IDE_Adresse


          Alors, tu aurais du peut etre donner plus de détails sur ta demande ou mettre un exemple de structure des tables que tu veux rassembler dans un QVD.

           

          mais d'aprés ce que j'ai compri, c'est que les tables que tu veux mettre sur un seul entrepot de données (QVD), elles ont une structure differente.

           

          dans ce cas, tu devra utiliser une Concatenation (CONCATENATE) pour rassembler tes tables, suivi d'une instruction STORE pour stocker les TOUT dans un QVD.

           

          EXEMPLE:

           

          //chaine de connexion vers ta bas

           

          TABLE_FINALE:

          LOAD

          .

          .

          FROM TABLE1

           

          CONCATENATE

           

          TABLE2:

          LOAD

          .

          .

          FROM TABLE2

           

          //tu met autant de concatenation que de tables chargés (sans rentrer dans les détails de syntaxe)

           

          Store TABLE_FINALE Into [PATH\TABLE_FINALE .qvd];



          Maintenant, tu a aussi ecrit que : le non concatenate me pertube


          Par défaut, sur Qlik, quand tu charge 2 tables successivement, qui ont la meme structure, Qlik les concatene automatiquement


          donc on utilise le non concatenate pour forcer Qlik a ne pas concatener 2 tables qui ont la meme structure (c'est un peule contraire de ce que tu veux faire toi).


          Enfin, tu a écrit: le drop table j'ai beau lire et relire des choses sur ce sujet j'ai vraiment beaucoup de mal à l'intégrer


          le besoin de ta première application, c'est un besoin ETL plus qu'autre chose (dataviz), donc a la fin du traitement tu devra utiliser l'instruction DROP TABLE pour effacer la table chargée du modele et ainsi avoir une application qui ne consommera rien en terme de disque une fois fermée.


           


            • Re: QVD Normalisé + DROP + NOCONCATENATE
              Axel Beaugrand

              Bonjour Youssef, je te remercie pour ta réactivité et de tes réponses précises !

               

              Cependant il ne me reste qu'une question par rapport à ton affirmation :

               

              Sur le Drop comment savoir quel donnée il supprimera ?

              Pourrais tu me partager un exemple stp pour ainsi mieux comprendre son mécanisme car avec le guide d'utilisation c'est comment dire pas très explicite ..

               

              En te remerciant beaucoup pour ton aide je te souhaite une excellente journée !

                • Re: QVD Normalisé + DROP + NOCONCATENATE
                  youssef belloum

                  Bonjour Axel,

                   

                  voici les possibilités de l'instruction DROP :

                   

                  tu peux supprimer une table de ton modèle de données (ou simplement une table chargée précédemment dans le script)

                   

                  exemple:

                  drop table tablename

                  //tablename c'est le nom d'une table que tu a chargé précédemment.


                  Aussi, tu peux supprimer un champ d'une table précédemment chargée.


                  exemple:

                  Drop field fieldname from tablename

                  //fieldname c'est le nom d'un champ d'une table (tablename) précédemment chargée


                    • Re: QVD Normalisé + DROP + NOCONCATENATE
                      Axel Beaugrand

                      Bonjour à Tous et a toi Youssef,

                       

                      Afin de pratiquer j'ai voulu tester la concatenation des champs avec deux tables différentes ;

                       

                      Voici mon code, bien entendu j'ai un message d'erreur qui m'indique le message suivant :

                       

                      Impossible d'ouvrir le fichier'D:\Qlikview\DEVELOPPEMENT\0 TEST APP SUR INSTRUCTION\glpi_entities' Le fichier spécifié est introuvable.

                      Concatenate

                      glpi_entities:
                      load
                      id,
                      name
                      from glpi_entities

                       

                      Pour prendre mon exemple je suis allé taper dans une base que nous possédons de notre logiciel GLPI

                      Voici mon script :

                       

                      SET vQVD_GLPI='..\entrepot\0_TEST\'; 

                       

                      glpi_tickets:
                      load
                      id,
                      entities_id,
                      urgency
                      from glpi_tickets;

                      Concatenate

                      glpi_entities:
                      load
                      id,
                      name
                      from glpi_entities;

                      STORE glpi_tickets into $(vQVD_GLPI).QVD (QVD);

                      Par ailleurs il me dis que les tables selectionner sont introuvable, est ce psk je n'ai pas crée de QVD lié au table chargé ?

                      Mes questions serait de savoir :

                      Comment je peux faire cela ?

                      Est il possible de réaliser cela sans charger le QVD de chaque table ?