Partager via


Concepts clés dans MDX (Analysis Services)

Avant de pouvoir utiliser des expressions multidimensionnelles (MDX) pour interroger des données multidimensionnelles ou créer des expressions MDX dans un cube, il permet de comprendre les concepts et les termes multidimensionnels.

Le meilleur endroit pour commencer est d’obtenir un exemple de synthèse des données que vous connaissez déjà, puis de voir comment MDX y est lié. Voici un tableau croisé dynamique créé dans Excel, rempli de données issues d’un cube d'exemples des services d'analyse.

Tableau croisé dynamique avec mesures et dimensions indiquées

Mesures et dimensions

Un cube Analysis Services se compose de mesures, de dimensions et d’attributs de dimension, tous bien visibles dans l’exemple de tableau croisé dynamique.

Les mesures sont des valeurs de données numériques trouvées dans les cellules, agrégées sous la forme d’une somme, d’un nombre, d’un pourcentage, d’une valeur minimale, d’un maximum ou d’une moyenne. Les valeurs de mesure sont dynamiques, calculées en temps réel, en réponse à la navigation utilisateur et à l’interaction avec le tableau croisé dynamique. Dans cet exemple, les cellules affichent les montants des ventes de revendeurs qui augmentent ou diminuent selon que vous étendez ou rétractez les axes. Pour toute combinaison de Date (année, trimestre, mois ou date) et Sales Territory (groupe pays, pays, région) vous pouvez obtenir un montant des ventes de revendeurs, additionné pour ce contexte particulier. D’autres termes synonymes de mesures sont des faits (dans les entrepôts de données) et des champs calculés (dans des modèles de données tabulaires et Excel).

Les dimensions se trouvent sur les axes de colonne et de ligne d’un tableau croisé dynamique, ce qui donne la signification de la mesure. Les dimensions sont analogues aux tables dans un modèle de données relationnelles. Parmi les exemples courants d’une dimension, citons Time, Geography, Products, Customers, Employees, et ainsi de suite. Cet exemple comporte deux dimensions, Sales Territory sur les lignes et Date en haut, mais vous pouvez facilement faire glisser et supprimer d’autres dimensions associées à Reseller Sales, telles que promotions ou produits, pour afficher les performances des ventes le long de ces dimensions. Votre capacité à explorer les données de manière intéressante dépend des dimensions que vous créez et de leur lien avec les tables de faits dans votre source de données.

Les attributs de dimension sont les éléments nommés d’une dimension, similaires aux colonnes d’une table. Dans cet exemple, les attributs de dimension Sales Territory se composent de Country Group (Europe, Amérique du Nord, Pacifique), Pays (Canada, États-Unis) et Région (Centre, Nord-Est, Nord-Ouest, Sud-Est, Sud-Ouest).

Chaque attribut a une collection de valeurs de données ou de membres, associée. Dans notre exemple, les membres de l’attribut Country Group sont Europe, Amérique du Nord et Pacifique. Les membres font référence aux valeurs de données réelles qui appartiennent à un attribut.

Remarque

L’un des aspects de la modélisation des données consiste à formaliser les modèles et les relations qui existent déjà dans les données elles-mêmes. Lorsque vous travaillez avec des données qui tombent dans une hiérarchie naturelle, comme c’est le cas avec les pays-régions-villes, vous pouvez formaliser cette relation en créant une relation d’attribut. Une relation d’attribut est une relation un-à-plusieurs entre les attributs, par exemple une relation entre un état et une ville - un état a de nombreuses villes, mais une ville appartient à un seul état. La création de relations d’attributs dans le modèle accélère les performances des requêtes. Il est donc recommandé de les créer si les données le prennent en charge. Vous pouvez créer une relation d’attribut dans le Concepteur de dimensions dans SQL Server Data Tools. Consultez Définir des relations d’attribut.

