11 Replies Latest reply: Nov 25, 2014 10:13 AM by Guen LE MERRER RSS

    Aide pour conception script de chargement de données

      Bonjour

       

      Je débute en "langage qlik" et je me heurte à une difficulté pour charger des données sur un projet ou créer une mesure, je ne sais pas à quel endroit il faut que j'intervienne.

      Le contexte : analyse de traçabilité des pratiques agricoles

      J'ai une table d'interventions avec :

      • une table de liaison à des parcelles agricoles puis la table des parcelles (avec la surface, l'exploitant...)
      • une table de liaison aux produits utilisés (avec notamment la cible concernée) puis la table des produits (et des matières actives)

      J'ai construit un schéma très linaire (trop ?) qui se rapproche de la conception de la bdd (cf ci-dessous).

       

       

      CelaCapture.JPG.jpg fonctionne bien quand je sélectionne des parcelles ou des produits, la surface des parcelles concernées semble correcte. Par contre, je voudrais faire un calcul du nombre d'intervention pour chacune des cibles par parcelle puis agréger ensuite en une moyenne par exploitation, groupe et là, je bloque... J'ai essayé tout bêtement un COUNT(INTER_id) où inter_id est l'identifiant de mon intervention mais ça me fait bien trop de valeur...

      Avez-vous une idée de la façon dont je dois construire le modèle de données ou, s'il est correct, faire mon calcul de nombre d'intervention par cible ?

      Merci par avance

       

      guen

        • Re: Aide pour conception script de chargement de données
          Michael Tarallo

          Salut Guen , permettez-moi de voir si je peux trouver quelqu'un pour vous aider .

           

          Cordialement,

           

          Mike Tarallo

           

          Salut Matt , juste vérifier avec vous - est-ce quelque chose que vous pouvez jeter un oeil à ?

          matthieu.burel

          • Re: Aide pour conception script de chargement de données
            Philippe Grenier

            Bonjour Guen,

             

            En présumant qu'il y a plusieurs interventions produit par intervention, le Count(INTER_id) va avoir tendance à compter toutes les utilisations de la clé INTER_id plutôt que le nombre distinct de celles-ci. Vous pouvez utiliser l'expression Count(DISTINCT INTER_id) pour obtenir la valeur désirée.

             

            Cordialement,

             

            Philippe

              • Re: Aide pour conception script de chargement de données

                Bonjour et merci

                Effectivement, j'y avais pensé et déjà testé mais cela me ressort tout de même un nombre bien trop important d'interventions... Il y a effectivement autant d'INTER_id que de relation intervention-produit mais aussi intervention-parcelle...

                  • Re: Aide pour conception script de chargement de données
                    Philippe Grenier

                    Et comment définissez-vous l'unicité d'une intervention dans votre modèle? Y aurait-il une clé cachée dans la table Interventions, ou peut-être est-ce plutôt un amalgame de champs qui compose la clé unique des interventions?

                     

                    Si par hasard c'était le deuxième cas qui prévaudrait, vous pourriez vous ajouter une nouvelle colonne lors du chargement du contenu de la table Interventions ainsi:

                    LOAD *, AutoNumber([Champ1]&'~'&[Champ2]&'~'&[Champ3], '%Clé_Interventions') as %Clé_Interventions

                    From <table>;

                     

                    L'expression [Champ1]&'~'&[Champ2]&'~'&[Champ3] permettrait en principe de représenter la clé composée unique, et en utilisant le tilde en guise de séparateur, cela permet d'éviter que les valeurs AAA, ABB, et BCC soient considérées à même type que AAAA, BBB et CC en les concaténant ensemble.

                     

                    Par la suite, vous pouvez utiliser le champ numérique qui en résultera pour le Count(DISTINCT %Clé_Interventions).

                     

                    Autrement, vous pouvez aussi y aller directement avec l'expression Count(DISTINCT [Champ1]&'~'&[Champ2]&'~'&[Champ3]), mais sur un grand nombre de données, ce sera définitivement moins efficace.

                     

                    Cordialement,

                     

                    Philippe

                      • Re: Aide pour conception script de chargement de données

                        merci bcp d'essayer de résoudre mon souci... La clef unique de ma table intervention existe (INTER_id) mais elle n'est pas unique (...) dans la table générée dans qlik sense puisqu'elle se répète pour chaque affectation à une parcelle ou chaque produit utilisé. j'essaye de créer une clef unique composée comme vous le proposez mais je ne suis pas sûr que cela soit la solution. Je me demande si ce n'est pas plutôt une histoire de regroupement (aggrégation) par parcelle pour ne compter le nombre d'intervention d'une cible qu'au niveau d'une parcelle (et faire ensuite la moyenne pour une exploitation). C'est possible de faire un décompte au sain d'un regroupement ?

                          • Re: Aide pour conception script de chargement de données
                            Philippe Grenier

                            Bonjour Guen,

                             

                            Il y a effectivement moyen de forcer l’agrégat de données selon une dimension ou un groupe de dimensions avec la fonction Aggr(). Il y a des exemples très pratiques dans l'aide en ligne.

                             

                            Pour accéder l'aide de Qlik Sense, vous devez d'abord vous assurer d'être connecté à l'internet, car l'aide est en ligne, contrairement à celle de QlikView qui est locale. Ensuite, lorsque vous être dans le "Data Load Editor", cliquez sur le bouton avec le symbole ? situé dans la partie supérieure de l'écran, vous serez dès lors en mode aide.

                             

                            Ensuite, cliquez sur n'importe quel mot clé affiché en bleu souligné, et la rubrique associée sous help.qlik.com/sense sera affichée dans un nouvel onglet. Une fois dans l'aide, vous pouvez utiliser le champ de recherche pour trouver la rubrique associée à Aggr, vous allez voir, c'est plutôt efficace.

                             

                            Au plaisir,

                             

                            Philippe

                              • Re: Aide pour conception script de chargement de données

                                bon, je crois que j'abandonne... toutes les tentatives sont vaines (clef composée, fonction aggrégation, table creuse des faits...) il y a qq chose qui m'échappe dans la conception de base je pense ! Merci quand même d'avoir essayé de m'aider.... bonne soirée

                                guen

                                  • Re: Aide pour conception script de chargement de données
                                    Matthieu BUREL

                                    Bonsoir Gwen,

                                     

                                    Désolé pour ma réponse tardive, pont du 11 novembre oblige ;-)

                                     

                                    Je suis très curieux de comprendre la raison de ton problème : j'adore les challenges

                                    Je pense que la solution réside dans la construction du modèle de données et dans l'unicité de l'identifiant comme l'évoque Philippe.

                                     

                                    PI : je te déconseille d'effectuer des comptages (& co) sur une clé de relation; le champ étant dans plusieurs tables, le résultat peut parfois être très surprenant.

                                     

                                    Si tu n'y vois pas d'inconvénients, pourrais-tu me transmettre ton application (avec les data) pour t'aider à solutionner ton problème.

                                     

                                    N'hésite pas à me contacter par mail.

                                     

                                    Bonne soirée

                                     

                                    Matthieu

                                      • Re: Aide pour conception script de chargement de données

                                        Bonjour

                                         

                                        Je ne m'attendais pas à une telle réactivité et professionnalisme en postant mon message sur ce forum ! impressionnant ! Je pense que c'est effectivement un souci de conception du modèle car je l'ai fait trop à l'image de ma base de données et je sais que cela n'est pas la même logique. j'avais déjà solutionné une conception pour une autre application sous Qlikview avec une table creuse des faits mais là..;je bloque. Je peux t'envoyer un extrait de mes données et le fichier Sense que j'ai commencé à faire sur ta boite privée. si ok, merci de me la transmettre sur mon adresse guen69@gmail.com

                                        merci par avance

                                        bon jour ferié

                                         

                                        guen

                                        • Re: Aide pour conception script de chargement de données

                                          Un grand merci à Matthieu qui a pris bcp de temps pour m'aider sur ce projet et je suis arrivé à mes fins. Qlik Sense m'a l'air d'être bien puissant !

                                          Pour info, le script était bon mais tout était dans la manière de faire les mesures et dans la création de clefs uniques différentes des index de la base de données...

                                          Merci encore