PDF Semaine10-5
PDF Semaine10-5
PDF Semaine10-5
de données
Daniel Lemire
SEMAINE 10
Introduction à MDX
1Si vous suivez d’autres liens, vous obtiendrez peut-être une erreur.
LECTURE 10. INTRODUCTION À MDX 5
utiliserons ici les données test fournies par défaut avec Mon-
drian.) Les requêtes MDX vont dans la boı̂te de saisie. On exé-
cute la commande en pressant le bouton process MDX query.
Vous pouvez ignorer le reste de l’interface (Sample Query, show
query, etc.).
• Lorsque vous avez terminé votre travail, exécutez le script
bin/shutdown.bat sous Windows ou bin/shutdown.sh sous
Linux ou Mac OS afin de fermer Tomcat. Si vous ne faites pas
cette opération, et ne fermez pas votre ordinateur, Tomcat con-
tinuera de fonctionner, utilisant ainsi de la mémoire sur votre
ordinateur. De plus, si vous tentez de repartir Tomcat sans
d’abord l’avoir fermé, vous obtiendrez un message d’erreur.
10.6. Données
Normalement, dans une entreprise, il faut créer ses propres cubes. La
collecte de données et la configuration des dimensions, qui forment les
cubes est une opération un peu fastidieuse. Il faut aussi installer et
choisir un moteur de bases de données, il faut charger les données,
configurer les index, et ainsi de suite. Pour nos besoins, nous allons
utiliser les données déjà présentes dans votre installation de Mondrian,
sous le nom de FoodMart. FoodMart est composé des cubes suivants :
• Le cube Warehouse comprend les mesures Store Invoice, Sup-
ply Time, Warehouse Cost, Warehouse Sales, Units Shipped,
Units Ordered, Warehouse Prot, et les dimensions Store, Store
Size in SQFT, Store Type, Time, Product, Warehouse.
• Le cube Store comprend les mesures Store Sqft, Grocery Sqft
et les dimensions Store, Store Type, Has coffee bar, Grocery
sqft
• Le cube HR comprend les mesures Org Salary, Count, Number
of Employees, Employee Salary, Avg Salary et les dimensions
Time, Store, Pay Type, Store Type, Position, Department,
Employees
6 DANIEL LEMIRE, ENTREPÔTS DE DONNÉES
10.7.1. Tuples
Un tuple est une suite de plusieurs membres entre parenthèses séparés
par une virgule :
([Time].[1997], [Product].[Food])
est un exemple de tuple. Nous pouvons omettre les parenthèses s’il
s’agit d’un tuple ne contenant qu’un seul membre.
On peut utiliser une requête avec un tuple pour stipuler que nous
souhaitons obtenir le résultat des ventes durant l’année 1997, mais
seulement en ce qui concerne les Baked Goods :
select ([Product].[All Products].[Food].[Baked Goods],
[Time].[1997]) on columns
from [Sales]
8 DANIEL LEMIRE, ENTREPÔTS DE DONNÉES
10.7.2. Sets
Il est un peu pénible de construire une requête MDX pour chaque tuple.
On peut faire mieux.
Un set est un ensemble ordonné de tuples. Un set peut être vu
comme une plage de valeurs. Le set commence par une accolade {,
dans laquelle sont énumérés les tuples séparés par des virgules, et se
termine par une accolade appariée }.
Ainsi, il est possible de traiter deux mesures distinctes dans une
même requête :
select
{
([Measures].[Unit Sales],
[Product].[All Products].[Food].[Baked Goods]),
([Measures].[Store Sales],
[Product].[All Products].[Food].[Baked Goods])
}
on columns
from [Sales]
Bien sûr, on peut aussi, par exemple, énumérer des catégories de
produits :
select
{
([Measures].[Unit Sales], [Product].[Food]),
([Measures].[Unit Sales], [Product].[Drink])
}
on columns
from [Sales]
On peut varier à la fois la mesure, mais aussi les dimensions et les
niveaux hiérarchiques :
select
LECTURE 10. INTRODUCTION À MDX 9
{
([Measures].[Unit Sales], [Product].[Food]),
([Measures].[Store Sales], [Product].[Food].[Baked Goods])
}
on columns
from [Sales]
Bien sûr, un set peut ne contenir qu’un seul élément :
select
{
([Time].[1997])
}
on columns
from [Sales]
} on columns,
{
([Time].[1997]),
([Time].[1998])
} on rows
from [Sales]
10 DANIEL LEMIRE, ENTREPÔTS DE DONNÉES
}
on columns,
{
([Time].[1997]),
([Time].[1998])
}
on rows
from [Sales]
where
{
([Gender].[M])
}
On peut aussi utiliser la clause where pour stipuler une autre mesure
que la mesure par défaut.
select
{([Product].[Drink])}on columns,
{([Time].[1997])} on rows
from [Sales]
where {[Measures].[Store Cost]}
*/
10.9. Remerciements
Mondrian n’est pas parfait, mais il a l’avantage d’être gratuit ce qui
est bien pratique pour apprendre MDX sans dépenser une fortune. Il
faut donc remercier l’auteur de Mondrian, Julian Hyde, et tous ses
collaborateurs. Mondrian est un produit de la société d’intelligence
d’affaires Pentaho. Julian Hyde a un blogue : http://julianhyde.
blogspot.com/.
**/
* ou
/**
from [Sales]
([Time].[1997],[Measures].[Unit Sales])} on rows
{([Time].[1997],[Measures].[Store Cost]),
{([Product].[Drink])}on columns,
(b) select
10.12. En terminant
N’oubliez pas de fermer Tomcat lorsque vous aurez terminé. Il faut exé-
cuter le script bin/shutdown.bat sous Windows ou bin/shutdown.sh
sous Linux ou Mac OS. Si vous ne le faites pas, Tomcat continuera de
fonctionner. Par contre, conservez votre installation de Mondrian, vous
en aurez encore besoin.
BIBLIOGRAPHIE
13