Dans Excel, les métadonnées de modèle s’affichent dans la liste des champs de tableau croisé dynamique. Comparez le tableau croisé dynamique ci-dessus à la liste des champs ci-dessous. Notez que la liste de champs contient Sales Territory, Group, Country, Region (métadonnées), tandis que le tableau croisé dynamique contient uniquement les membres (valeurs de données). Connaître l’apparence des icônes peut vous aider à associer facilement les parties d’un modèle multidimensionnel à un tableau croisé dynamique dans Excel.

Liste de champs de tableau croisé dynamique

Hiérarchies d’attributs

Presque sans y penser, vous savez que les valeurs d’un tableau croisé dynamique montent ou descendent lorsque vous développez et réduisez les niveaux le long de chaque axe, mais qu'est-ce qui provoque cela ? La réponse réside dans les hiérarchies d’attributs.

Réduisez tous les niveaux et notez les totaux généraux pour chaque groupe de pays et année civile. Cette valeur est dérivée d’un élément appelé (All) membre au sein d’une hiérarchie. Le membre (All) est la valeur calculée de tous les membres d’une hiérarchie d’attributs.

  • Le membre (Tous) pour tous les groupes de pays et les dates combinés est de 80 450 596,98 $.

  • Le total pour tous les membres pour CY2008 est de 16 038 062,60 $

  • Le membre (tous) pour le Pacifique est de 1 594 335,38 $.

Les agrégations comme celles-ci sont précalculées et stockées à l’avance, qui font partie du secret pour accélérer les performances des requêtes d’Analysis Services.

Tableau croisé dynamique avec tous les membres appelés

Développez la hiérarchie et, finalement, vous accédez au niveau le plus bas. C’est ce que l’on appelle le membre feuille. Un membre feuille est membre d’une hiérarchie qui n’a pas de descendants. Dans cet exemple, l’Australie est le membre feuille.

Tableau croisé dynamique avec le tableau croisé dynamique appelé membre feuille

Tout ce qu’il précède est appelé membre parent. Pacific est le parent de l’Australie.

Composants d’une hiérarchie d’attributs

Ensemble, tous ces concepts s’appuient sur le concept d’une hiérarchie d’attributs. Une hiérarchie d’attributs est une arborescence de membres d’attributs contenant les niveaux suivants :

  • Un niveau feuille qui contient chaque membre distinct d’un attribut, chaque membre du niveau feuille étant aussi appelé membre feuille.

  • Niveaux intermédiaires si la hiérarchie d’attributs est une hiérarchie parent-enfant (plus loin).

  • Un membre (Tout) qui contient la valeur agrégée de l'ensemble des attributs enfant. Si vous le souhaitez, vous pouvez masquer ou désactiver le niveau (Tout) lorsqu’il n’est pas logique pour les données. Par exemple, bien que le code produit soit numérique, il n’est pas judicieux de additionner ou de calculer la moyenne ou d’agréger tous les codes de produit.

Remarque

Les développeurs décisionnels définissent souvent des propriétés sur la hiérarchie d’attributs pour obtenir certains comportements dans les applications clientes ou obtenir certains avantages en termes de performances. Par exemple, vous devez définir AttributeHierarchyEnabled=False sur les attributs pour lesquels le membre (All) n’a pas de sens. Vous pouvez également simplement masquer le membre (All), auquel cas vous devez définir AttributeHierarchyVisible=False. Pour plus d’informations sur les propriétés, consultez la référence des propriétés d’attribut de dimension .

Dans le tableau croisé dynamique (au moins dans cet exemple), les axes de ligne et de colonne s’étendent pour afficher des niveaux inférieurs d’attributs. Une arborescence extensible est obtenue par le biais de hiérarchies de navigation que vous créez dans un modèle. Dans l’exemple de modèle AdventureWorks, la dimension Sales Territory a une hiérarchie à plusieurs niveaux qui commence par un groupe de pays, suivie du pays, suivie de la région.

Comme vous pouvez le voir, les hiérarchies sont utilisées pour fournir un chemin de navigation dans un tableau croisé dynamique ou d’autres objets de synthèse des données. Il existe deux types de base : équilibré et déséquilibré.

Hiérarchies équilibrées

