mercredi 25 janvier 2012

[SSAS] Ajouter de l'intelligence à votre cube Analysis Services (Year To Date YTD, Month To Date MTD,...)

Un article que je voulais faire depuis longtemps, donc je profite du temps que j'ai devant moi.
On donne toujours comme avantage à un cube par rapport à une base de données relationnelle, sa facilité à naviguer sur les dates.
De là découle une certaine facilité à créer des membres calculés en MDX tels que des Year To Date, des Month To Date, des 3 Jours Glissants, etc... bien qu'ils ne soient pas intégrés par défaut.

On va montrer comment les intégrer dans un cube SSAS en moins de temps qu'il ne faut pour le dire.

Conseil :
Je recommande de faire la manipulation sur un cube finalisé. Ca vous évitera de mettre les mains dans le code MDX pour rajouter des mesures ou modifier des noms.

 Processus :
  • Ouvrir sa solution Analysis Services, et aller sur le cube.
  • Cliquer sur "Add Business Intelligence"

  • Dans la fenêtre qui s'ouvre, cliquer sur "Next", puis sélectionner "Define Time Intelligence" et cliquer sur "Next"

  • Choisir ensuite une hiérarchie et le type de mesures d'analyse temporelle que vous voulez ajouter.
Remarques :
Les indicateurs créés dépendent de la hiérarchie. Il faut donc recommencer l'opération autant de fois que l'on a de hiérarchies date.
Votre dimension doit être définie comme une dimension date en spécifiant bien les niveaux (plus il y a de niveaux définis, plus le choix de mesures à rajouter est grand)

  • Dans l'exemple, j'ai choisi la hiérarchie "Calendar", pour un YTD, un MTD et un 12 Mois Glissants.

  • Sélectionner les mesures sur lesquelles vous voulez appliquer ses analyses. Dans l'exemple, je choisis "Internet Sales Amount" et "Internet Order Quantity", puis cliquer sur "Finish", puis encore sur "Finish" dans la fenêtre d'après.

Le travail est terminé, on va maintenant regarder comment se présentent les résultats.


Dans notre hiérarchie Temps que l'on a utilisée, un nouvel attribut nommé "Calendar Date Calculations" est disponible. Il prend pour valeur les 3 analyses que l'on a sélectionnées lors de la création (YTD, MTD, 12 mois glissants) plus la période courante (qui correspond à la valeur à date, c'est-à-dire sans analyse)

Mais qu'est-ce qui s'est passé concrètement ?

Dans le DataSourceView, l'assistant a créé une Named Calculation nommé "Calendar Date Calculations" qui correspond à notre attribut d'analyse qui vaut "Current Date".



L'assistant a créé ensuite le code MDX qui initialise notre nouvel attribut pour les valeurs YTD, MTD et 12 mois glissants. Puis fait un scope sur les mesures que l'on a sélectionnées avec les formules adéquates.


On imagine aisément que l'on peut s'appuyer sur ce code MDX pour créer des analyses qui ne seraient pas présentes dans l'assistant.

Conclusion :

Normalement vos utilisateurs seront friands de ce genre d'implémentation. Et vu le temps de mise en oeuvre, il serait dommage de les en priver.

4 commentaires:

  1. Merci David pour ce partage de connaissances.
    Stéphanie.

    RépondreSupprimer
  2. Je mets en oeuvre SSAS via la version 2008.
    La BI de microsoft est tres interressante.
    Cependant j'avoue un truc agaçant :"Current Date" n'est pas tres francais, et que l'on veuille changer la valeur cela semble ne pas marcher meme en modificant les scripts.
    Auriez vous une solution???

    RépondreSupprimer
  3. Par ailleurs, si la datasource est une requette sur le datawarehouse et non directement une table ou une vue, il faudra modifier la requete, car SSAS n'accepte pas des champs calculés dans les requetes.

    RépondreSupprimer