Vous êtes sur la page 1sur 36

TP 3: Création, Déploiement et Analyse d’un Cube OLAP à l’aide

de Pentaho Schema Workbench et User Console - étude de cas:


Sakila DWH

Bienvenue au TP 3 de notre module Data Warehousing ! Aujourd'hui, préparez-vous à


construire et à configurer votre propre cube OLAP à partir d'un schéma en étoile. Et ce n'est pas
tout ! Vous aurez également l'occasion de donner vie à vos données en créant un tableau de
bord rempli de visualisations funky et colorées. Attachez vos ceintures et préparez-vous pour
une aventure passionnante dans le monde de l'analyse des données ! Let's go !

I. Partie théorique:

Mondarian et cubes OLAP:

Mondrian est un moteur OLAP open-source qui permet d'analyser les données
multidimensionnelles. Il utilise des schémas XML pour décrire les cubes OLAP, qui
représentent des ensembles de données multidimensionnelles organisées en dimensions et
mesures. Ces cubes permettent d'effectuer des analyses approfondies en permettant aux
utilisateurs de naviguer, de découper, de percer et de rouler les données pour obtenir des
informations précieuses.

Source: Microsoft Learn


Attention ! Un cube OLAP, bien que le terme "cube" implique trois dimensions, peut en réalité
contenir plusieurs dimensions, ce qui en fait une représentation multidimensionnelle des
données. Notez que le terme "cube" est utilisé de manière conceptuelle pour décrire cette
structure, même si elle peut avoir plus de trois dimensions.

Opérations OLAP:

Découpage (Dicing) : Sélectionner un sous-ensemble de données en restreignant les valeurs


de certaines dimensions.

Forage (Drill Down) : Naviguer vers des niveaux de détail plus fins à partir d'un niveau
d'agrégation supérieur.

Agrégation (Roll Up) : Regrouper les données à partir d'un niveau de détail inférieur vers un
niveau d'agrégation supérieur.

Pivotement (Pivot) : Réorganiser les données en interchangeant les lignes et les colonnes
pour visualiser les données sous différents angles.

La découpe (slicing) : sélectionner un sous-ensemble de données multidimensionnelles en


fixant les valeurs des dimensions autres que celles utilisées pour la découpe.

Source: OLAP Operations - Medium

Avant de passer à la pratique, vous avez sûrement remarqué la similitude entre les schémas en
étoile et les cubes en étoile en termes de terminologie et de concepts.
Toutefois, un schéma en étoile fournit la structure sous-jacente des données, tandis qu'un cube
OLAP offre une représentation analytique multidimensionnelle basée sur ce schéma.

En général, un cube OLAP est construit à partir des données stockées dans un entrepôt de
données selon un schéma en étoile ou un schéma en flocon. Cependant, il est possible de
construire un cube sans nécessairement avoir un schéma en étoile comme base, même si c'est
une pratique courante.

II. Partie pratique:

