Scénarios de logique métier Maintenant que vous avez une idée de la façon de créer et d'appliquer la logique métier de base dans MDX et DAX, considérez les scénarios de calcul suivants pour comparer et évaluer les expériences de modélisation tabulaire et multidimensionnelle.
Logique de hiérarchie Comme indiqué précédemment, les hiérarchies permettent aux utilisateurs professionnels de monter ou descendre dans la hiérarchie pendant l'analyse de données. Dans certains cas, il est utile de créer des calculs qui parcourent la hiérarchie. Par exemple, imaginez une dimension de produit comportant une catégorie de produit, une sous-catégorie de produit, et le produit lui-même. Pour chaque niveau dans la hiérarchie, vous souhaitez ajouter un calcul qui mesure la façon dont les membres de chaque niveau contribuent au total des ventes du parent. Cela s'appelle un calcul de pourcentage du parent, étant donné qu'il doit parcourir la hiérarchie pour retourner la valeur souhaitée.
MDX et DAX fournissent des fonctions pour travailler sur les données organisées dans une hiérarchie, et créer des calculs de pourcentage du parent ; toutefois, les fonctions MDX semblent plus simples et faciles à utiliser. Par exemple, dans MDX, c'est cette expression qui donne le pourcentage du parent dans la dimension Product.
[Measures].[Sales Amount] / ([Product].[Product Categories].CurrentMember.Parent, [Measures].[Sales Amount])
Dans DAX, on utilise l'expression plus complexe qui suit pour créer le même calcul de pourcentage du parent.
IF(
ISFILTERED(Product[Product])
,[Sales]/CALCULATE([Sales],ALL(Product[Product]))
,IF(
ISFILTERED(Product[Subcategory])
,[Sales]/CALCULATE([Sales],ALL(Product[Subcategory]))
,1
)
)
Cumuls personnalisés Bien qu'une somme des données uniforme soit applicable dans de nombreux scénarios, dans certaines situations, vous pouvez souhaiter exercer un contrôle plus précis sur le cumul de vos données. Par exemple, c'est le cas des modèles de finance où vous avez un graphique des comptes (généralement, dans un format parent-enfant) avec une logique de cumul spécifique requises pour chaque compte. Comme indiqué ici, pour calculer la marge brute (Gross Margin) on prend les ventes nettes (Net Sales) moins le coût total des ventes (Total Cost of Sales), et pour calculer le bénéfice d'exploitation (Operating Profit), on prend la marge brute (Gross Margin) moins les frais d'exploitation (Operating Expenses).
Les modèles multidimensionnels fournissent non seulement la prise en charge native des hiérarchies parent-enfant, mais également une intelligence comptable intégrée, qui vous permet d'appliquer facilement des opérateurs unaires et des formules MDX au niveau du compte, et de piloter le cumul de données.
Dans les modèles tabulaires, l'intelligence comptable ou parent-enfant n'est pas intégrée, mais vous pouvez créer votre propre solution au moyen d'une combinaison de colonnes et de mesures calculées pour générer la hiérarchie parent-enfant et appliquer le cumul personnalisé.
Mesures semi-additives De manière générale, les mesures semi-additives sont celles qui agrègent uniformément toutes les dimensions à l'exception de la date. Par exemple, le solde d'ouverture et le solde de clôture sont des mesures semi-additives. Pour ces mesures, vous devez appliquer une logique spéciale pour synthétiser correctement les données par période de temps. En effet, le solde du stock en cours du mois de mars n'est pas la somme du stock en cours de tous les jours du mois de mars. En outre, ce solde doit également fonctionner correctement pour tous les attributs de date, comme le trimestre et l'année. Par exemple, le solde du stock en cours du Trimestre 1 doit être le même que celui enregistré le 31 mars (en supposant que le 31 mars est le dernier jour du Trimestre 1).
Les modèles multidimensionnels prennent directement en charge les mesures semi-additives avec des fonctions d'agrégation spéciales comme First Child, Last Child, FirstNonEmptyChild, et LastNonEmptyChild. Si ces fonctions d'agrégation ne répondent pas à vos besoins de logique spécifiques, vous pouvez également écrire des formules MDX personnalisées.
Les modèles tabulaires proposent des fonctions similaires telles que ClosingBalanceMonth et OpeningBalanceMonth. Il existe des fonctions supplémentaires qui s'appliquent à tous les autres attributs de date, comme le trimestre et l'année.
Time Intelligence Presque toutes les solutions BI que vous rencontrez requièrent l'assistant Time Intelligence. Les fonctions Time Intelligence permettent de calculer des résumés de l'année jusqu'à ce jour et des comparaisons avec l'année précédente. MDX et DAX fournissent des fonctions Time Series ; toutefois, chacune utilise une conception du modèle de données légèrement différente.
Les modèles multidimensionnels fournissent des fonctions Time Intelligence prêtes à l'emploi au moyen de l'Assistant Analysis Services Business Intelligence. Avec cet Assistant, les calculs de temps peuvent être ajoutés à la création de la dimension de temps et appliqués à toutes les mesures du modèle. Bien que l'assistant ne soit qu'un moyen parmi d'autres de créer des calculs de temps, vous pouvez également écrire vos propres calculs MDX dans un modèle multidimensionnel.
Dans les modèles tabulaires, bien qu'il n'y ait pas d'assistant de création de calculs Time Intelligence, vous pouvez les créer manuellement en créant des formules DAX qui exploitent plusieurs fonctions, dont TOTALMTD, TOTALYTD et SAMEPERIODSLASTYEAR.
Indicateurs de performance clés Les indicateurs de performance clés (KPI) identifient les mesures spéciales que vous souhaitez surveiller par rapport à une valeur cible, au moyen d'un indicateur visuel tel qu'un feu rouge. Les modèles tabulaires et multidimensionnels prennent en charge l'un comme l'autre les indicateurs de performance clés. Les deux permettent d'affecter une cible pour une mesure et de comparer la valeur réelle à la cible pour évaluer l'état des performances de la mesure. Les modèles multidimensionnels permettent en outre d'évaluer la tendance de l'indicateur de performance clé et d'affecter un indicateur visuel distinct pour représenter la façon dont il évolue dans le temps.
Conversion monétaire Les conversions monétaires permettent de convertir des données monétaires d'une ou plusieurs devises sources dans une ou plusieurs devises de déclaration. Par exemple, si les transactions de vente de votre organisation sont en EUR, en JPY et en USD, pour consolider la déclaration des ventes de l'ensemble de votre entreprise, vous devez convertir les transactions de vente dans une ou plusieurs devises de déclaration.
Pour implémenter des conversions monétaires dans l'un des deux types de modélisation, vous devez avoir accès aux taux de change et inclure ces données dans votre modèle.
Dans les modèles multidimensionnels, vous pouvez utiliser l'Assistant Analysis Services Business Intelligence pour créer des calculs de conversion monétaire MDX optimisés pour prendre en charge plusieurs sources et devises de déclaration. Dans un modèle tabulaire, vous pouvez créer votre propre solution de conversion monétaire en créant des formules DAX.
Jeux nommés Dans la modélisation multidimensionnelle, les jeux nommés vous permettent de retourner un ensemble de membres de dimension fréquemment utilisés dans des applications de reporting. Par exemple, vous pouvez créer un jeu nommé pour retourner les 12 derniers mois. En créant ce jeu nommé dans votre cube, vous pouvez définir de manière centralisée la logique du jeu, pour accéder au jeu à partir de n'importe quelle application de reporting, et pour simplifier la logique enregistrée dans votre application de reporting. Pour créer le jeu nommé des 12 derniers mois (Last 12 Months), vous pouvez utiliser l'expression MDX suivante.
Create Set CurrentCube.[Last 12 Months] As Max([Date].[Calendar].[Month]).Lag(11):Max([Date].[Calendar].[Month])
Les jeux nommés ne sont pas disponibles dans la modélisation tabulaire.
|