Mise en œuvre du langage MDX

Slides:



Advertisements
Présentations similaires
LES NOMBRES PREMIERS ET COMPOSÉS
Advertisements

[number 1-100].
Le moteur
26/ 04/ 2007 Auto-Jointure : SELECT * FROM Nom_relation R1 INNER JOIN Nom_relation R2 ON Condition_de_jointure; Problèmes Si des attributs de même nom.
Qualité du Premier Billot. 2 3 Défauts reliés à labattage.
1. Résumé 2 Présentation du créateur 3 Présentation du projet 4.
Le vaccin antigrippal disponible en France :
Classe : …………… Nom : …………………………………… Date : ………………..
Les numéros
ACTIVITES Les fractions (10).
Rover 14½ tables (24/26 étuis) Tables: 14 Rondes: 13 de 2 étuis Étuis au jeu: 28 Saut après: 7 rondes Paire Rover: 15 N-S (ou E-O) Select movement: 1 Mitchell.
Est Ouest Sud 11 1 Nord 1 Individuel 20 joueurs 15 rondes - 30 étuis (arc-en-ciel) Laval Du Breuil Adstock, Québec I-20-15ACBLScore S0515 RondeNE
Est Ouest Sud 11 1 Nord 1 Laval Du Breuil, Adstock, Québec I-17-17ACBLScore S0417 Allez à 1 Est Allez à 4 Sud Allez à 3 Est Allez à 2 Ouest RndNE
Est Ouest Sud 11 1 Nord 1 RondeNE SO
Est Ouest Sud 11 1 Nord 1 Individuel 15 ou 16 joueurs 15 rondes - 30 étuis Laval Du Breuil Adstock, Québec I-16-15ACBLScore S0415 RndNE
Sud Ouest Est Nord Individuel 36 joueurs
Les Prepositions.
1. 2 Informations nécessaires à la création dun intervenant 1.Sa désignation –Son identité, ses coordonnées, son statut 2.Sa situation administrative.
Algèbre relationnelle
Xpath XPath is a language for finding information in an XML document.
La diapo suivante pour faire des algorithmes (colorier les ampoules …à varier pour éviter le « copiage ») et dénombrer (Entoure dans la bande numérique.
1 Efficient Data and Program Integration Using Binding Patterns Ioana Manolescu, Luc Bouganim, Francoise Fabret, Eric Simon INRIA.
Georges Gardarin 1 LE LANGAGE DE REQUETES SQL l Origines et Evolutions l SQL1 86: la base l SQL1 89: l'intégrité l SQL2 92: la nouvelle norme l SQL3 98:
Analyse de la variance à deux facteurs (données déséquilibrées) Michel Tenenhaus.
2 1. Vos droits en tant quusagers 3 1. Vos droits en tant quusagers (suite) 4.
Les fonctions.
Mr: Lamloum Med LES NOMBRES PREMIERS ET COMPOSÉS Mr: Lamloum Med.
Développement d’applications web
Regrouper les Données avec les Fonctions de Groupe
Mise en œuvre du langage MDX - 1 ère partie- Présentation de lexemple et des outils utilisés -1-
1 of of 40 UPDATE UPDATE ON TV ANTENNAS SINCE LAST BOARD MEETING SINCE LAST BOARD MEETING HELD ON FEBRUARY 25, 2010, YOUR BOARD HAS MADE MORE PROGRESS.
1 SERVICE PUBLIC DE LEMPLOI REGION ILE DE France Tableau de bord Juillet- Août 2007.
SUJET D’ENTRAINEMENT n°2
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
LES NOMBRES PREMIERS ET COMPOSÉS
Cours N°2 Base de Données & Langage SQL
1 LE LANGAGE DE REQUETES SQL Origines et Evolutions SQL1 86: la base SQL1 89: l'intégrité.
La Saint-Valentin Par Matt Maxwell.
Unit 4: Les animaux Unit 4: Les animaux.
Mise en œuvre du langage MDX
Systèmes d'information décisionnels
Mise en œuvre du langage MDX
Correction du TP JRubik
Cours N°2 Base de Données & Langage SQL
Tournoi de Flyball Bouin-Plumoison 2008 Tournoi de Flyball
Notre calendrier français MARS 2014
C'est pour bientôt.....
Veuillez trouver ci-joint
F L T R Université catholique de Louvain-la-Neuve Faculté de philosophie et lettres FLTR Faculté de Philosophie et Lettres Présentation décembre 2002 Réalisation:
SUJET D’ENTRAINEMENT n°4
LUNDI – MARDI – MERCREDI – JEUDI – VENDREDI – SAMEDI – DIMANCHE
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
Traitement de différentes préoccupations Le 28 octobre et 4 novembre 2010.
ECOLE DES HAUTES ETUDES COMMERCIALES MARKETING FONDAMENTAL
* Source : Étude sur la consommation de la Commission européenne, indicateur de GfK Anticipations.
SQL partie 3. SQL est un langage de définition de données SQL est un langage de définition de données (LDD), c'est-à-dire qu'il permet de créer des tables.
10 paires -. 9 séries de 3 étuis ( n° 1 à 27 ) 9 positions à jouer 5 tables Réalisé par M..Chardon.
Modélisation des données Niveau conceptuel DON-2 V0-0.
CALENDRIER-PLAYBOY 2020.
USAM BRIDGE H O W E L L -CLASSIQUE
9 paires séries de 3 étuis ( n° 1 à 27 )
Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
Quel est l’intérêt d’utiliser le diagramme de Gantt dans la démarche de projet A partir d’un exemple concret, nous allons pouvoir exploiter plusieurs parties.
Les Chiffres Prêts?
Médiathèque de Chauffailles du 3 au 28 mars 2009.
Tolérance de parallélisme
Systèmes d'information décisionnels
Transcription de la présentation:

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

Le cube Sales (1)

Le cube Sales (2)

Le cube Sales (3)

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

Mondrian Web Application 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]

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

