Récupérer des informations à partir d’une base de données tabulaire est facile – il suffit de les interroger avec quelques fonctions DAX de base! Dans cet article, nous allons apprendre à interroger un modèle tabulaire avec certaines des expressions MDX, examiner les résultats de l’interrogation DAX et analyser les données des tables.
Exigences
Les conditions préalables à l’interrogation avec MDX sont SQL Server Management Studio 2014 ou une version ultérieure avec une instance tabulaire SSAS installée et une base de données de modèles tabulaires SSAS déployée.
Préparation de l’environnement
L’interrogation d’une base de données de modèles tabulaires SSAS avec MDX a lieu dans SQL Server Management Studio, dans la fenêtre de requête MDX.
Aperçu des Expressions multidimensionnelles (MDX)
MDX est un langage d’expression qui peut interroger et analyser des données multidimensionnelles dans des cubes OLAP (comme les bases de données de modèles multidimensionnels SSAS, par exemple). Bien qu’il soit principalement conçu pour interroger une base de données de modèles multidimensionnels, il peut également interroger une base de données de modèles tabulaires. D’autre part, les fonctions DAX ne peuvent pas interroger les bases de données de modèles multidimensionnels, car les expressions de requête DAX sont spécifiques aux bases de données de modèles tabulaires.
Structurellement, MDX intègre la syntaxe spécifiée par XMLA. Comme il est similaire à T-SQL, certaines instructions DDL sont présentes, qui peuvent gérer et organiser des constructions de données multidimensionnelles. Cela s’applique uniquement aux bases de données de modèles multidimensionnels SSAS.
En ce qui concerne la complexité, les principaux types d’expressions MDX sont: constant (numérique, chaîne, etc.), scalaire et orienté objet. Ces types se combinent en expressions complexes correspondant à des instructions et des fonctions MDX.
Lorsqu’on parle d’interroger une base de données de modèles tabulaires SSAS, les expressions de cet article sont combinées de type scalaire/constant, en tant qu’expressions cubiques simples. Ces expressions ne récupèrent que les données d’un cube tabulaire, affichent les résultats dans la (les) colonne(s), ordonnent les données et les préparent pour une analyse ultérieure.
Interroger la base de données de modèles tabulaires SSAS avec MDX
Au début de la plupart des requêtes MDX est l’instruction SELECT, suivie d’une instruction FROM. Il est très similaire à celui de T-SQL (par opposition à l’instruction Evaluate dans DAX):
1
2
3
|
choisissez parmi
|
Cette requête est la plus simple et renvoie la valeur 1 (« true »). Cela signifie que la base de données tabulaire AW est présente.
En sélectionnant le nom du produit de la table dans la table de produits, l’instruction SELECT dans T-SQL ressemble à ceci:
1
2
3
|
SÉLECTIONNEZ dbo.Nom du produit À PARTIR DU produit
|
L’instruction correspondante écrite en MDX, serait, logiquement:
1
2
3
4
5
|
sélectionnez
{..}
de
|
Remarquez les accolades {}, qui sont les opérateurs comme la parenthèse dans DAX. Ils joignent les instructions et permettent d’ajouter de la complexité à l’écriture des requêtes. Les requêtes MDX sont insensibles à la casse comme les requêtes DAX.
Cette requête récupérerait la colonne de nom de produit et la table de produit du cube tabulaire AW, mais au lieu d’afficher la colonne unique, elle déclenche une erreur d’exécution:
La raison principale réside dans le type du modèle de base de données et la syntaxe: Les bases de données de modèles multidimensionnels et tabulaires ont toutes deux des dimensions, concept crucial, mais MDX dans sa syntaxe reconnaît les colonnes, les lignes et les autres éléments (spécifiques aux bases de données multidimensionnelles) comme des axes dans la requête – imaginez-les comme les axes x, y, z sur un modèle cube 3D.
Lors de l’interrogation d’une base de données de modèles tabulaires SSAS, MDX doit y reconnaître au moins deux axes : les colonnes et les lignes, pour afficher correctement les données:
1
2
3
4
5
6
|
sélectionnez
{..} sur les colonnes,
{..} sur les lignes
de
|
Maintenant, nous définissons les axes dans la requête, et son résultat s’affiche:
Comme on peut le voir, toutes les valeurs de la colonne Nom du produit s’affichent sur les colonnes du résultat et les lignes indiquent les années correspondantes (dans la colonne Exercice) et le nombre d’articles (dans ce cas, les pièces de vélo). Par conséquent, au lieu de trois axes dans la requête MDX, lors de l’interrogation d’une base de données de modèles tabulaires SSAS, seuls deux axes suffisent pour récupérer les données.
Cet exemple interroge la même table dans les deux axes:
1
2
3
4
5
6
|
sélectionnez
{..} sur les colonnes,
{..} sur les lignes
de
|
Le résultat de la requête montre:
La valeur « 1 » signifie « vrai » dans ce cas, et la valeur « (null) » signifie qu’il n’y a pas de données associées dans la colonne de coût standard.
-
Affichage de la valeur particulière (élément) de la colonne spécifiée et de la fonction NON VIDE
Avec MDX, il est possible de voir la valeur unique de la colonne dans la base de données de modèles tabulaires:
12345sélectionnez{{..}.Item(53)} sur 0à partir deDans cet exemple, le résultat affiche le 53ème élément (choisi au hasard) de la colonne Nom du modèle. Notez l’axe défini « sur 0 » – au lieu de définir des « colonnes » (nous verrons dans d’autres exemples) ou des « lignes », cette valeur unique est placée au début initial de la vue tabulaire du résultat de la requête.
Avec l’inclusion de la fonction NON VIDE, la valeur calculée unique de la mesure particulière (Ventes totales sur Internet) s’affiche:
123456sélectionneznon vide{.} sur les colonnesDE -
Fonction Tuple
Le tuple est un ensemble de données spécifié, une combinaison de deux membres de dimension ou plus (dans ce cas, deux valeurs de la colonne Year).
12345sélectionnez {.. : ..} sur les lignes,{.} sur les colonnesdeNotez les valeurs spécifiées dans la colonne Année faisant la plage d’années, et les valeurs correspondantes de la Marge totale Internet dans le résultat de la requête.
-
Expression ENFANTS et MEMBRES
Cette expression affiche l’ensemble de données liées aux colonnes ou mesures spécifiées. Habituellement, ces valeurs se présentent comme des enfants ou des membres, et cela est lié à la hiérarchie. Ils sont classés hiérarchiquement dans le résultat de la requête.
12345sélectionnez. SUR LES COLONNES,..ENFANTS SUR LES RANGÉESDEDans ce cas, la mesure du fret total sur Internet est basée sur le calcul avec la colonne de fret, et ainsi, ils peuvent se combiner.
Notez que les accolades ne sont pas présentes dans la requête, mais que la requête est toujours valide sans elles.
Pour afficher uniquement les valeurs d’une colonne souhaitée avec l’expression ENFANTS, en correspondance avec une colonne non liée, utilisez cette requête:
123456sélectionnez{..} sur 0,{..enfants} sur 1À PARTIR DERemarque: Dans cette expression, on 0 représente sur les colonnes et on 1 représente sur l’axe des lignes.
Voici un autre exemple utilisant l’expression MEMBRE
12345Sélectionnez. sur les colonnes,..membres sur les lignesDe -
Clause WHERE
L’ajout de la clause WHERE est la seule façon de filtrer des données spécifiques d’une table, et elle est similaire à la clause WHERE dans T-SQL:
1234567sélectionnez{..} sur les colonnes,{..} sur les lignesdeoù {..}La valeur de la colonne Nom de la région du pays, « France » est liée à la ville de la colonne dans le tableau de géographie, et la requête incluse dans le résultat uniquement des villes de France.
L’instruction WHERE est en fait l’axe du trancheur, ce qui ajoute une dimension supplémentaire à la fois dans les bases de données de modèles multidimensionnels et tabulaires.
-
Expression de casse
Cette expression est une comparaison basée sur l’ordre logique des éléments, qui renvoie un résultat de requête.
Dans cet exemple, créez une nouvelle mesure appelée Aperçu du montant des ventes correspondant à une plage de valeurs spécifiée dans la Mesure des ventes totales Internet:
123456789101112131415avec le membre. comme cas.quand 69712.49 puis ‘Super’quand 1045.6 puis ‘Mauvais’else ‘(normal)’endselect{., .} sur les colonnes, {..membres } sur les lignesde
J’espère que vous avez apprécié cet article et que vous êtes heureux d’interroger une base de données de modèles tabulaires SSAS avec MDX!
- Utilisation des expressions Cube et Sous-Cube
- Référence du langage MDX (MDX)
- Bases de requête MDX (Services d’analyse)
- Auteur
- Articles récents
Daniel travaille actuellement pour ApexSQL LLC en tant qu’ingénieur commercial logiciel où il se spécialise dans l’environnement BI.
- Comment surveiller la base de données SQL Server tempdb – 6 juillet 2017
- Comment surveiller la taille totale des index SQL Server – 12 juin 2017
- Comment définir et utiliser des connexions SQL Server cryptées – Mai 8, 2017