Pour commencer, ouvrez le terminal en appuyant simultanément sur les touches Ctrl + Alt + T.
Ensuite, connectez-vous en tant que superutilisateur (root) en saisissant la commande sudo su
(et entrez le mot de passe "data-enthusiast" lorsqu'il vous est demandé). Une fois connecté,
accédez à l'utilitaire MySQL en saisissant mysql -p, puis validez et entrez le mot de passe
root.

Pour ce travail pratique, nous utiliserons la base de données "sakila_dwh" que vous avez
précédemment peuplée à l'aide du processus ETL dans PDI. Afin de garantir que vous partez
tous du même point, nous vous demandons de suivre les étapes suivantes pour remplir la base
de données depuis le début :

Tout d’abord, pour supprimer les données résidant dans la base de données existante,
exécutez la commande suivante qui vous affichera la requête correspondant à la suppression
des données de toutes les tables de la base (cette méthode est particulièrement bénéfique
lorsque votre base contient un nombre énorme de tables) :

SELECT GROUP_CONCAT(Concat('TRUNCATE TABLE ',table_schema,'.',TABLE_NAME)


SEPARATOR ';') FROM INFORMATION_SCHEMA.TABLES where table_schema in
('sakila_dwh');

Vous obtiendrez le résultat suivant :

Copiez ensuite la requête affichée (n’oubliez pas de lui ajouter le ; à la fin), la précédant de
l'instruction SET FOREIGN_KEY_CHECKS = 0; .
À sa fin, ajoutez SET FOREIGN_KEY_CHECKS = 1; .

Votre requête doit être ainsi formulée comme suit :

set FOREIGN_KEY_CHECKS = 0;
TRUNCATE TABLE sakila_dwh.dim_actor;
TRUNCATE TABLE sakila_dwh.dim_customer;
TRUNCATE TABLE sakila_dwh.dim_date;
TRUNCATE TABLE sakila_dwh.dim_film;
TRUNCATE TABLE sakila_dwh.dim_film_actor_bridge;
TRUNCATE TABLE sakila_dwh.dim_staff;
TRUNCATE TABLE sakila_dwh.dim_store;
TRUNCATE TABLE sakila_dwh.dim_time;
TRUNCATE TABLE sakila_dwh.fact_rental;
set FOREIGN_KEY_CHECKS = 1;

Il convient de noter que set FOREIGN_KEY_CHECKS est une fonctionnalité intégrée à MySQL,
permettant de garantir le respect des contraintes de clés étrangères lors des modifications de
tables. Dans notre situation, nous désactivons cette vérification (=0) avant toute opération de
suppression, afin de prévenir d'éventuelles erreurs. Par la suite, nous rétablissons cette
vérification (=1) à la conclusion de l'opération. Il est à noter l'importance de désactiver cette
vérification lorsqu'il est nécessaire de supprimer l'intégralité des données. Toutefois, dans
d'autres scénarios où seules certaines tables sont concernées par la suppression, il est
préférable de maintenir cette vérification active afin d'éviter toute incohérence dans la BD.

Exécutez ensuite la requête résultante pour obtenir un affichage similaire à celui-ci :


Pour se conformer au script de remplissage de la table, supprimez la colonne fact_rental_key
de la table fact_rental. Il convient de noter que l’ajout d’une clé artificielle (surrogate key) à une
table de faits dépend généralement des besoins spécifiques. Pour effectuer cette opération,
exécutez la commande suivante :

ALTER TABLE fact_rental DROP COLUMN fact_rental_key;

Dans le script donné, la colonne "return_date_key" de la table fact_rental ne fait pas référence à
la table "dim_date". Vous pouvez remédier à cela en exécutant :

alter table fact_rental add foreign key (return_date_key) references


dim_date(date_key);

Enfin, pour peupler la base de données avec les données provenant du fichier
sakila_dwh_data.sql, tapez la commande suivante :

SOURCE /home/data-enthusiast/Documents/sakila_dwh_data.sql;

Voici un extrait de la sortie que vous devriez obtenir. Veuillez noter que pour chaque table
correctement remplie et sans erreur, un message indiquant le nombre de lignes ajoutées à
chaque table sera affiché. En cas d'erreur, veuillez revenir aux étapes précédentes.
La prochaine étape consiste à télécharger l'outil Pentaho Schema Workbench. Contrairement
aux autres outils utilisés, celui-ci n'est pas directement inclus dans la machine virtuelle. Pour ce
faire, veuillez accéder aux liens de téléchargement des utilitaires fournis par la suite Pentaho
via ce lien: Pentaho Community Edition Download | Hitachi Vantara. Une fois sur la page,
cliquez sur le bouton de téléchargement rouge "Download Now" affiché en haut de la page. Un
popup apparaît, où vous devrez valider ce qui vous est demandé, puis cliquer sur "Proceed to
Download". Ensuite, choisissez l'option "psw-ce-9.4.0.0-343.zip" (la dernière version au
moment de la distribution de ce TP est 9.4).

Une fois le téléchargement terminé, le fichier correspondant doit être placé par défaut dans le
répertoire "Downloads" de votre système de fichiers. Si vous êtes toujours dans l'environnement
MySQL, utilisez la commande "exit" pour en sortir. Ensuite, connectez-vous en tant que
superutilisateur (root) si ce n'est pas déjà le cas. Enfin, extrayez le fichier téléchargé dans le
répertoire /opt en exécutant la commande suivante :

cd /home/data-enthusiast/Downloads && unzip psw-ce-9.4.0.0-343.zip -d /opt

Afin d'ajouter le pilote MySQL parmi les pilotes reconnus par l'outil, suivez ces étapes. Tout
d'abord, exécutez la commande suivante pour afficher le pilote se trouvant dans le répertoire lib
de data-integration :

