mise en œuvre du langage mdx - 1 ère partie- présentation de lexemple et des outils utilisés -1-
TRANSCRIPT
![Page 1: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/1.jpg)
Mise en œuvre du langage MDX
-1ère partie- Présentation de l’exemple
et des outils utilisés
-1-
![Page 2: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/2.jpg)
Le cube Sales (1)
-2-
![Page 3: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/3.jpg)
Le cube Sales (2)
-3-
![Page 4: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/4.jpg)
Le cube Sales (3)
-4-
![Page 5: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/5.jpg)
JRubik
-5-
Une application Java intégrant le moteur OLAP Mondrian
Démonstration sur un exemple :
Select {[Measures].[Unit Sales]} ON COLUMNS,
{[Store].[All Stores]} ON ROWS
from [Sales]
![Page 6: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/6.jpg)
Mondrian Web Application
-6-
Une application Web (Servlet Tomcat) intégrant le moteur OLAP Mondrian
Démonstration sur un exemple :
Select {[Measures].[Unit Sales]} ON COLUMNS,
{[Store].[All Stores]} ON ROWS
from [Sales]
![Page 7: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/7.jpg)
Mise en œuvre du langage MDX
-2ème partie- Les bases du langage de
requête MDX
-7-
![Page 8: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/8.jpg)
-8-
Le langage MDX
SELECT <specification axe des colonnes> ON COLUMNS, <specification axe des lignes> ON ROWS FROM <NOM CUBE> WHERE <PREDICAT DE SLICE>
select {[Store]} ON COLUMNS, {[Measures]} ON ROWSfrom [HR]
Syntaxe de base :
Exemple:
![Page 9: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/9.jpg)
Le Langage MDX : les constructeurs
Un membre Une valeur possible de dimension
[1997] [Canada] [Drink] [All Stores] Un chemin dans la hiérarchie d’une dimension
[Time].[1997] [Product].[Food] [Product].[Food].[Baked Goods]
[Product].[All Products].[Food].[Baked Goods]
Un tuple: Une liste de membres
([Time].[1997], [Product].[Food]) Un set : Un ensemble ordonné de tuples
{ ([Measures].[Unit Sales], [Product].[All Products].[Food].[Baked Goods]),
([Measures].[Store Sales], [Product].[All Products].[Food].[Baked Goods])}
Une spécification d’axe c’est un set
-9-
![Page 10: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/10.jpg)
Exemple de requêtes
select {[1997]} ON COLUMNS from [Sales]
select {[Time].[1997]} ON COLUMNS from [Sales]
select {([Time].[1997], [Product].[Food])} ON COLUMNS from [Sales]
-10-
![Page 11: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/11.jpg)
Exemples de requêtes MDX
select {([Product].[All Products].[Food].[Baked Goods],
[Time].[1997])} ON COLUMNSfrom [Sales]
-11-
select {([Measures].[Unit Sales], [Product].[All Products].[Food].[Baked Goods]), ([Measures].[Store Sales], [Product].[All Products].[Food].[Baked Goods])} ON COLUMNSfrom [Sales]
![Page 12: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/12.jpg)
select { ([Measures].[Unit Sales], [Product].[Food]), ([Measures].[Unit Sales], [Product].[Drink]) } on COLUMNS , { ([Time].[1997]), ([Time].[1998]) } on ROWS from
[Sales]
-12-
Exemples de requêtes MDX
![Page 13: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/13.jpg)
select { ([Measures].[Unit Sales], [Product].[Food]), ([Measures].[Unit Sales], [Product].[Drink]) } on columns, {([Time].[1997]), ([Time].[1998])} on rows from [Sales] where { ([Gender].[M]) }
-13-
Utilisation d’un prédicat de slice
[Measures].[Unit Sales]
[Product].[Food]
[Product].[Drink]
Exemples de requêtes MDX
![Page 14: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/14.jpg)
-14-
Le langage MDX
Opérateur .• Pour accéder à un membre d’une certaine
dimension[Time].[1997] member 1997 of the level Year
• Pour accéder à un certain niveau d’une dimension
[Time].[Year] Year Level
• Pour accéder à une fonction[Time].[Year].Members operation
Members
![Page 15: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/15.jpg)
-15-
A propos des tuples :
Ils doivent être cohérents :
- Chaque tuple spécifié doit inclure des membres appartenant à une même dimension
- Les tuples spécifiés peuvent correspondre à différents niveaux de hiérarchie
{([Time].[1997], [Store].[Canada]), ([Time].[1998], [Store].[USA]), ([Time].[1998].[9-1998], [Store].[Canada])}
Le langage MDX
![Page 16: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/16.jpg)
-16-
CROSSJOIN : Un axe peut être défini comme le produit
cartésien de différents ensembles
select { CrossJoin (
{([Time].[1997].[Q1]), ([Time].[1997].[Q2])},
{([Measures].[Unit Sales]), ([Measures].[Store Sales])} ) }
on columns,
{ ([Product].[Drink].Children) } on rows
from [Sales]
Le langage MDX
![Page 17: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/17.jpg)
-17-
Les opérations :
• x.Members = ensemble des membres d’un niveau ou d’une dimension donnée
• x.Children = ensemble des enfants du membre x
• DESCENDANTS (x, l) = ensemble des descendants d’un membre x au niveau l
Le langage MDX
![Page 18: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/18.jpg)
-18-
Exemple pour l’opérateur DESCENDANTS
SELECT {([Measures].[Store Sales])} On COLUMNS,
DESCENDANTS ([Time].[1998], [Quarter]) ON ROWS
FROM [SALES]
Le langage MDX
![Page 19: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/19.jpg)
-19-
A propos du slicer
• WHERE permet de sélectionner une tranche du cube
• On spécifie la tranche en utilisant des membres qui ne font pas partie des dimensions utilisées au niveau des axes ON ROWS et ON COLUMNS
SELECT {([Measures].[Unit Sales])} ON COLUMNS, {([Time].[Year].Members)} ON ROWSFROM SALESWHERE ([Store].[USA].[WA]) -> tranche de l’état de WA
Il n’est pas autorisé de préciser une tranche avec plus d’un membre d’une même dimension
Le langage MDX
![Page 20: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/20.jpg)
-20-
Membres calculés• Ils sont utilisés pour calculer des mesures et faire des comparaisons
with member [Measures].[Store Profit] as '([Measures].[Store Sales] - [Measures].[Store Cost])'
select {[Measures].[Store Profit]} ON COLUMNS, {[Time].[Year].Members} ON ROWSfrom [Sales]where [Store].[All Stores].[USA].[WA]
Le langage MDX
![Page 21: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/21.jpg)
-21-
Fonctions de calcul
• SUM (set, expression)• MAX (set, expression)• AVG(set, expression)• MIN(set, expression)
AVG([Time].Members, [Measures].[Store Profit])
Le langage MDX
![Page 22: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-](https://reader035.vdocuments.mx/reader035/viewer/2022062607/551d9da2497959293b8d1ccd/html5/thumbnails/22.jpg)
-22-
Un exemple de calcul
with member [Store].[USA+Canada] as 'Sum({[Store].[All Stores].[USA],
[Store].[All Stores].[Canada]}, [Measures].[Store Sales])'
select {[Store].[All Stores].[USA], [Store].[All Stores].[Canada],
[Store].[USA+Canada]}
ON COLUMNS,
Descendants([Time].[1997], [Time].[Quarter])
ON ROWS
from [Sales]
Le langage MDX