Voici les différentes étapes à suivre afin de créer un cube OLAP:

  • Tout d’abord, un cube OLAP se base sur une table de faits et une ou plusieurs tables de dimensions (la table de fait doit contenir les clés (étrangères) de toutes les tables de dimensions)
  • Avant même de vouloir commencer à créer un cube OLAP il faut s’assurer de la connexion à la base de donnée :
    Nous allons ici suivre pas à pas la création d’un cube OLAP avec le Spago Studio 5.1

Commençons par créer un nouveau projet Spago, qui va contenir différents répertoires que nous allons détailler plus tard:

Puis se rendre dans le menu, Windows > Open Perspective > Database development :

Une fois dans la fenêtre nouvelle connexion , choisir le type de base (MySQL dans notre cas), puis renseigner les informations (URL,login,mdp,nom de la base)
ATTENTION aux drivers ! Il est parfois nécessaire d’aller chercher le .jar qui contient les drivers de connexion MySql:

Une fois la connexion établie, il faut retourner sur la perspective SpagoBI et suivre ces étapes:

1 ] Click droit sur Business Models > New Model ; une fenêtre apparaît et il suffit de donner un nom sans modifier le chemin par défaut
2 ] Sélectionner la connexion précédemment établie (de préférence, donner un nom facilement identifiable comme : “NomDeLaBase_NomDeLEnvironnement”)
3 ] La connexion étant établie, il faut choisir la table de fait qui permettra de créer le cube, suivant, finish
4 ] Dans Business Models, un fichier avec l’extension .sbimodel a été crée, la table de fait apparaît sous la valise Business Model dans la partie gauche de l’écran
5 ] Cliquer sur la table de fait, dans les properties, assigner “cube” dans l’onglet type

6 ] Naviguer dans l’architecture du cube > Attributes : ouvre la liste des colonnes présentes dans la table de fait, il faut à présent définir quels champs sont des faits ( ou mesures selon le langage), les champs par défaut sont stockés comme dimensions.
Pour chaque champs à passer en faits, il suffit de cliquer dessus et de définir Type : measure , une petite règle devrait s’afficher

Ces mesures seront les colonnes de noter futur cube OLAP.Il arrive parfois que nous souhaitions faire apparaitre en colonne des champs qui ne sont pas “directement” sous forme d’information contenue dans un champs, ce sont lescalculated fields (champs calculés à partir de N informations).
Exemple: MargeHT = MargeTTC – TvaSurMarge
Pour creer un champs de type calculated fields, faire un click droit sur le cube, Edit > Calculated Fields

7 ] Une fois les mesures, dimensions, et calculted fields satisfaisants, il faut définir la ou les dimensions, qui seront les lignes de notre cube OLAP.
ATTENTION: Il est possible de mettre plusieurs dimensions dans une seule ligne et de naviguer de dimension en dimension à l’aide d’un petit “+”.Pour cela il faut utiliser une Hierarchie.Nous allons donc aborder les 2 cas : plusieurs dimensions = plusieurs lignes, plusieurs dimensions = une seule ligne

8 ] Premier cas : Plusieurs dimensions dans la même ligne
Faire un clic droit sur la valise Business Model > Edit > Add Business class
Ici, il va falloir sélectionner toutes les dimensions que l’on souhaite utiliser (exemple: Activite, ActiviteSubType, Annee) puis nommer cette dimension
Une fois cette dimension créée, penser à bien cliquer sur celle çi et assigner dimension dans Type:

Il est possible de rajouter des attributs dans cette dimensions, click droit sur la dimension > Edit > Modify Attributes
ATTENTION: Penser à ajouter la clé !

9 ] Creer les hierarchies
Sur la dimensions click droit,Olap > Edit Hierarchies > Add Hierachy
Il faut faire glisser les champs de gauche (colonne Attributes) dans l’ecran central (drag & drop).Mettre les attributs dans l’ordre dans lequel on souhaite les voir afficher.Penser à faire des choix cohérents:

Activite>ActiviteSubType>Annee>Mois : Ok !
Activite>Mois>ActiviteSubType>Annee : affichage incohérent !

Il n’est pas obligatoire de mettre tous les éléments dans la hiérarchie, mais au moins un.La clé primaire ne doit pas apparaître.

10 ] Une fois la hiérarchie créée il reste une étape : créer le lien entre le cube et la dimension
Pour cela il faut cliquer sur la valide Business Model > Edit > Add Relationship
Une nouvelle fenêtre s’ouvre: à gauche choisir le cube (la table de fait) , à droite la dimension ; puis sélectionner la clé primaire des deux cotés et cliquer sur Add Relationship comme ceci:

Il suffit désormais de cliquer sur la valise > Create > Mondrian Template
Selectionner le repertoire OLAP Template et donner un nom au fichier (donner un nom explicite qui represente ce que le cube fait)
Ceci étant fait, un fichier xml est automatiquement généré (s’il n’y a pas d’erreur dans les étapes précédentes) et stocké dans le répertoire OLAP Template:

ATTENTION: la version automatiquement créée est souvent boguée au niveau des balises hierarchies et du paramètre “allMemberName”
Voici ce à quoi doivent ressembler toutes les balises <Hierarchy>:

[pastacode lang=”markup” message=”” highlight=”” provider=”manual”]

<Hierarchy hasAll="true" allMemberName="Toutes les dimensions" primaryKey="TDFFacturesSynthMoisID" name="DIMENSIONS">

[/pastacode]

au lieu de :

[pastacode lang=”markup” message=”” highlight=”” provider=”manual”]

<Hierarchy hasAll="allMemberName=" allMemberName="toutes les dimensions" primaryKey="TDFFacturesSynthMoisID" name="DIMENSIONS">

[/pastacode]

Dans le cas ou l’on souhaite avoir plusieurs dimensions distinctes, toutes les étapes sont les mêmes à quelques détails près:

– Lors de la création d’une dimension, ne sélectionner que les champs nécessaires (un ou plusieurs) + la clé primaire
– Penser à bien attribuer le type dimension à chaque fois.
– Penser à mettre le ou les champs dans la hiérarchie de CHAQUE dimension
– Penser à faire le lien entre le cube et CHAQUE dimension : pour cela, click droit sur la valise Edit > Add Relationship
puis pour répéter la manœuvre autant de fois qu’il y a de dimensions en liant la clé primaire du cube aux dimensions