Dans le cas illustré par la capture d'écran, un seul pilote, appelé mysql-connector-j-8.3.0.jar, est
configuré pour la solution PDI. Pour procéder, copiez le nom affiché et utilisez-le pour remplacer
XXX dans la commande suivante :

cp /opt/data-integration/lib/XXX /opt/schema-workbench/lib

Ainsi, pour le cas illustré par ce TP, la commande serait la suivante :

cp /opt/data-integration/lib/mysql-connector-j-8.3.0.jar
/opt/schema-workbench/lib

La commande ci-dessus permet de copier le pilote fourni depuis le répertoire "data-integration"


vers "schema workbench".
Parfait ! Maintenant, nous sommes prêts à entrer dans le vif du sujet. Pour cela, rendez-vous
dans le répertoire de l'outil Schema Workbench en tapant la commande :

cd /opt/schema-workbench

Ensuite, lancez l'utilitaire en saisissant :

./workbench.sh

Ainsi, l'interface de PSW s'ouvrira:

Voilà, c'est parti. Maintenant, repérez la barre d'icônes en haut à gauche. Cliquez sur l'icône
tout à droite pour créer une connexion à la base de données "sakila_datawarehouse".
Une fois cela fait, la fenêtre de création de connexion apparaîtra. Comme à votre habitude,
créez une nouvelle connexion que vous nommerez "sakila_dwh".

Sélectionnez "MySQL" comme type de connexion et "Native JDBC" comme méthode d'accès.
Dans les paramètres, saisissez "localhost" pour le nom de l'hôte, "sakila_dwh" pour le nom de
la base de données, "3306" pour le numéro de port, "sakila_dwh" pour le nom d'utilisateur et
"sakila_dwh" pour le mot de passe.

Testez votre configuration en cliquant sur le bouton "Test" situé en bas. Si tout est correctement
configuré, vous verrez s'afficher une fenêtre contextuelle vous indiquant que la connexion a été
établie avec succès.
Vous êtes maintenant invité à cliquer sur l'icône située tout à gauche et à sélectionner
"Schema" (ou vous pouvez également cliquer sur "File > New > Schema"). Rappelez-vous
qu’un schéma est essentiellement un document XML qui décrit un ou plusieurs cubes
multidimensionnels.

Après cela, l'éditeur de schémas s'affiche, avec à gauche l'arborescence de votre schéma

contenant actuellement seulement l'élément "Schema" . À droite, vous trouverez


votre espace de travail où vous pouvez configurer les différents éléments et modifier votre
schéma. Cliquez sur l'élément "Schema" dans votre arborescence pour afficher la table
contenant les attributs et les valeurs.

Remarque : Si cette vue n'est pas affichée, vous pouvez simplement cliquer sur l'icône "Edit
Mode" située en haut à gauche de la barre d'icônes de votre éditeur de schémas. Notez que
cliquer sur cette icône alternativement affiche une fois la vue XML et une autre fois la table qui
peut être modifiée.
Modifiez les attributs du schéma en écrivant "DVD Rental Analysis Schema" sous la colonne
"Value" pour le champ "name", et "Analysis of the sakila datawarehouse" pour le champ
"description".

Avant de passer à l'étape suivante, il est toujours recommandé d'enregistrer votre travail dès les
premières étapes. Pour ce faire, repérez l'icône de la disquette située dans votre environnement
de travail et cliquez dessus. Une fenêtre d'enregistrement s'ouvrira.

Tout d'abord, modifiez le répertoire de sauvegarde de "root" à "/". Ensuite, accédez au dossier
"Documents" situé sous "/home/data-enthusiast/". Conservez le nom du fichier
("DVD_rental_analysis.xml") et enregistrez.
Maintenant que vous avez enregistré votre travail, il est temps de créer votre premier cube.
Pour cela, faites un clic droit sur l'élément "Schema" de votre arborescence et sélectionnez

