La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

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

Présentations similaires


Présentation au sujet: "Mise en œuvre du langage MDX -1 ère partie- Présentation de l’exemple et des outils utilisés -1-"— Transcription de la présentation:

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

2 Le cube Sales (1) -2-

3 Le cube Sales (2) -3-

4 Le cube Sales (3) -4-

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

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

7 Mise en œuvre du langage MDX -2 ème partie- Les bases du langage de requête MDX -7-

8 -8- Le langage MDX SELECT ON COLUMNS, ON ROWS FROM WHERE select {[Store]} ON COLUMNS, {[Measures]} ON ROWS from [HR] Syntaxe de base : Exemple:

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

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

11 Exemples de requêtes MDX select { ( [Product].[All Products].[Food].[Baked Goods], [1997])} on columns from [Sales] ) } select { ( [Measures].[Unit Sales], [Product].[All Products].[Food].[Baked Goods]), ( [Measures].[Store Sales], [Product].[All Products].[Food].[Baked Goods]) } on columns from [Sales] -11-

12 Exemples de requêtes MDX select { ([Measures].[Unit Sales], [Product].[Food]), ([Measures].[Unit Sales], [Product].[Drink]) } on COLUMNS, { ([Time].[1997]), ([Time].[1998]) } on ROWS from [Sales] -12-

13 Exemples de requêtes MDX 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

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

15 -15- Le Langage MDX 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])}

16 -16- Le Langage MDX 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]

17 -17- Le langage MDX 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

18 -18- Le Langage MDX Exemple pour l’opérateur DESCENDANTS SELECT {([Measures].[Store Sales])} On COLUMNS, DESCENDANTS ([Time].[1998], [Quarter]) ON ROWS FROM [SALES]

19 -19- Le Langage MDX 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 ROWS FROM SALES WHERE ([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

20 -20- Le Langage MDX 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 ROWS from [Sales] where [Store].[All Stores].[USA].[WA]

21 -21- Le Langage MDX Fonctions de calcul SUM ( set, expression ) MAX ( set, expression ) AVG( set, expression ) MIN( set, expression ) AVG([Time].Members, [Measures].[Store Profit])

22 -22- Le Langage MDX 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]

23 Mise en œuvre du langage MDX -3 ème partie- Comment concevoir un cube avec Mondrian… -23-

24 -24- Il faut produire un fichier XML … (1) spécifiant : le nom du cube les Measures les Dimensions -> Shared dimensions -> Multiple Hierarchies -> Parent-child hierarchies -> Snowflake schema les membres calculés les fonctions définies

25 -25- Il faut produire un fichier XML … (2)... CubeTableCube Possibilité d’utiliser et pour construire des requêtes SQL plus complexes

26 -26- Il faut produire un fichier XML … (3) Le cube Sales a des mesures : Measure Measure Chaque mesure a un nom, correspond à une colonne dans la table de faits et spécifie un opérateur d’agrégation tel que "sum", "count", "min", "max", "avg", and "distinct count"

27 -27- Il faut produire un fichier XML … (4) Le cube Sales a des dimensions : DimensionHierarchyTableLevelHierarchyDimension L’attribut foreignKey dans est le nom d’une colonne de la table de faits La a un attribut clé primaire (primaryKey) Par défaut, la Hiérarchie a un élément de plus haut niveau nommé ‘All’ avec un seul membre appelé 'All {hierarchyName}'.

28 -28- Il faut produire un fichier XML … (5) Avec éventuellement des hiérarchies multiples : DimensionHierarchyTableLevel Hierarchy TableLevel HierarchyDimension

29 -29- Il faut produire un fichier XML … (6) Un exemple de schéma en étoile (La dimension Produit est constituée de 3 tables : product, product_class, product_type : CubeDimensionHierarchyTable HierarchyDimensionCube

30 -30- Il faut produire un fichier XML … (6) 1/ La constitution d’un tel fichier est complexe 2/ Il existe des outils facilitant l’écriture du fichier XML (vérification de la syntaxe) 3/ Il existe des générateurs (wizards) offrant une interface utilisateur pour générer automatiquement le fichier XML selon la bonne syntaxe : les outils existants sont cependant limités...

31 -31- Exemple de l’outil Cube Designer 1/ Choix du nom du cube et de la base de données

32 -32- Exemple de l’outil Cube Designer 2/ Choix des informations utilisées

33 -33- Exemple de l’outil Cube Designer 3/ Définition des mesures

34 -34- Exemple de l’outil Cube Designer 4/ Définition des autres dimensions

35 -35- Exemple de l’outil Cube Designer 5/ Sauvegarder et exploiter le fichier XML produit

36 Mise en œuvre du langage MDX -6 ème partie- A vous de jouer … -36-


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

Présentations similaires


Annonces Google