Decideo - Actualités sur le Big Data, Business Intelligence, Data Science

Abonnez-vous gratuitement à Decideo !


Decideo


 
Forums, dernières contributions
 Benjamin
Mardi 5 Août 2008

Version imprimable
[Ignorer]
Bonjour
J'ai vu un objet indicateur qui a comme projection somme et comme requete sql sum(a)
pourriez vous m'expliquer la signification de ces deux sommes(effectivement j'ai essaye l'objet avec la somme de projection et avec la somme de la requete cela ne me retourne pas le même resultat?
quelqu'un pourrait t'il m'expliquer svp avec des exemples BO la difference entre la somme dans la projection BO et sum(a) dans la requête sql de l'objet.
et si javais mis une moyenne j'aurai eu quoi
si vous avez des exemples avec des chiffres je suis preneur
merci!
 Joel Da Costa
Mardi 5 Août 2008

Version imprimable
[Ignorer]
Bonjour Benjamin,

C'est en fait assez simple, la sum que vous définissez au niveau de la définition de l'objet est la fonction d'agrégation qui sera utilisée au niveau de la base de données pour faire les calculs, tandis que celle qui est définie comme fonction de projection sera la fonction d'agrégation utilisée par BO lorsque celui-ci devra faire l'agrégation.

Mettons nous en situation simple, nous avons une table de fait avec comme indicateur le CA, et comme dimensions l'année et le produit.

J'ai défini mon objet en tant que sum(CA) et sa fonction de projection est la moyenne (c'est n'importe quoi mais c'est pour l'exemple).

Si dans la requête de mon rapport je mets comme objet Année et CA, la requête générée sera Select Année,Sum(CA). Donc c'est la fonction d'agrégation définie dans l'objet qui sera utilisée.

En revanche, si dans ma requete je récupère Année, Produit et CA et que dans mon rapport je n'affiche que l'Année et le CA dans ce cas là ce n'est plus la BD qui effectue l'agrégation, mais le moteur de Business Objects, et dans ce cas c'est la fonction de projection qui est utilisée, ici là moyenne, donc dans mon rapport j'aurai par année la moyenne du CA.

En général, on accorde les deux fonctions d'agrégations, mais cela peu servir d'avoir a mettre somme d'un coté et autre chose de l'autre.

J'espère avoir été assez clair. Ah et une dernière chose, d'ordre plus général, essaye de faire un maximum travailler la base de données, et donc de faire réaliser les agrégations par la BD plutôt que par le moteur de BO. Une BD bien taillée s'enfilera sans souci une agrégation sur plusieurs centaines de milliers de lignes, le moteur de BO lui sera sur les rotules bien avant.

Cordialement,
Joël
 Benjamin
Mardi 5 Août 2008

Version imprimable
[Ignorer]
salut Joel
Mais je comprends mieux mais alors une question par rapport a ceux que tu as ecrit:
si je comprends bien dans la premiere phrase de ton exemple (Si dans la requête de mon rapport je mets comme objet Année et CA, la requête générée sera Select Année,Sum(CA). Donc c'est la fonction d'agrégation définie dans l'objet qui sera utilisée.)
des que je selectionne dans mon rapport tous mes objets c'est la fonction d'agregation defini dans l'objet qui sera utilisé? exemple sum(ca) qui est execute et non la projection

ET DANS Ta deuxieme phrase (En revanche, si dans ma requete je récupère Année, Produit et CA et que dans mon rapport je n'affiche que l'Année et le CA dans ce cas là ce n'est plus la BD qui effectue l'agrégation, mais le moteur de Business Objects, et dans ce cas c'est la fonction de projection qui est utilisée, ici là moyenne, donc dans mon rapport j'aurai par année la moyenne du CA.)

si je n'utilise dans mon rapport tous les objets a ce moment là c'est le moteur de BO QUI prend en charge l'agregation donc la somme ou la moyenne qui vient de la projection qui s'applique!

en resumé quand vraiment savoir que c le resultat de la projection ou de la requete sql qui s'applique?


'essaye de faire un maximum travailler la base de données, et donc de faire réaliser les agrégations par la BD plutôt que par le moteur de BO. Une BD bien taillée s'enfilera sans souci une agrégation sur plusieurs centaines de milliers de lignes, le moteur de BO lui sera sur les rotules bien avant. '
pourrais tu me donner un exemple avec la base de donnée? Que veux tu dire par là?
est ce que cela suffit de mettre sum(ca) et omettre celui de la projection?





et si je
 Joel Da Costa
Mardi 5 Août 2008

Version imprimable
[Ignorer]
Bonjour Benjamin,

Je pense que tu as compris, lorsque dans ton rapport (ie ta mise en page) tu as exactement les mêmes objets que ce présents dans ta requête dans ce cas le moteur analytique de BO ne réalise pas d'agrégation, dans ce cas, la fonction de projection n'est pas utilisée. Si dans ton rapport tu utilises moins d'objets que ce présent dans ta requête, alors le moteur analytique utilisera ta fonction de projection et réalisera une agrégation.

BO ne préviens pas, c'est a toi de bien faire attention a ton niveau de calcul dans tes rapports. C'est une des difficultés que l'on peut avoir lorsque l'on commence a développer des rapports très complexes.

Quand je dis qu'il faut privilégier l'agrégation au niveau de la BD, c'est notamment par la mise en place de la fonction d'agrégation au niveau de la définition de l'objet, le fameux Sum(CA) oui. Et ne rigolez pas, j'ai déjà fait des dizaines d'interventions chez des clients qui se plaignaient de temps de réponse catastrophiques sur des rapports avec des gros volumes, avec des utilisateurs disant 'BO c'est de la m**** ça fait tous les calculs en local', en 30 minutes, en positionnant des fonctions de regroupements sur les indicateurs, on divisait les temps de réponse par 10, car les personnes ayant réalisé l'univers étaient souvent des gens ne connaissant pas suffisament le SQL.

Ensuite il n'y a pas que ça, éviter par exemple de prendre 5 dimensions dans la requête alors que l'on sait que l'on ne vas en utiliser que 2.

C'est plus le fait de garder à l'esprit que le SGBD sera toujours plus performant que le moteur analytique de BO pour ces problématiques, ce n'est pas des règles absolues (bien que mettre des fonction de regroupement BD dans la définition des indicateurs soit déjà le minimum).

Cordialement,
Joel
 benjamin
Mardi 12 Août 2008

Version imprimable
[Ignorer]
Merci pour ses informations si tu as des exemples concrets je dirai plus tot visuelle n'hésite pas à me les envoyer par mail
merci


Twitter
Rss
LinkedIn
Facebook
Apple Podcast
App Store
Google Play Store