Upload
custance-mounier
View
105
Download
0
Embed Size (px)
Citation preview
Mise en œuvre du langage MDX
-3ème partie- Comment concevoir un cube avec
Mondrian…
-1-
-2-
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
-3-
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
-4-
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"
-5-
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 faitsLa <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}'.
-6-
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>
-7-
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>
-8-
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 ...
-9-
Exemple de l’outil Cube Designer
1/ Choix du nom du cube et de la base de données
-10-
Exemple de l’outil Cube Designer
2/ Choix des informations utilisées
-11-
Exemple de l’outil Cube Designer
3/ Définition des mesures
-12-
Exemple de l’outil Cube Designer
4/ Définition des autres dimensions
-13-
Exemple de l’outil Cube Designer
5/ Sauvegarder et exploiter le fichier XML produit