23
Mise en œuvre du langage MDX -1 ère partie- Présentation de l’exemple et des outils utilisés -1-

Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-

Embed Size (px)

Citation preview

Page 1: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-

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-

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-

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-

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-

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-

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-

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-

-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-

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-

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-

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-

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-

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-

-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-

-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-

-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-

-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-

-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-

-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-

-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-

-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-

-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

Page 23: Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-

Mise en œuvre du langage MDX

-3ème partie- A vous de jouer …

-23-