5 Replies Latest reply: Oct 12, 2015 4:57 AM by Almamy DIABY RSS

    valeurs manquantes avec concatenate(link table)

    Fatimata Wone

      Bonjour à tous,

       

      Je suis nouvelle utilisatrice de qlikview.Je réalise en ce moment ma première application.

      J'ai fait une modélisation en étoile avec une table de dimensions et des tables de faits et j'ai souhaité créer une table de lien en utilisant concatenate.Il se trouve que j'ai des valeurs qui sont remplacées par des "-" ce qui fausse le lien entre mes différentes fenêtres.

      Quelqu'un d'entre vous aurait-il la solution à mon problème svp?

      Merci d'avance.

        • Re: valeurs manquantes avec concatenate(link table)
          Almamy DIABY

          Bonjour, je ne comprend pas bien ce que vous voulez faire.

          Cependant, "Concatenate" permet d'unir deux tables même si ces deux tables n'ont aucun champ en commun.

          Et, c'est lorsqu' un champ n'est pas commun aux deux tables qu'on apparition des "-"

           

          Essaie d'être plus explicite, en postant ton schéma de données avec des commentaires ou bien en postant ton application.

           

          Cordialement,

            • Re: valeurs manquantes avec concatenate(link table)
              Fatimata Wone

              Bonjour Almamy, merci pour ta disponibilité.

              Je vais tâcher d'être plus explicite.

              Voici mon schéma de données:

               

              schémadonnées.PNG

               

              J'ai créé la table LINK_Table pour faire le lien entre les tables de faits et ma table de dimension.

              Pour cela j’ai concaténé les lignes provenant des différentes tables.

              (j'ai copié ci-dessous le script de ma table de lien)

               

              LINK_Table:

              LOAD Distinct

              VM,

              KEY_VM_CPU,

              Day,

              Month,

              Year,

              Host,

              KEY_Date

              Resident Fact_CPU;

               

              Concatenate (LINK_Table) 

              LOAD Distinct

              VM,

              KEY_VM_VM,

              Day,

              Month,

              Host,

              KEY_Date

              Resident Fact_VM;

               

              Concatenate (LINK_Table)    

              LOAD Distinct

              VM,

              KEY_VM_Disk,

              Host,

              //Day,

              //Month,

              //Year,

              KEY_Date

              Resident Fact_Disk;

               

              Concatenate (LINK_Table) 

              LOAD Distinct

              KEY_Host,

              KEY_Date,

              Host,

              Day,

              Month,

              Year

              Resident Fact_Host;

               

              Concatenate (LINK_Table) 

              LOAD Distinct

              KEY_VM,

              KEY_Host,

              Host

              Resident Dim_Machine;

               

              DROP Fields VM,KEY_Date,Host FROM Fact_CPU;

               

               

              DROP Fields VM,KEY_Date,Host,OS FROM Fact_VM;

              DROP Fields VM,KEY_Date,Host FROM Fact_Disk;

              DROP Fields Host,KEY_Date FROM Fact_Host;

              DROP Field KEY_Host,Host,VM FROM Dim_Machine;

               

               

              DROP Fields Day,Month,Year FROM Fact_CPU;

              DROP Fields Day,Month,Year FROM Fact_VM;

              DROP Fields Day,Month,Year FROM Fact_Host;

               

               

              Pour obtenir aperçu du contenu de la table concaténée, j’ai créé une zone table et je me rends compte que certaines lignes ne sont pas complètes et contiennent un « - » à la place.

              zonetable.PNG

               

              J'espère que j'ai été plus claire dans mes explications.

               

              Cordialement.

                • Re: valeurs manquantes avec concatenate(link table)
                  Almamy DIABY

                  Bonjour,

                  Voici comment je comprends ton problème.

                  On a 4 tables de faits (Fact _VM, Fact_CPU, Fact_Host  et Fact_Disk)

                  et deux tables de dimensions ( Calendrier et Dim_machine).

                  Je remarque qu'il ya deux clés (KEY_VM et KEY_Date).


                  Pour créer ma table pivot (Table qui va servir de lien entre les tables de dimension et de faits), je ne vais utiliser

                  que les clés (Date et KEY_VM ) de mes tables de faits uniquement (Parce je vois que tu as ajouté Dim_Machime  dans ta table link : l'erreur). Voila comment je procède:

                   

                  LINK_Table:

                  Load  distinct

                  KEY_VM_VM as KEY_VM,

                  KEY_Date

                  Resident Fact_VM;


                  Concatenate


                  Load  distinct

                  KEY_VM_CPU as KEY_VM

                  KEY_Date

                  Resident Fact_CPU;


                  concatenate


                  Load  distinct

                  KEY_VM_Disk as KEY_VM,

                  KEY_Date

                  Resident Fact_Disk;


                  Concatenate


                  Load  distinct

                  KEY_VM_host as KEY_VM,

                  KEY_Date

                  Resident Fact_host;

                   

                  C'est tout à fait normal que tu supprimes tous les champs relatifs à la date dans toutes les tables de faits.

                  Concernant le champ VM s'il n'existe pas dans la table Dim_Machine tu peux l'ajouter dans chaque table qui constituent la table Link et ensuite supprimer ce champ dans les différentes tables de faits.

                   

                  J'attends ton feedback

                   

                  Cordialement,

                   


                    • Re: valeurs manquantes avec concatenate(link table)
                      Fatimata Wone

                      Merci beaucoup Almamy pour ta réponse.

                      Seulement quand je prends ton exemple, mes tables de faits ne sont pas reliées avec ma table de dimension.

                      J'ai donc rajouté" VM as KEY_VM "dans chaque table de fait comme suit:

                       

                      LINK_Table:

                      Load  distinct

                      KEY_VM_VM,

                      VM as KEY_VM,

                      KEY_Date,

                      Resident Fact_VM;

                       

                       

                      Concatenate

                      Load  distinct

                      KEY_VM_CPU,

                      VM as KEY_VM,

                      KEY_Date,

                      Resident Fact_CPU;

                       

                       

                      Concatenate

                      Load  distinct

                      KEY_VM_Disk,

                      VM as KEY_VM,

                      KEY_Date,

                      Resident Fact_Disk;

                       

                       

                      Concatenate

                      Load  distinct

                      KEY_Host,

                      KEY_Date,

                      Resident Fact_Host;

                       

                      Sinon j'aimerai comprendre pourquoi la table Dim_Machine ne peut pas être ajoutée dans la table de lien.

                      (A la base je l'avais ajoutée pour pouvoir la lier avec les tables de faits via KEY_VM surtout pour ma table Fact_Host où je n'ai pas de champ VM)

                       

                      Merci d'avance pour ton retour.

                       

                      Cordialement,