;
chevron-bottomchevron-leftchevron-rightdownloadfacebookinstagramlink-outlinkedinminusplus
Accessibilité Tous les articles

Agrégation et projection: Quel rôle dans la création d’univers BI?

Publication

Juin 2014

Publié par

Karine Martel

Que vous utilisiez SAP BusinessObjects Universe Designer ou Information Design Tools pour concevoir vos univers, aucune différence. À un moment ou à un autre, vous vous êtes sûrement posé la question suivante : lorsque je crée une nouvelle mesure, est-ce vraiment nécessaire de définir une fonction d’agrégation ET une fonction de projection ? Qu’est-ce que je risque si je ne le fais pas, ou si je le fais incorrectement ?


Les fonctions d’agrégation

À la base, une fonction d’agrégation agit sur un ensemble de lignes, mais ne retourne qu’une seule ligne, selon les dimensions utilisées avec la mesure.

Les fonctions d’agrégation les plus utilisées, lorsqu’on construit une requête, permettent par exemple d’obtenir une somme, un décompte ou une moyenne.

Au final, un million de lignes lues peuvent être condensées en quelques milliers, quelques centaines ou même quelques dizaines de lignes.

Par exemple, pour obtenir le revenu total de chacun des magasins d’une grande chaîne, les informations de chaque article vendu seront accessibles, mais seulement une ligne par magasin sera retournée.

Lors de l’ajout d’une mesure dans un univers, il est important de spécifier une fonction d’agrégation. Cela permettra à l’outil de mieux générer la requête sous-jacente et ainsi, améliorer la performance de la dite requête. Par défaut, cette mesure sera groupée au niveau de détail correspondant aux dimensions sélectionnées. Dans mon exemple précédent, la dimension est le magasin. Le revenu des ventes est donc sommé pour chacun des magasins.

Ci-dessus, la fonction d’agrégation pour la somme.

Lors de la création d’une requête, si vous combinez des mesures contenant des fonctions d'agrégation avec d’autres ne contenant pas de fonctions d’agrégation, en plus de retourner trop de ligne, la requête sous-jacente sera incorrecte. La raison ? Les mesures sans fonction d’agrégation sont ajoutées au regroupement permettant de définir le niveau de détail ce qui fausse les résultats.

Restez à l’affût des dernières tendances analytiques

Les fonctions de projection

D’un autre côté, la fonction de projection permet de déterminer comment une mesure sera traitée dans un rapport, au niveau des différents blocs (tableaux ou graphiques).

La plupart du temps, par exemple pour les sommes, la fonction de projection sera la même que la fonction d’agrégation. La requête fera la somme des revenus de ventes pour les magasins et si, par la suite, la dimension magasin est retirée, le revenu total sera toujours calculé correctement.

Là où c’est plus compliqué, c’est avec les mesures dont la fonction d’agrégation est la moyenne. Si nous spécifions également la moyenne au niveau de la fonction de projection et qu’on utilise dans notre tableau uniquement la mesure contenant la moyenne, sans utiliser les mêmes dimensions que la requête, nous obtiendrons une moyenne d’une moyenne, ce qui n’est vraiment pas le résultat escompté.

Pour éviter cette problématique, deux choix s’offrent à vous. La première, c’est d’utiliser la fonction de projection « Aucune », qui correspond à ne pas faire d’agrégation au sein des tableaux. Cela fonctionne bien si vous utilisez la dimension dans le tableau, mais en la retirant, chacune des lignes restera en place, puisque qu’aucune agrégation ne doit être faite.

Le second choix, et probablement le meilleur, est de sélectionner la fonction de projection « Base de données déléguée ». Si vous n’avez pas le même niveau de détail dans votre tableau que dans votre requête, l’outil vous demandera d’actualiser la requête et vous serez ainsi certain d’avoir le bon résultat à chaque fois.

La fonction de projection à utiliser lorsque la fonction d’agrégation est un décompte représente un autre cas particulier. Par exemple, pour avoir le nombre de magasins, je vais faire un décompte (count) de l’identifiant du magasin. Pour ma fonction de projection, je dois penser que je ne veux pas un nouveau décompte du nombre de magasin mais bien la somme du nombre de magasins. C’est donc cette fonction de projection (somme) que j’utiliserai.

Pour conclure, oui, vous devez absolument associer une fonction d’agrégation ET une fonction de projection à vos mesures. Cela vous permettra d’avoir une meilleure performance à tous les points de vue. Cela vous garantira également, et c’est ce qui est le plus important, des résultats de meilleure qualité. Faites quelques essais, et vous verrez bien que ça en vaut la peine.

Aussi, il est peut-être temps de faire un audit de vos univers et même, de mettre en place de bonnes pratiques pour vous assurer que dorénavant, toutes vos mesures seront construites adéquatement.