Tableau croisé dynamique avec hiérarchie équilibrée mise en évidence Une hiérarchie équilibrée est une hiérarchie dans laquelle le même nombre de niveaux existe entre le niveau supérieur et tout membre feuille.

Une hiérarchie naturelle est une hiérarchie qui émerge naturellement des données sous-jacentes. Un exemple courant est Country-Region-State ou Year-Month-Date ou Category-Subcategory-Model, où chaque niveau subordonné circule de manière prévisible à partir du parent.

Dans un modèle multidimensionnel, la plupart des hiérarchies sont des hiérarchies équilibrées, et beaucoup d’entre elles sont également des hiérarchies naturelles.

Un autre terme de modélisation associé est un user-defined hierarchy, souvent utilisé comme contraste avec les hiérarchies d’attributs. Cela signifie simplement une hiérarchie créée par le développeur BI, par opposition aux hiérarchies d’attributs générées automatiquement par Analysis Services lorsque vous définissez un attribut.

Hiérarchies déséquilibrées

Tableau croisé dynamique avec hiérarchie déstructurée soulignée Une hiérarchie irrégulière ou une hiérarchie déséquilibrée est une hiérarchie dans laquelle un nombre différent de niveaux existe entre le niveau supérieur et les membres feuille. Là encore, il s’agit d’une hiérarchie créée par le développeur BI, mais dans ce cas, il existe des lacunes dans les données.

Dans l'exemple de modèle AdventureWorks, Sales Territory illustre une hiérarchie irrégulière, car les États-Unis ont un niveau supplémentaire (Régions) qui n'existe pas pour d'autres pays dans cet exemple précis.

Les hiérarchies irrégulières sont un défi pour les développeurs BI si l’application cliente ne gère pas les hiérarchies irrégulières de façon élégante. Dans le modèle Analysis Services, vous pouvez créer une hiérarchie parent-enfant qui définit explicitement une relation entre les données multiniveaux, éliminant toute ambiguïté quant à la façon dont un niveau se rapporte à la suivante. Pour plus d’informations, consultezParent-Child Hiérarchie .

Attributs clés

Les modèles sont une collection d’objets connexes qui s’appuient sur des clés et des index pour créer les associations. Les modèles Analysis Services ne sont pas différents. Pour chaque dimension (rappelez-vous qu’elle équivaut à une table dans un modèle relationnel), il existe un attribut clé. L’attribut clé principale est utilisé dans les relations de clés étrangères avec la table de faits (groupe de mesures). Tous les attributs non clés de la dimension sont liés (directement ou indirectement) à l’attribut clé.

Souvent, mais pas toujours, l’attribut clé est également l’attribut granularité. La granularité fait référence au niveau de détail ou de précision dans les données. Là encore, un exemple courant offre le chemin le plus rapide à comprendre. Tenez compte des valeurs de date : pour les ventes quotidiennes, vous avez besoin de valeurs de date spécifiées au jour ; pour les quotas, des valeurs trimestrielles peuvent être suffisantes, mais si vos données analytiques consistent en des résultats de course provenant d’un événement sportif, le niveau de précision pourrait très bien nécessiter les millisecondes. Le niveau de précision dans vos valeurs de données est la granularité.

La devise est un autre exemple : une application financière peut suivre les valeurs monétaires à de nombreuses décimales, tandis que la collecte de fonds de votre école locale peut avoir uniquement besoin de valeurs à l'euro le plus proche. Comprendre le grain est important, car vous souhaitez éviter de stocker des données inutiles. La réduction des millisecondes d’un horodatage, ou des centimes d’un montant des ventes, peut économiser du temps de stockage et de traitement lorsque ce niveau de détail n’est pas pertinent pour votre analyse.

Pour définir l’attribut de granularité, utilisez l’onglet Utilisation de la dimension dans le Concepteur de cube dans SQL Server Data Tools. Dans l’exemple de modèle AdventureWorks, l’attribut clé de la dimension Date est la clé Date. Pour Sales Orders, l’attribut de granularité est équivalent à l’attribut clé. Pour les cibles de ventes, le niveau de granularité est trimestriel et l’attribut de granularité est donc défini sur Calendar Quarter, en conséquence.

