> Tech > Modélisation des calculs

Modélisation des calculs

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

Lorsque la structure de cube et de dimensions requise est en place, vous pouvez créer les calculs proprement dits. En fonction de l’emplacement dans le cube, chaque calcul temporel peut exister dans l’un des trois états suivants :

• Etat 1 : le calcul s’applique aux coordonnées courantes

Modélisation des calculs

et il existe suffisamment de données pour son exécution. Dans ces cas, l’expression réelle est appliquée.

• Etat 2 : les données existant pour le calcul sont insuffisantes. Par exemple, supposons que vous compariez différentes périodes et la période courante est la première dans la hiérarchie (situation fréquente lorsqu’une comparaison d’une période sur l’autre est demandée pour la première période de données disponibles dans le cube.) Vu qu’il n’existe pas suffisamment de données, le calcul renvoie explicitement une valeur null.

• Etat 3 : le calcul ne s’applique pas à la coordonnée courante. C’est, par exemple, le cas lorsque celle-ci fait référence à Year to Date (année en cours) pour le membre AllYears (toutes les années), ou à Month to Date (mois en cours) lors de la visualisation des données pour une année précise. Dans ces cas, les calculs créés par l’assistant renvoient simplement la chaîne « NA » ou l’équivalent local spécifique. Pour déterminer l’état de la coordonnée en cours, vous allez généralement employer la fonction IIF (dans Analysis Services 2000) ou vous pourriez recourir à l’opérateur CASE (nouveau dans Analysis Services 2005). Toutefois, cette approche aboutit à des contrôles dynamiques au cours de l’évaluation d’exécution de chaque cellule, et les expressions MDX résultantes ont tendance à devenir rapidement encombrantes et difficiles à déboguer à mesure que les niveaux d’imbrication augmentent.

Le Business Intelligence Wizard propose une approche nettement plus efficace et élégante. Il fait appel aux nouvelles constructions de syntaxe de script MDX pour définir des portées spécifiques auxquelles chaque calcul s’applique. Comme Analysis Services évalue les instructions SCOPE de manière statique (une fois) lorsque le script MDX s’exécute, cette technique évite intrinsèquement les contrôles superflus d’exécution par cellule.

Pour illustrer cette approche plus performante, supposons qu’un utilisateur demande trois calculs : Year to Date (année en cours), Year Over Year Growth (croissance annuelle) et Twelve Month Moving Average (moyenne mobile sur 12 mois). Les listings 1 à 3 présentent des fragments du script MDX généré par l’assistant pour ces calculs.

Le listing 1 crée les membres calculés. L’assistant affecte une valeur NA pour prendre en compte l’état 3, « le calcul ne s’applique pas aux coordonnées courantes ». (Pour les lecteurs familiers de MDX, notez la nouvelle syntaxe simplifiée pour l’instruction CREATE.)

L’étape suivante, illustrée sur le listing 2, définit la portée de calcul sur les mesures sélectionnées par l’utilisateur. Toutes les mesures non incluses dans l’instruction SCOPE conservent la valeur NA car l’utilisateur a spécifié que les calculs d’analyse temporelle ne s’appliquent pas.

Après avoir spécifié la portée pour les mesures correctes, vous pouvez affecter des expressions plus significatives aux membres calculés. Le listing 3 montre un exemple des affectations MDX correspondant aux calculs sélectionnés. Les affectations, une amélioration MDX clé dans Analysis Services 2005, vous permet d’appliquer des expressions MDX à des cellules existantes dans l’espace du cube. Les valeurs résultantes sont ensuite agrégées comme elles le seraient en l’absence d’expressions.

Téléchargez cette ressource

Guide de Sécurité IA et IoT

Guide de Sécurité IA et IoT

Compte tenu de l'ampleur des changements que l'IA est susceptible d'entraîner, les organisations doivent élaborer une stratégie pour se préparer à adopter et à sécuriser l'IA. Découvrez dans ce Livre blanc Kaspersky quatre stratégies efficaces pour sécuriser l'IA et l'IoT.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010