"Add Cube" (ou vous pouvez simplement cliquer sur l'icône du cube située à gauche).

Tout comme pour le schéma, vous verrez le tableau des attributs relatifs au cube. Sous "Name",
saisissez "dra_cube" et sous "Caption", entrez "DVD_rentals".

"name" identifie le cube de manière unique dans les requêtes MDX, tandis que "caption" lui
donne le nom affiché dans l'interface utilisateur. Notez que les deux éléments, le schéma et
"dra_cube", sont indiqués en rouge dans l'arborescence, avec un message en bas signalant la
nécessité de créer une table de faits.

Entamons maintenant la création de la table de faits. Pour ce faire, cliquez simplement avec le
bouton droit sur le cube "dra_cube" et sélectionnez "Add Table".
L'attribut "schema" ici fait référence au nom de la base de données contenant votre table de
faits. Lorsqu'aucun schéma n'est spécifié, le schéma par défaut spécifié par la connexion
configurée est utilisé. Laissez-le vide.

Ensuite, "name" indique le nom de la table de faits. Dans notre cas, puisque nous avons
configuré la connexion à la base de données, le champ vous fournit une liste déroulante
contenant toutes les tables. Sélectionnez "fact_rental".

Vous allez maintenant ajouter les mesures. Vous pouvez le faire de deux manières : soit en
effectuant un clic droit sur "dra_cube" puis en choisissant l’option "Add Measure"

, soit en cliquant simplement sur "dra_cube" ou sur la table

"fact_rental", puis sur l’icône représentant une règle.

Vous allez commencer par configurer la mesure "count rentals". Notez que l’ordre de création
des mesures compte, car la première constitue la mesure par défaut du cube.

Pour le champ "name" de la mesure, saisissez "count_rentals". "Aggregator" est le champ drop
down qui permet d’identifier la fonction utilisée pour l’agrégation de la mesure. Pour cette
mesure, choisissez "sum". Pour le champ "column", sélectionnez la mesure "fact_rental ->
count_rentals". Enfin, "datatype" indique le type de données retourné par les requêtes MDX ;
choisissez "Integer".
Effectuez la même procédure pour les autres mesures "count returns" et "rental duration". Pour
cela, créez les mesures une à une et configurez-les comme suit :

Mesure Configuration

count_returns Name: count_returns


aggregator : sum
Column: fact_rental->count_returns
Datatype: integer

rental_duration Name: rental_duration


aggregator : avg
Column: fact_rental->rental_duration
Datatype: numeric

Pour la mesure "rental duration", nous optons pour la fonction d'agrégation "moyenne" (avg), ce
qui est plus pertinent pour l'analyse que de calculer la somme de toutes les durées de location.
En revanche, pour le nombre de retours, par exemple, il serait plus judicieux de déterminer le
nombre total de locations par axes d'analyse.

Jusqu'à présent, votre arborescence ressemble à ceci. Cependant, on vous signale que la
configuration du cube est incorrecte en raison des dimensions manquantes.

Il est temps d'injecter un peu de piment et de créer les dimensions. Il convient de distinguer
deux types de dimensions : les dimensions privées (spécifiques et propres à un cube) et les
dimensions publiques (pouvant être partagées par plusieurs cubes au sein d'un même schéma).
Le processus de création et de configuration est le même pour les deux types, seule
l'emplacement de leur création diffère. Les dimensions privées sont notre choix pour ce TP.

Pour amorcer la procédure, sélectionnez d'abord "dra_cube". Ensuite, vous avez l'option de
cliquer sur l'icône "Add Dimension", située juste à côté de celle représentant le cube

, ou bien de faire un clic droit sur "dra_cube" et de choisir l'option "Add

Dimension" dans le menu contextuel.

Pour configurer votre première dimension, celle correspondant à la date de location, nommez la
"rental_date" dans le champ "name". Ensuite, pour le champ "foreignkey", habituellement utilisé
pour les dimensions privées, sélectionnez dans le menu déroulant "rental_date_key", qui fait
référence à la colonne de la table de faits configurée dans le dra_cube. Enfin, pour le champ
"type", si une dimension est une date ou un temps, on choisit "TimeDimension"; sinon,
"StandardDimensions" doit être sélectionnée.

Dans votre cas, choisissez "TimeDimension".

Notez l'erreur signalée en bas : "Hierarchy 0 is invalid". En effet, chaque dimension créée
entraîne la création d'une hiérarchie composée d'un ou plusieurs niveaux. Il est à noter qu'une
hiérarchie doit être associée à une table, qui fournira les valeurs nécessaires à la configuration
des niveaux.

Cliquez sur la dimension "rental_date" pour l'étendre. Vous verrez alors la hiérarchie "New
Hierarchy 0" qui a été créée par défaut.
La première étape dans la configuration de l'hiérarchie consiste à créer une table en dessous.
Pour procéder, faites un clic droit sur New Hierarchy 0 et sélectionnez l'option "Add Table".

On vous affiche l'utilitaire de configuration de la table, où vous ne devez configurer que l’attribut
"name". Cliquez sur le champ correspondant pour afficher le menu déroulant. Faites attention, si
vous voyez les clés de la table de faits, comme c'est le cas dans la capture ci-dessous, cliquez
sur "<<All Tables>>" (un double clic peut être nécessaire) pour afficher les dimensions.

Ensuite, sélectionnez la dimension "dim_date".

Cliquez maintenant sur l’hiérarchie New Hierarchy 0 afin de la configurer.

Expliquons quelques attributs. "name" est le nom qui référence l’hiérarchie dans les requêtes
MDX. Notez que la première hiérarchie configurée est celle considérée par défaut. En plus, si
vous choisissez d’omettre son nom, elle va être attribuée celui de la dimension. Dans votre cas,
nommez l’hiérarchie "Month".

"has all" indique si une hiérarchie doit avoir un niveau "all" avec un membre "all", par exemple,
un seul membre en haut de la hiérarchie qui représente tous les autres membres. Gardez cette
option cochée.
"Primarykeytable" est principalement utile pour les schémas en neige, car elle désigne la table à
partir de laquelle l’hiérarchie choisit de remplir ses éléments. Si ce champ reste vide, la table
utilisée par défaut est celle qui lui est jointe. Pour cette configuration, laissez ce champ vide.

"Primarykey" désigne la clé primaire de la dimension jointe à la hiérarchie, qui est typiquement
référencée par la table de faits. Choisissez donc "dim_date" -> "date_key".

Finalement, pour compléter la configuration de l’hiérarchie "Month", vous devez ajouter les
niveaux. Cela permettra éventuellement d'éliminer les messages d’erreur. Pour créer les
niveaux, vous avez deux options : soit effectuer un clic droit sur "Month" et choisir l’option "Add

Level" , soit cliquer sur "Month" puis sur l'icône correspondante

Ci-dessous sont énumérés les niveaux inclus dans lahiérarchie "Month" :

name column levelType uniqueMem captionColumn visible


bers

Year year4 TimeYears

Quarter quarter_num TimeQuarters quarter_name


ber

Month month_numb TimeMonths month_name


er
Day day_in_mont TimeDays day_name
h

Pour chaque ligne de la table ci-dessus, créez et configurez le niveau correspondant.


Assurez-vous de respecter l’ordre indiqué dans la table lors de la création des niveaux. Par
exemple, pour le premier niveau "Year", la configuration doit être la suivante :

À la fin, voici à quoi doit ressembler votre arborescence :


Vous avez le choix d'ajouter un autre axe d'analyse (hiérarchie) sous la dimension rental_date.
Si vous optez pour cette option, un clic droit sur la dimension rental_date vous permettra
d'accéder aux options, où vous choisirez "Create Hierarchy". Pour configurer cette hiérarchie,
procédez comme suit :

- Commencez par ajoutez la table jointe dim_date (name: dim_date).


- Configurez-la (l’hiérarchie) comme suit :
- Name : Year
- HasAll : Coché
- parimaryKey : dim_date -> date_key
- visible : coché

Ensuite, ajoutez les niveaux conformément à la table ci-dessous :

name column levelType uniqueMem captionColu visible


bers mn

Year year4 TimeYears

Week wekk_in_year TimeWeeks

Si vous atteignez ce niveau, félicitations, les data enthusiasts ! Vous avez franchi une grande
étape. Ensuite, vous êtes invités à créer les autres dimensions conformément à la configuration
fournie ci-dessous (utilisez les instructions de création de la dimension de la date comme
référence). Il est à noter que le choix des dimensions pour ce TP n'est pas limité à une seule
possibilité, vous pouvez donc vous amuser à créer des dimensions variées.
Dimension Hiérarchie Niveau

Privée Table: dim_customer (N'oubliez Name: country


Name: customer pas de créer la table jointe Column: customer_country
ForeignKey: customer_key avant de configurer la uniqueMembers: coché
visible : coché
Type: StandardDimension hiérarchie)
Visible: coché Name: Laissez-le vide pour que Name: district
le nom de lahiérarchie prenne Column: customer_district
le nom de la dimension par visible : coché
défaut.
HasAll: coché Name: city
Column: customer_city
PrimaryKey: customer_key visible : coché
Visible : coché
Name: postal_code
Column:
customer_postal_code
visible : coché

Name: name
Column: customer_id
captionColumn:
customer_last_name
visible : coché

Privée Table: dim_film Name: title


Name: film Name: Laissez-le vide Column: film_id
ForeignKey: film_key HasAll: coché uniqueMembers: coché
captionColumn: film_title
Type: StandardDimension PrimaryKey: film_key
visible : coché
Visible: coché Visible : coché

Votre cube est prêt à être déployé et analysé. Voici à quoi ressemble votre arborescence à ce
stade :
Voici également le schéma XML correspondant pour plus de clarté :

<Schema name="DVD Rental Analysis Schema" description="Analysis of the


sakila datawarehouse">
<Cube name="dra_cube" caption="DVD_rentals" visible="true" cache="true"
enabled="true">
<Table name="fact_rental">
</Table>
<Dimension type="TimeDimension" visible="true"
foreignKey="rental_date_key" name="rental_date">
<Hierarchy name="Month" visible="true" hasAll="true"
primaryKey="date_key">
<Table name="dim_date" alias="">
</Table>
<Level name="Year" visible="true" column="year4" uniqueMembers="true"
levelType="TimeYears">
</Level>
<Level name="Quarter" visible="true" column="quarter_number"
uniqueMembers="false" levelType="TimeQuarters"
captionColumn="quarter_name">
</Level>
<Level name="Month" visible="true" column="month_number"
uniqueMembers="false" levelType="TimeMonths" captionColumn="month_name">
</Level>
<Level name="Day" visible="true" column="day_in_month"
uniqueMembers="false" levelType="TimeDays" captionColumn="day_name">
</Level>
</Hierarchy>
<Hierarchy name="Year" visible="true" hasAll="true"
primaryKey="date_key">
<Table name="dim_date" alias="">
</Table>
<Level name="Year" visible="true" column="year4" uniqueMembers="true"
levelType="TimeYears">
</Level>
<Level name="Week" visible="true" column="week_in_year"
uniqueMembers="false" levelType="TimeWeeks">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true"
foreignKey="customer_key" name="customer">
<Hierarchy visible="true" hasAll="true" primaryKey="customer_key">
<Table name="dim_customer" alias="">
</Table>
<Level name="country" visible="true" column="customer_country"
uniqueMembers="true">
</Level>
<Level name="district" visible="true" column="customer_district"
uniqueMembers="false">
</Level>
<Level name="city" visible="true" column="customer_city"
uniqueMembers="false">
</Level>
<Level name="postal_code" visible="true"
column="customer_postal_code" uniqueMembers="false">
</Level>
<Level name="name" visible="true" column="customer_id"
uniqueMembers="false" captionColumn="customer_last_name">
</Level>
</Hierarchy>
</Dimension>
<Dimension type="StandardDimension" visible="true"
foreignKey="film_key" name="film">
<Hierarchy visible="true" hasAll="true" primaryKey="film_key">
<Table name="dim_film" alias="">
</Table>
<Level name="title" visible="true" column="film_id"
uniqueMembers="true" captionColumn="film_title">
</Level>
</Hierarchy>
</Dimension>
<Measure name="count_rentals" column="count_rentals"
datatype="Integer" aggregator="sum" visible="true">
</Measure>
<Measure name="count_renturns" column="count_returns"
datatype="Integer" aggregator="sum" visible="true">
</Measure>
<Measure name="rental_duration" column="rental_duration"
datatype="Numeric" aggregator="avg" visible="true">
</Measure>
</Cube>
</Schema>

On va maintenant vous présenter un autre outil de la suite Pentaho, le Pentaho Console, que
nous utiliserons pour la suite de ce TP afin d'effectuer les analyses. Pas d'inquiétudes, cette
fois-ci, l'outil a déjà été installé et configuré sur vos machines virtuelles.

Tout d'abord, relancez le terminal en appuyant sur Ctrl + Alt + T, puis accédez au dossier
"pentaho-server" pour démarrer le serveur Pentaho. Pour cela, exécutez cette commande :

cd /opt/pentaho-server
Si vous n'êtes pas un super-utilisateur, exécutez sudo su .

Ensuite, lancez la commande : ./start-pentaho.sh, qui permet de démarrer le serveur sur le


port 8080. Pour clarifier davantage, le Pentaho Server est une application web qui fonctionne
au-dessus d'un serveur Apache Tomcat.

Une fois que le message "Tomcat started" s'affiche, ouvrez votre navigateur Firefox. Dans la
barre d'adresse, saisissez l'URL suivante : localhost:8080 (vous serez automatiquement redirigé
vers http://localhost:8080/pentaho/Login) pour accéder à l'interface de la console Pentaho.

Cliquez sur "Log in as evaluator" pour afficher les identifiants de deux utilisateurs déjà créés par
défaut : "Admin" et "Suzy". Notez que ces deux utilisateurs ont des rôles distincts
(Administrateur et Utilisateur Métier) qui définissent leurs accès. Dans notre cas, nous
utiliserons l'utilisateur ayant le rôle "administrator" pour bénéficier de tous les privilèges. Prenez
note des informations de connexion de cet utilisateur, puis cliquez sur le bouton "Log In" (blanc,
non rouge) situé sous l'utilisateur "Administrator".
Cela vous donne accès à l'interface d'accueil de l'utilisateur Administrateur. Le bouton "Manage
Data Source" est exclusif à l'utilisateur doté du rôle d'administrateur. Ainsi, si vous vous
connectez en tant que Suzy, par exemple, vous ne verrez pas cette option.
Pour une meilleure compréhension de la politique de gestion des rôles sous Pentaho, nous
vous demandons d'accéder au menu déroulant "Home" situé en haut à gauche. Cliquez dessus
et sélectionnez "Administrator".

Sous "User & Roles", sélectionnez l'onglet "Manage Roles" et explorez les différents rôles ainsi
que les privilèges qui leur sont associés.
Revenons maintenant au cube OLAP et à son déploiement. Pour ce faire, nous devons d'abord
créer une connexion à la base de données "sakila_dwh" dans la console utilisateur.

Retournez alors à l'interface principale (home) en sélectionnant "Home" sous "Administration".

Ensuite, cliquez sur "Manage Data Sources" pour ouvrir l'utilitaire de gestion des accès aux
sources de données.

Une fenêtre s'affiche, indiquant la liste de toutes les sources de données déjà définies. Pour
créer une nouvelle connexion, cliquez sur l'icône située à côté du bouton "New Data
Source", puis cliquez sur "New Connection".
À ce stade, vous avez probablement mémorisé la configuration de la connexion à la base de
données "sakila_dwh" et vous êtes plus que familiers avec l'interface de connexion habituelle.
Ainsi, configurez la connexion à la base de données "sakila_dwh". Vous pouvez également
vous référer à la configuration que nous avons établie dans le Schema Workbench pour obtenir
les paramètres appropriés.

Testez votre connexion. Si tout se passe bien, validez en cliquant sur "OK". Vous verrez alors
apparaître dans la table des connexions aux sources la nouvelle connexion "sakila_dwh" de
type JDBC que vous venez de créer.
Parfait, vous avez ainsi préparé le terrain pour le déploiement de votre dra_cube. Rendez-vous
à nouveau sur l'interface de Pentaho Schema Workbench. Vous pouvez y accéder en cliquant

sur le logo correspondant que vous trouverez dans la barre des applications de votre
système d'exploitation Ubuntu (sous la VM).

Dans la barre de menu en haut, cliquez sur "File", puis sélectionnez "Publish".

Dans les champs username et password, entrez les informations d'identification de l'utilisateur
Admin (Nom d'utilisateur : Admin, Mot de passe : password). Ensuite, dans le champ Pentaho
or JNDI Data Source, saisissez sakila_dwh (la connexion que vous venez de configurer sous la
console utilisateur). Assurez-vous de laisser toutes les autres configurations telles qu'elles sont
par défaut, puis cliquez sur Publish.
Vous devriez alors voir une fenêtre contextuelle indiquant que la publication a été établie avec
succès.

Accédez à la console utilisateur et cliquez sur "Manage Data Sources" dans votre interface
Home. Vous y trouverez la source nommée "DVD Rental Analysis Schema" de type "Analysis".
Cependant, veuillez noter que nous utilisons actuellement la version Community Edition, qui ne
propose plus l’utilitaire "Analyzer" permettant d'exécuter les opérations OLAP sur les cubes
publiés. Toutefois, vous pouvez toujours demander un essai gratuit de 30 jours pour tester cette
fonctionnalité.

ci -dessous une interface du Pentaho Analyzer:


Finalement, pour conclure ce TP, nous utiliserons un cube OLAP disponible en exemple
(SteelWheel) pour créer un tableau de bord et visualiser les données. Pour ce faire, retournez à
l'interface d'accueil de votre console utilisateur et cliquez sur "Create New". Sélectionnez
l'option "CDE Dashboard" et cliquez dessus.

On vous dirigera alors vers l’espace de création des dasboards.

Cliquez ensuite sur l'icône pour sélectionner un modèle de tableau de bord.

Dans la fenêtre qui s'affiche, sélectionnez le modèle à deux colonnes (2 Columns Template),
puis cliquez sur OK pour valider.
Un pop-up s'affiche vous demandant de confirmer votre choix.

validez en cliquant sur OK

Vous verrez alors apparaître la structure de votre modèle à gauche, avec à sa droite l'onglet
permettant de configurer les propriétés.

Tout d'abord, cliquez sur la première ligne "Row" de votre structure de mise en page et étendez
l'arborescence jusqu'à atteindre le dernier élément (HTML).

Ensuite, allez dans l'onglet "Propriétés" et cliquez sur se trouvant au niveau de la


ligne HTML.

Un éditeur de code HTML apparaîtra. Copiez-y le code suivant :

<h2 style="color:#FFFFFF;">Sales Stats</h2>.

Ensuite, repérez la dernière ligne "Row" dans la structure de la mise en page et, tout comme
nous l'avons fait pour la première, étendez l'arborescence jusqu'à atteindre le dernier élément
HTML que vous devez éditer. Affichez l'éditeur correspondant et saisissez-y le code suivant :
<p> Professional Dashboard</p>

Maintenant, enregistrez votre travail en cliquant sur "Save" dans la barre de menu.

Dans la fenêtre de configuration correspondante, choisissez le dossier "admin" comme


emplacement, conservez le format "Tableau de bord" et saisissez "My First Dashboard"
sous "Nom de fichier". Validez en cliquant sur OK.

Une fois enregistré, si vous cliquez sur l'icône , une prévisualisation du tableau de bord
devrait s'afficher comme suit :
Pour le moment, ne modifiez rien d’autre de la structure de la mise en page ; nous y
reviendrons ultérieurement. Passons maintenant à la vue et positionnons-nous sous ce que l'on
appelle le panneau des sources de données. Pour ce faire, dirigez-vous vers les trois icônes
alignées en haut à gauche et cliquez sur celle située à l'extrémité gauche.

Ensuite, accédez au panneau "Wizards" (étendez-le en cliquant dessus) et sélectionnez "OLAP


Chart Wizard".

Un assistant OLAP s'ouvrira pour vous permettre d'ajouter un graphique à votre modèle.
Configurez-le comme suit :

● Catalog : SteelWheels,
● Name : sales_by_customer,
● HTML Object : Panel_1,
● Chart Type : Bar Chart,
● Rows : Customer,
● Columns : Sales.
Pour ajouter des éléments dans les lignes et les colonnes, faites glisser les éléments situés
sous Dimensions et Mesures à droite.

Remarque : Il aurait été possible de travailler sur le catalogue généré à partir de sakila_dwh en
créant une source de données avec l'assistant de création de source de données pour élaborer
les visualisations. Pour ce faire, cliquez sur le bouton "Manage Data Sources -> Data Source ->
New Data Source " et configurez-la conformément aux indications (nous vous ferons une petite
démo en classe). Notez que la configuration est similaire à celle effectuée pour la création du
cube à l'aide du Schema Workbench.

cliquez de nouveau sur l'icône de prévisualisation et vous devez avoir un résultat pareil :
Voilà, le tour est joué ! Vous pouvez maintenant ajouter un graphique de votre choix à
droite. Amusez-vous également à explorer les autres propriétés et à personnaliser votre
tableau de bord.

–fin–

Copyright © 2024 Emna Boussoffara. All rights reserved.

This document is safeguarded by copyright law and international treaties. Reproduction, distribution, or usage of this
document, either in whole or in part, except for brief excerpts utilized in reviews or for noncommercial purposes,
without the express written consent of the copyright holder, is prohibited and may incur civil and criminal penalties.

Vous aimerez peut-être aussi