Modèle montrant l’attribut de granularité

Remarque

Si l’attribut de granularité et l’attribut clé sont différents, tous les attributs non clés doivent être liés, directement ou indirectement, à l’attribut de granularité. Dans un cube, l’attribut de granularité définit la granularité d’une dimension.

Étendue de requête (espace cube)

L’étendue d’une requête fait référence aux limites dans lesquelles les données sont sélectionnées. Il peut aller de l’ensemble du cube (un cube est le plus grand objet de requête) à une cellule.

L’espace de cube est le produit des membres des hiérarchies d’attributs d’un cube avec les mesures du cube.

Le sous-cube est un sous-ensemble d’un cube qui représente une vue filtrée du cube. Les sous-cubes peuvent être définis avec une instruction Scope dans le script de calcul MDX, ou dans une clause de sous-sélection dans une requête MDX ou en tant que cube de session.

La cellule fait référence à l’espace à l’intersection d’un membre de la dimension de mesures et d’un membre de chaque hiérarchie d’attributs dans un cube.

Autres termes de modélisation

Cette section est une collection de concepts et de termes qui ne tiennent pas facilement dans d’autres sections, mais vous devez toujours en savoir plus.

Le membre calculé est un membre de dimension défini et calculé au moment de la requête. Un membre calculé peut être défini dans une requête utilisateur ou dans le script de calcul MDX et stocké sur le serveur. Un membre calculé correspond aux lignes de la table de dimension de la dimension dans laquelle elle est définie.

Distinct Count est un type spécial de mesure utilisé pour les éléments de données qui ne doivent être comptés qu’une seule fois. L’exemple de modèle AdventureWorks inclut des mesures de comptage distinctes pour les commandes Internet, les commandes de revendeur et les commandes commerciales.

Les groupes de mesures sont une collection d’une ou plusieurs mesures. La plupart du temps, elles sont définies par l’utilisateur et vous les utilisez pour maintenir les mesures associées ensemble. Les mesures de comptage distinctes sont une exception. Celles-ci sont toujours placées dans un groupe de mesures dédié qui contient uniquement la mesure distincte. Vous ne pouvez pas voir le groupe de mesures dans l’exemple d’illustration de tableau croisé dynamique, mais il apparaît dans une liste de champs de tableau croisé dynamique, sous la forme d’une collection nommée de mesures.

La dimension Mesures est la dimension qui contient toutes les mesures d’un cube. Il n’est pas exposé dans un modèle multidimensionnel que vous générez dans SQL Server Data Tools, mais il existe tout de même. Étant donné qu’il contient des mesures, tous les membres d’une dimension de mesures sont généralement agrégés (généralement par somme ou par nombre).

Dimensions de base de données et dimensions de cube. Dans un modèle, vous pouvez définir des dimensions autonomes qui sont ensuite incluses dans n’importe quel nombre de cubes dans le même modèle. Lorsque vous ajoutez une dimension à un cube, elle est appelée dimension de cube. En soi dans un projet, en tant qu’élément autonome dans l’Explorateur d’objets, il s’agit d’une dimension de base de données. Pourquoi faire la distinction ? Étant donné que vous pouvez définir des propriétés sur celles-ci indépendamment. Dans la documentation produit, vous verrez les deux termes utilisés. Il est donc utile de comprendre ce qu’ils signifient.

Étapes suivantes

Maintenant que vous avez une compréhension des concepts et de la terminologie importants, vous pouvez passer à ces rubriques supplémentaires qui expliquent davantage les concepts fondamentaux dans Analysis Services :

Voir aussi

Espace cube
Tuples
Existe automatiquement
Travail avec les membres, les tuples et les ensembles (MDX)
Totaux visuels et totaux non visuels
Notions de base des requêtes MDX (Analysis Services)
Principes de base des scripts MDX (Analysis Services)
Référence du langage MDX (MDX)
Informations de référence sur les expressions multidimensionnelles (MDX)