Le langage MDX Syntaxe de base : Exemple: SELECT <specification axe des colonnes> ON COLUMNS, <specification axe des lignes> ON ROWS FROM <NOM CUBE> WHERE <PREDICAT DE SLICE> Exemple: select {[Store]} ON COLUMNS, {[Measures]} ON ROWS from [HR]

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

Exemple de requêtes select {[1997]} ON COLUMNS from [Sales] select {[Time].[1997]} ON COLUMNS from [Sales] select {([Time].[1997], [Product].[Food])}

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

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

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]) } Utilisation d’un prédicat de slice

Le langage MDX Pour accéder à un membre d’une certaine dimension 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

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])}

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]

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

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

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

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]

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

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]

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

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

Il faut produire un fichier XML … (2) <Cube name="Sales"> <Table name="sales_fact_1997"/> ... </Cube> Possibilité d’utiliser <View> et <Join> pour construire des requêtes SQL plus complexes

Il faut produire un fichier XML … (3) Le cube Sales a des mesures : <Measure name="Unit Sales” column="unit_sales" aggregator="sum" datatype="Integer" formatString="#,###"/> <Measure name="Store Sales" column="store_sales" aggregator="sum" datatype="Numeric" formatString="#,###.00"/> 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"

Il faut produire un fichier XML … (4) Le cube Sales a des dimensions : <Dimension name="Gender" foreignKey="customer_id"> <Hierarchy hasAll="true" primaryKey="customer_id"> <Table name="customer"/> <Level name="Gender" column="gender" uniqueMembers="true"/> </Hierarchy> </Dimension> L’attribut foreignKey dans <Dimension> est le nom d’une colonne de la table de faits La <Hierarchy> 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}'.

Il faut produire un fichier XML … (5) Avec éventuellement des hiérarchies multiples : <Dimension name="Time" foreignKey="time_id"> <Hierarchy hasAll="false" primaryKey="time_id"> <Table name="time_by_day"/> <Level name="Year" column="the_year" type="Numeric" uniqueMembers="true"/> <Level name="Quarter" column="quarter" type="Numeric" uniqueMembers="false"/> <Level name="Month" column="month_of_year" type="Numeric" uniqueMembers="false"/> </Hierarchy> <Hierarchy name="Time Weekly" hasAll="false" primaryKey="time_id"> <Table name="time_by_week"/> <Level name="Year" column="the_year" type="Numeric" uniqueMembers="true"/> <Level name="Week" column="week" uniqueMembers="false"/> <Level name="Day" column="day_of_week" type="String" uniqueMembers="false"/> </Hierarchy> </Dimension>

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: <Cube name="Sales"> ... <Dimension name="Product" foreignKey="product_id"> <Hierarchy hasAll="true" primaryKey="product_id" primaryKeyTable="product"> <Join leftKey="product_class_id" rightAlias="product_class" rightKey="product_class_id"> <Table name="product"/> <Join leftKey="product_type_id" rightKey="product_type_id"> <Table name="product_class"/> <Table name="product_type"/> </Join> </Join> ... </Hierarchy> </Dimension> </Cube>

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

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

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

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

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

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

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