Académique Documents
Professionnel Documents
Culture Documents
SPÉCIALITÉ : ERP-BI
Encadrant de l’entreprise
Madame Hasnaoui Amira
Dédicace
Aucune dédicace ne saurait exprimer l’amour, le respect et l’attachement que j’ai pour toi.
Rien au monde ne pourra compenser les sacrifices que tu as faits n’épargnant ni santé ni
efforts pour mon éducation, mes études et mon bien-être. J’espère que tu es fier de moi et
J'espère ne jamais te décevoir, ni trahir ta confiance et tes sacrifices.
Pour ton amour, tendresse et encouragements, je ne saurai traduire sur du papier l'affection
que j'ai pour toi. Merci d’avoir toujours été à mes côtés cher bilel, je t’aime beaucoup
Remerciements
Au terme de ce travail, j’ai l’immense plaisir d’exprimer mes sincères gratitude envers tous
ceux qui ont contribué à son aboutissement.
En premier lieu, je voudrais bien remercier Madame Amira Hasnaoui, mon encadrante durant
ce stage et la fondatrice de la startup X-point, pour m’avoir donné l’opportunité de réaliser mon
stage de fin d’études avec eux, pour ces précieux conseils et pour le support moral qu’elle m’a
donné tout le long de mon stage.
Je remercie aussi tous les membres du jury pour leur bienveillance d’avoir acceptée d’évaluer
ce travail.
Je remercie tous les membres de ma famille, qui ont été toujours là pour m’offrir l’aide et le
support nécessaire pour devenir ce que je suis maintenant, plus précisément, un remerciement
très spécial à ma chère tante Afef et son mari Lotfi qui m’ont accueillie durant ces 5 ans chez
eux, qui m’ont offert toutes les conditions agréables pour réussir. Je voudrais bien remercier
mes cousins Jacem, seif et Jihen pour le support et l’amour continue qui m’ont fourni.
Introduction ........................................................................................................................................................ 3
5. Méthodologie............................................................................................................................................ 6
5.1. Les méthodes agiles ........................................................................................................................ 6
5.2. Choix de la méthodologie adopté : ................................................................................................. 6
5.3. Les intervenants de SCRUM ............................................................................................................ 8
Conclusion ........................................................................................................................................................ 10
Introduction ...................................................................................................................................................... 11
Conclusion ........................................................................................................................................................ 13
Introduction ...................................................................................................................................................... 14
Conclusion ........................................................................................................................................................ 20
Introduction ...................................................................................................................................................... 21
3. Technologies ........................................................................................................................................... 23
3.1. Talend open studio ........................................................................................................................ 23
3.2. Pentaho Data intégration .............................................................................................................. 23
3.3. PostgreSQl ..................................................................................................................................... 24
3.4. Oracle Database ............................................................................................................................ 24
6. Modèle Datawarehouse.......................................................................................................................... 35
Conclusion ........................................................................................................................................................ 35
Introduction ...................................................................................................................................................... 36
2. Technologies ........................................................................................................................................... 36
2.1. Tableau .......................................................................................................................................... 36
2.2. QlikView ........................................................................................................................................ 37
2.3. Microsoft Power Bi ........................................................................................................................ 37
5. Implémentation ...................................................................................................................................... 43
5.1. Tableau de bord Parking ............................................................................................................... 43
5.2. Tableau de bord des floors ............................................................................................................ 44
Conclusion ........................................................................................................................................................ 46
Introduction ...................................................................................................................................................... 47
2. Technologies ........................................................................................................................................... 47
2.1. Python ........................................................................................................................................... 47
2.2. Jupyter notebook .......................................................................................................................... 47
2.3. Anaconda ...................................................................................................................................... 48
3. Méthodologie.......................................................................................................................................... 48
5. Objectif.................................................................................................................................................... 50
5.1. Compréhension des données ........................................................................................................ 50
5.2. Préparation des données .............................................................................................................. 52
6. Modeling ................................................................................................................................................. 54
BI : Business intelligence.
DWH : Datawarehouse.
DIM : Dimension.
De nos jours, le monde entier connait une révolution technologique considérable dans les
différentes secteurs grâce à l’informatique qui est toujours en évolution. Certes, on connait que
la plus grande richesse d’une entreprise est son information qui est une clé primaire de leur
réussite, mais la faite de trouver les informations sous de nombreuse données, déstructurés et
hétérogènes, les responsables des organisations trouvent des difficultés au niveau de la prise de
décision à travers ces données, qui peuvent être représentés sous de nombreuses forme.
L’informatique décisionnelle, dite aussi Business Intelligence est destiné pour cette optique.
Elle prend une place importante dans les systèmes d’information depuis son apparition. La BI
permet aussi une sélection des informations opérationnelles pertinentes pour chaque entreprise.
Celles-ci sont ensuite normalisées pour alimenter un entrepôt de données.
A partir de ce concept est née la notion de modélisation dimensionnelle. Elle est fondamentale
pour répondre aux exigences de rapidité et pour faciliter l’analyse. La BI permet aussi de rendre
les données d’un entrepôt cohérentes, intelligibles, lisible et faciles à accéder. L’informatique
décisionnelle doit produire des indicateurs et des rapports à l’attention des analystes.
Dans ce cadre, l’équipe de la startup X-point a décidé de mettre en place un système décisionnel
pour leur plateforme nommé Workpoint afin de permettre au admin de mieux analyser et mieux
suivre l’occupation de son espace de travail et l’activité de ses employés.
Nous avons abordé durant ce rapport le travail que nous avons réalisé au sein de X-point qui
s’articulera sur les six chapitres suivants :
Le premier chapitre intitulé « Organisme d’accueil et cadre du projet » est réservé à l’étude
générale du projet, il présentera l’entreprise d’accueil
1
Le quatrième chapitre intitulé « Implémentation de l’entrepôt de donnée » présente le sprint
2, il consiste à implémenter notre Datawarehouse.
2
Chapitre1 : Organisme d’accueil et Cadre du projet
Introduction
Dans ce premier chapitre intitulé Cadre Général, nous nous intéressons à introduire l’organisme
d’accueil X-point, au cadre et au contexte du projet.
X-Point est une startup tunisienne labellisée, qui a été fondée en 2021 qui développe des
solutions facilitant les interactions de l’employé avec son environnement de travail. Son activité
principale est la création et l’exploitation de plateformes innovante.
« Workpoint » est une plateforme qui a été développée dans cette optique. En effet, l’objectif
du projet « WorkPoint » est de proposer une solution technologique complète qui accompagne
les employés et facilite leur quotidien à travers l’exposition de plusieurs services offerts par leur
structure professionnelle, à consommer n’importe où et n’importe quand, permettant ainsi une
meilleure planification, une amélioration de la productivité, une automatisation des flux et
traitement, et une gouvernance optimale des ressources de l’entreprise avec une vue 360° de
l’employé. Les flux sont automatisés et tracés, les règles et politiques internes exposées et
respectées, l’expérience est digitalisée et les données sont consolidées et bien exploitées.
2. Cadre général
Dans cette partie, nous introduisons le cadre général du projet, ensuite nous aborderons l’étude
de l’existant et sa critique puis la problématique et nous concluons par la solution proposée.
3
2.1. Contexte du projet
Afin d’atteindre l’objectif d’une vue 360°, et d’une meilleure gouvernance la startup « X-
point » cherche à améliorer la plateforme « Workpoint », en introduisant un module décisionnel
afin d’aider ses clients à mieux gérer leur espace de travail, superviser le comportement de ces
employés et faciliter la prise des décisions.
L’étude de l’existant est une étape importante dans chaque projet et précisément dans les projets
BI, elle est formée à évaluer le système que nous voulons entrainer des solutions pour indiquer
les insuffisances et les défaillances que nous devons atténuer.
Notre plateforme offre aux employés différentes fonctionnalités tel que la recherche des
disponibilités des ressources, ils peuvent consulter les ressources accessibles sur les étages afin
d’effectuer la réservation d’un bureau ou de place parking et Après avoir passé une réservation
les employés peuvent confirmer la réservation en faisant l’opération de Checkin ou bien ils
peuvent annuler la réservation. Ils peuvent consulter l’historique des opérations et les
réservations en cours.
Et puisque la startup « X-point » est récemment fondée, elle ne peut pas implémenter une
plateforme complète qui englobe toutes les fonctionnalités en courte durée donc elle n’a pas
encore vraiment implémenté un système décisionnel pour sa plateforme. Donc dans notre
projet, nous avons développé une idée innovante afin de répondre aux besoins des clients et
rendre la plateforme complète et pour mieux se projeter dans le futur.
2.3. Problématique
4
2.4. Solution proposée
Afin de rendre la plateforme performante et complète de tous les côtés, ou elle répond aux
besoins du client, nous avons implémenter une solution décisionnelle qui permet à l’admin de
la plateforme de suivre l’occupation des espaces de travail, le parking et le comportement de
ces employés et leur degré d’adhésion à l’utilisation de la plateforme.
Notre solution ne s’arrête pas ici, elle offre aussi au client la possibilité de viser le futur en
faisant des prédictions concernant le comportement des clients selon un historique bien précis
Pour ce faire , notre solution consiste tout d’abord à comprendre les besoins métiers et les
données afin d’extraire que les données nécessaire pour implémenter notre datawarehouse en
se basant sur la table de fait Fact_History et d’autre différentes dimensions puis nous allons
analyser les données afin d’implémenter des tableaux de bord convenable et précis qui
répondent aux besoin du client , puis l’analyse prédictif tout en se basant sur des données
historisé.
Dite aussi les besoins métier, les besoins fonctionnels sont les différentes fonctionnalités
réaliser par le système pour répondre à un problème existant. Voici les différents besoins
fonctionnels pour notre projet :
Les besoins non fonctionnels sont des critères permettent d’améliorer la qualité du produit. Ils
représentent aussi les exigences implicites auxquels le système doit répondre afin d’assurer une
meilleure qualité du produit.
5
Les critères à respecter dans notre solution sont :
5. Méthodologie
La réalisation du projet dans les délais de livraison est surement l’objectif principal de chaque
équipe qui développe des logiciels. L’un des problèmes les plus courants rencontrés lors de la
création de logiciels est la faiblesse des spécifications et les changements soudains des
exigences qui peuvent se passer. Cela a un impact non seulement sur l’équipe de
développement, mais cela a également un impact sur le temps nécessaire à la mise en œuvre du
projet qui peut entrainer des délais de livraison. Pour éviter ces situations critiques, nous
adoptons une approche agile dans la gestion de nos projets.
Afin de mieux satisfaire les attentes de son client, X-point a choisi d’aborder le projet selon une
approche agile qui permet une certaine flexibilité afin de s’adapter aux éventuels changements.
Le projet sera donc géré par le Framework SCRUM.
6
La méthodologie SCRUM est la plus utilisée des méthodes Agile dans le monde. Elle définit
un cadre de travail qui permet de réaliser des projets complexe. En effet cette méthode peut être
utilisée dans tout type de projet d’une manière simple.
SCRUM est basé sur les étapes spécifiques suivantes, comme indiqué dans le schéma ci-
dessus :
7
- User Stories : c’est une explication générale d’une fonctionnalité logicielle écrite du point de
vue de l’utilisateur.
-Backlog du sprint : c’est une liste de tâches qui sont convenues par l’équipe de mêlée et qui
doivent être réalisées dans une période de temps appelée sprint. Il dure environ 2 à 4 semaines.
-Scrum quotidien : c’est une réunion quotidienne qui dure 15 minutes chaque jour au cours de
laquelle l’équipe discute de ce qu’ils ont fait hier et ce qu’ils vont faire aujourd’hui.
La réalisation d’un projet informatique est une opération complexe qui nécessite des ressources
importantes en termes de finances, de temps et de personnel. De plus, une mauvaise étude peut
aboutir à un résultat non conforme à la demande.
Il s'agit deux approches différentes pour une conception des entrepôts des données qui sont les
plus utilisés de deux pionniers des data Warehouse Bill Inmon et Ralph Kimball.
• L’approche BOTTOM UP
8
6.1. L’approche BOTTOM UP (Ralph Kimball)
L'approche de Kimball pour concevoir une maison d'entrepôt de données a été présentée par
Ralph Kimball. Cette approche commence par la découverte des processus métier. Ces
informations sont analysées et bien documentées. Le logiciel Extract Transform Load (ETL)
collecte toutes les données de plusieurs sources de données appelées magasins de données et
les charge dans une zone commune appelée staging Area. Celui-ci est ensuite converti en cube
OLAP [1].
Approche Inmon de conception d’une maison Datawarehouse a été introduite par Bill Inmon.
Cette approche commence par le modèle de données d’entreprise. Ce modèle reconnaît les
domaines clés et prend également en charge le client, le produit et le fournisseur. Dans cette
approche la création d'une data Warehouse est une étape primordiale selon Imnon, afin d'assurer
l'intégrité et la cohérence des données au sein d'une entreprise, puis à partir de cet entrepôt de
données, qui est la source unique, on fait la création des divers Datamart [1].
9
Figure 3 : Inmon Model
Après avoir définit les deux principales approches de conception du data Warehouse, on trouve
que l'approche BOTTOM UP est le plus adaptée à notre projet. On va commencer par créer des
Datamart afin d'obtenir des résultats sans l'attente de la conception d'un référentiel centralisé
(Datawarehouse).
Conclusion
Dans ce premier chapitre, on a présenté l’organisme d’accueil et on a placé notre projet dans
son contexte en faisant l’étude de l’existant, la problématique et la solution proposé qu’on va
la réaliser en respectant les concepts de la méthodologie SCRUM et l’approche Bottom Up pour
l’implémentation du datawarehouse. Ce qui va nous mener au chapitre suivant intitulé Sprint 0
10
Sprint 0 : Planification du projet
Introduction
Dans ce deuxième chapitre intitulé sprint 0 consiste à définir les différents acteurs du système
et leur privilège. Après on va faire le backlog du produit et on va faire la planification du
processus des sprint en fonction des besoins fonctionnel et non fonctionnel.
Un acteur est une entité qui n’appartient pas au système. Il peut être une personne ou un autre
système informatique qui utilise les services offerts par les interfaces de l’application.
Notre Système contient un seul utilisateur qui est l’admin, Il le CEO de l’entreprise.
Cet acteur a un accès illimité aux différents tableaux de bord, comme il peut modifier ces
tableaux de bord et choisir parmi les membres de son équipe ceux qui peuvent accéder aux
visualisations.
2. Product Backlog
Le Product Backlog est une étape indispensable dans la méthodologie SCRUM, il appartient au
Product Owner, il englobe toutes les fonctionnalités qui vont être mis en œuvre durant la
planification du sprint. Il contient ces éléments :
11
Afin de mieux réaliser notre projet et afin d’assurer son meilleur avancement nous avons
commencé par la planification des sprints.
La planification des sprints est une étape indispensable dans la méthodologie scrum, elle nous
permet d’identifier les différents sprints, les user stories et la durée estimée pour chaque sprint.
12
Conclusion
Dans ce deuxième chapitre, nous avons identifié les acteurs de notre application ainsi que le
Product Backlog, le diagramme de cas d’utilisation ainsi que la planification des différents
sprints qu’on a fait durant ce stage. Dans le chapitre suivant, nous allons détailler le premier
sprint la compréhension des données.
13
Sprint 1 : Compréhension métier, donnée et chargement
des données
Introduction
Dans ce chapitre, nous allons explorer les données de la startup afin de les comprendre et
extraire seulement les données nécessaires pour implémenter notre solution décisionnelle.
1. Sprint Backlog
Le sprint backlog, c'est la liste de l'ensemble des éléments à réaliser tout au long du sprint, il
décrit les fonctionnalités à faire durant ce sprint.
2. Compréhension métier
La première étape de tout projet est la compréhension métier qui se concentre sur la
compréhension des objectifs et des exigences du projet. Comment réussir sans comprendre le
métier en question. Dans ce cadre, nous avons lancé notre recherche afin de pouvoir découvrir
le secteur de travail de la startup X-point, le type de la base de données qu’elle utilise, le produit
qu’elle présente et le client direct avec la Startup. Donc notre mission était d’implémenter une
solution décisionnelle pour la plateforme.
Ce qui nous a mené à l’étape suivante qui est la compréhension de donné afin de bien réussir
notre projet.
Afin d’assurer l’analyse et l’organisation rapides des données variées de très grand volume, la
base de données utilisée pour développer la plateforme Workpoint est une base de données
14
NoSQL (Not Only SQL) stocké dans le système de gestion de base données MongoDB. Plus
précisément, dans le cloud de MongoDB appelée MongoDB Atlas.
Nous allons commencer notre travail à partir des collections qui se trouvent dans le cloud de
MongoDB, voici quelques extraits des collections que la startup a utilisé afin d’implémenter
leur plateforme :
• Desk Collection
• Zone collection
• floor collection
16
➢ Id floor : id unique pour représenter le desk
➢ Liste des zones : représente la liste des zones dans chaque floor
➢ Name : Le nom de la floor
➢ Building: le building ou il appartient le floor
➢ Floor_num : Pour indiquer le numéro du floor
• User collection
17
• Histoire collection
La collection histoires contient l’historique de toutes les transactions faites par les employés
et elle contient les attributs suivants :
18
4. Diagramme de classe
En se basant sur ce diagramme de classe et ces données, on a commencé à extraire les données
nécessaires afin d’établir notre ETL et implémenter notre datawarehouse.
Notre première étape pour commencer la transformation et le chargement de données dans notre
datawarehouse c’est l’extraction de données, donc on a commencé par importer les tables qu’on
aura besoin du MongoDB cloud vers notre machine pour avoir une base de données locale.
19
5.1. Technologies
Comme on a mentionné précédemment, notre base de données est Nosql stocké dans le système
de gestion de base donnée MongoDB, donc on va utiliser MongoDB Compass qui est une
interface graphique de MongoDB qui a été utilisée pour gérer la base des données.
Nous avons créé notre base de données WP_Data puis on a importé les collections nécessaires
pour commencer après le process d’ETL.
Conclusion
Dans ce chapitre, nous avons compris l'activité du projet et nous avons fait l’extraction des
collections nécessaires pour notre projet que nous allons utiliser ensuite dans la conception et
la mise en œuvre de l'entrepôt de données (Sprint 2) qui est l’objective du chapitre suivant.
20
Sprint 2 : Implémentation de l’entrepôt de donnée
Introduction
Dans ce troisième chapitre, notre objectif sera divisé en trois, tout d’abord on va extraire les
données nécessaires puis nous allons prédéfinir le modèle nécessaire du datawarehouse, enfin
stocker notre nouvelle base de données dans une nouvelle base destination qui sera sous forme
multidimensionnel.
1. Sprint Backlog
2. Modèles Datawarehouse
Pour implémenter un système décisionnel, il faut organiser les idées, les décrire et les relier
entre elles pour faciliter le travail. C’est ce qu’on appelle la modélisation. Modéliser un système
avant de le construire permet de mieux comprendre son fonctionnement le but est de maîtriser
sa complexité en la transformant en graphisme, et d'établir ainsi une vision globale des données
collectées.
Pour Modéliser une Datawarehouse, il existe trois types de modélisation qu’on peut établir.
Un schéma en étoile est le modèle le plus simple et le plus couramment utilisé dans la
conception d'un entrepôt de données. Il se compose d'une seule table de faits entourée de
nombreuses tables de dimensions non liées entre eux.
• Avantages
➢ Facilité de navigation : Cela simplifie grandement les requêtes (la table de faits
est liée à chaque table de dimension par une relation unique, une jointure unique)
➢ Efficace : Diminue le temps d’exécution.
21
• Inconvénients
➢ Toutes les dimensions ne sont pas liées aux mesures.
➢ Chaque dimension est stockée dans une table de dimension distincte qui se
traduit par dénormalisation.
C’est le modèle en étoile avec normalisation des dimensions. Il peut y avoir une dimension
hiérarchies pour diviser les tables de dimensions lorsqu'elles sont trop grandes.
• Avantages
➢ Normalisation des dimensions
➢ Réduction des redondances
• Inconvénients
➢ C’est un modèle un peu plus complexe
➢ La performance est complexe avec de nombreuses jointures souvent coûteuses
Le modèle en constellation représente plusieurs tables de faits qui sont liées aux dimensions
communes. Ces tables de faits font des relations avec les dimensions ou chaque table de fait a
ces propres dimensions, donc on peut conclure que le modèle on constellation est un ensemble
de modèle en étoile et le modèle en flocon en même temps.
• Avantages
➢ C’est une combinaison du modèle en étoile et modèle flocon, donc on peut
utiliser des requêtes complexe.
➢ Les tables dimensionnelles sont partagées par le nombre de tables de faits
• Inconvénients
➢ Il a de nombreuses jointures entre les tables dimensionnelles et de faits et il est
donc difficile à comprendre.
➢ Difficile à exploiter.
22
➢ Elle utilise plus d’espace de stockage dans la base de données par rapport le
modèle en étoile.
3. Technologies
Talend est un logiciel de type ETL développé par la société Talend en 2005 basé sur le langage
java, il permet d’extraire des données d’une source, de modifier ces données, puis de les
recharger vers une destination. La source et la destination des données peuvent être une base de
données, un service web, un fichier csv. Et bien d’autres… grâce aux plusieurs composants et
des technologies qu’il offre ce logiciel [2].
Il y a plusieurs versions différentes de ce logiciel, comme Talend for data intégration, for big
data, for data quality et for ESB …
Pentaho est un logiciel de Business Intelligence (BI) qui fournit des fonctionnalités
d’intégration de données, de services OLAP, de reporting, de tableaux de bord d’informations,
d’exploration de données et d’extraction, de transformation, de chargement (ETL).
Il permettant de créer des solutions de Business Intelligence. Bien que plus connu pour son
Business, le logiciel Pentaho est en effet quelques classes Java avec des fonctionnalités
spécifiques. En plus de ces classes Java, on peut créer n’importe quelle solution BI.
23
Figure 14 : Logo Pentaho
3.3. PostgreSQl
Une base de données Oracle est une collection de données traitées comme une unité. Le but
d’une base de données est de stocker et de récupérer des informations connexes. IL est sécurisé
et rapide lors de la récupération des données.
24
4. Comparaison entre les outils d’ETL
Avant de commencer notre partie ETL, on a fait une comparaison entre les outils d’ETL
Vous pouvez voir un tableau comparatif entre l’outil Talend et Pentaho dans l’annexe 5 :
Après avoir comparé les deux outils d’ETL on a choisi l’outil Talend Open Studio For big data
car il permet la facilité, réduire le cout, la maintenance et le transfert de connaissance.
Aussi Talend for big data et non pas Talend for data intégration car Talend for big data permet
les connexions avec des base de données Nosql alors que le deuxième type n’a pas ce
connecteur.
Notre entrepôt de donnée est sous la forme d’un modèle en étoile, il contient 7 dimensions et
une table de faits.
• Dim_Desk : cette dimension contient la liste des desks qui se trouvent dans chaque
zone.
• Dim_Floor : cette dimension contient la liste des floors qui se trouvent dans chaque
batiments.
• Dim_Grade : cette dimension contient la grade de chaque employé.
• Dim_Slot : cette dimension contient la période du jours, Si la première moitié du jours
(AM), ou bien la deuxième moitié du jours (PM).
• Dim_user : Cette dimension contient la liste des employées qui travaillent dans
l’entreprise .
25
• Dim_Zone : cette dimension contient la liste des zones qui se trouvent dans chaque
floor.
• Dim_Date : cette dimension est parmi les dimensions indispensable dans chaque
modèle de datawarehouse, elle contient l’axe du temps qu’on va, selon lui, analyser nos
besoins.
Pour ce faire, et comme c’est déjà mentionné, on va utiliser l’outil Talend open studio for big
data pour la partie d’ETL. Donc tout d’abord on a commencé par la création de la connexion
entre ce logiciel et notre base de données source et notre base de données destination aussi afin
d’assurer le bon déroulement d’ETL.
26
Après avoir créé la connexion, on doit établir la configuration de la base de données source.
Le type de notre base de données source est MongoDB, donc on a configuré le type, le nom de
la base de données, le port sur laquelle on va se connecter avec cette base et le serveur.
27
• Base de données destination :
28
Pour faire la connexion et la configuration du base de données destination, on a précisé le nom
de la connexion, le type de la base données PostgreSQL, l’identifiant, le mot de passe, le
serveur, le port et le nom du datawarehouse.
➢ Dim_Desk :
29
Figure 23 : Configuration Dim_Desk
Pour obtenir la dimension Desk bien implémenté, on a commencé par la création du job, qui est
la représentation graphique d'un ou plusieurs composants reliés entre eux. Il regroupe un
ensemble de tâches et permet d'exécuter des processus de flux de données. Puis on a utilisé le
composant Tmap pour assurer le mapping entre la source et la destination, le composant tlogrow
pour assurer le bon déroulement du transfert des données et puis la configuration de la
dimension comme la montre la figure 22 pour assurer le bon chargement de la dimension dans
la nouvelle base de données.
➢ Dim_Zone :
30
Figure 25 : Mapping Dim_Zone
➢ Dim_Floor
31
➢ Dim_User :
➢ Dim_Grade :
➢ Dim_Date :
La dimension Date est une table essentielle du modèle de données qui nous permet d'analyser
plus efficacement les performances sur différentes périodes de temps. Elle doit être inclus dans
32
chaque modèle dimensionnel contenant des dates ou nécessitant une intelligence de date dans
le cadre de l'analyse. Voici le code qui nous a permis d’implémenter la dimension Date :
Une table de fait représente un ensemble de donnée structurée, elle est la table centrale de
chaque modèle, cette table stocke des informations quantitatives pour l’analyse. La table de fait
est constitué de deux types de colonnes, la colonne des clés étrangères qui permet de créer la
relation avec les tables de dimensions et la colonne pour les mesures contient les données à
analyser.
Dans notre cas il existe la collection Histories, qui stocke l’historique de chaque transaction fait
par chaque employé, donc cette collection, après des transformations bien précis, elle sera notre
table de fait dans notre modèle. Cette collection contient des données non structurées et des
listes, donc notre rôle comme premier lieu sera de rendre les données de cette collection bien
structurée. Puis à partir ces transactions on va créer les mesures et les colonnes nécessaires pour
atteindre nos objectifs d’analyse.
En premier lieu, on a éclaté la liste des réservations afin de rendre les données structurées, on a
édité le mapping dans notre collection d’entrée dans le job Talend comme le montre la figure
30. On a mentionné les entrées tout indiquant le chemin du nœud parent qui est le champ
Réservation.
33
Figure 30 : Editer mapping
34
6. Modèle Datawarehouse
Après avoir implémenter les dimensions et notre table des faits, voici notre modèle du
datawarehouse bien implémenter sous forme du modèle en étoile.
Conclusion
Au cours de ce sprint, nous avons réussi à concevoir et à mettre en œuvre l'entrepôt de données,
L'étape suivante consiste maintenant à créer des mesures pour l’analyse et à générer des
rapports.
35
Sprint 3 : Implémentation des tableaux de bords
Introduction
Après avoir terminé la phase d’intégration des donnés, nous passons à la phase de reporting.
Au cours laquelle nous allons réaliser un tableau de bord interactif qui répond aux besoins des
décideurs et leur facilite la prise de décision.
Ce chapitre sera consacré à la réalisation du troisième sprint dans lequel nous allons mentionner
les indicateurs de performance conduisant à un tableau de bord.
1. Sprint Backlog
2. Technologies
Un Business Analyste est souvent amené à créer des présentations visuelles, que ce soit pour
organiser des sessions de travail avec ses contributeurs, piloter ses activités, valider ses livrables
ou encore aider à la prise de décision.
2.1. Tableau
Tableau est un puissant outil de visualisation de données il permet de créer des graphiques et
des visualisations efficaces pour faciliter la compréhension des données chiffrées. On peut aussi
créer des graphiques, des tableaux, des cartes et d’autres graphiques en fonction de vos besoins.
36
2.2. QlikView
Pour réaliser nos visualisations et atteindre nos objectifs, on a choisi le dernier logiciel,
PowerBi, car c’est un outil très puissant, il nous offre plusieurs fonctionnalités avancées de plus
il n’est pas cher en termes de licence et l’entreprise a un domaine de ce logiciel [3].
Le logiciel Microsoft Power Bi est composé de trois composants principaux qui sont :
• Power Bi Desktop :
Est une application bureau qui permet aux utilisateurs de se connecter à plusieurs sources de
données, de les transformer ainsi de les visualiser.
Cette application contient plusieurs qui nous permet à transformer nos données comme power
Qwery et de créer des mesures comme le Langages DAX.
• Power Query :
L’éditeur Power Query représente l’interface utilisateur Power Query, Dans laquelle on peut
ajouter ou modifier des requêtes, gérer des d’autres en regroupant ou en ajoutant des
37
descriptions aux étapes de requête, ou visualiser nos requêtes et leur structure avec différentes
vues.
• DAX :
Data Analysis Expressions, est un langage de formules utilisé dans les outils de Business
Intelligence et de visuels, c’est un langage de formule, il contient 250 fonctions prêtes à être
utilisé. Avec DAX on peut mesurer le temps et les périodes :
– Effectuer des mesures par an, semestre, trimestre, mois, semaine, jour classique ou bien fait
(ne mesurer qu’un mois entier quand on compare à un autre mois)
– Mesurer le temps
• Power Bi Service
Est un service SAAS (Software As A Service), il s’agit d’un service cloud en ligne. Il permet
aux utilisateur le partage des tableaux de bords et des rapports et de faire des modifications
simples.
• Power Bi Mobile
Est une application mobile qui donne l’accès aux utilisateurs pour consulter les tableaux de
bords et les rapports via n’importe quel appareil mobile soit smartphone ou tablette.
38
Figure 33 : Logo Power BI
4.1. KPI’S
KPI dans le domaine du Biseness Intelligence, sont appelée aussi les clés de performance, sont
des mesures et des objectifs que l’admin ou bien l’observateur des tableaux de bords veut les
voir inclus dans les tableaux de bords. Voici la liste des kpi’s qu’on va les afficher dans nos
tableaux de bords :
➢ Taux de réservation
➢ Taux d’occupation
➢ Total Checkin
➢ Total Checkout
➢ Total Cancellation
➢ Top 5 places occupées
➢ Top 5 places vides
➢ Différence de reservation Et d’occupation entre PM et AM
Nos tableaux de bords seront basés sur deux axes importants, en premier lieu des tableaux de
bords concernant les espaces de travails (floor, zone et desks) et en deuxième lieu des tableaux
de bords concernant les employés et leur comportement les analyses seront par : User, Grade,
ServiceLine, SubServiceLine, et on a d’autre analyses par rapport l’axe du temps, par mois,
semaine, jours, par semestre et par slot (AM et PM).
39
4.2. Colonnes calculées
Pour réussir et atteindre ces objectifs, il faut ajouter d’autres colonnes calculées dans la table
de faits.
▪ Reserved:
Cette colonne nous permet de vérifier si la table est réservée ou non, on peut la déterminer à
partir la colonnes TransactionType
▪ Occupied :
Cette colonne nous permet de vérifier si la table est réservée et occupée ou non, on peut la
déterminer aussi à partir la colonnes TransactionType
▪ totalReservationFloor:
Cette colonne nous permet de compter le total de réservation d’un floor précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Reserved
▪ totalOccupationFloor:
40
Cette colonne nous permet de compter le total d’occupation d’un floor précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Occupied
▪ totalReservationZone :
Cette colonne nous permet de compter le total de réservation d’une zone précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Reserved
▪ totalOccupationZone :
Cette colonne nous permet de compter le total d’occupation d’un zone précis pendant un seul
jour donné et un slot précis, on va la déterminer à partir la colonne calculée Occupied
▪ TotalDeskFloor:
Cette colonne va nous permettre de calculer le total des desks dans un floor
41
▪ TotalDeskZone:
Cette colonne va nous permettre de calculer le total des desks dans une zone
▪ TauxResFloor :
▪ TauxOccFloor :
▪ TauxOccZone :
▪ TauxResZone :
42
▪ NbrePlaceVide :
5. Implémentation
Le tableau de bord est le processus de présentation des données dans des visualisations efficaces
qui décrivent l'ensemble du récit des indicateurs clés de performance, des stratégies d'entreprise
et des processus sous la forme d'un tableau de bord interactif.
Notre client possède deux parkings dans son bâtiment, on va commencer par la présentation du
tableau de bord pour les deux parkings. Dans ce tableau de bord on a mis en place des
visualisations pour le taux d’occupation et taux de réservation des deux parkings, on peut
constater que le parking -1 est plus utilisé que le parking -2, on a mis en place aussi les filtres
des slots et du date, on a mis seulement les mois mars avril et mai parce que le parking est
récemment lancé.
43
5.2. Tableau de bord des floors
Pour ce premier tableau de bord, on a mis en place des différentes visualisations pour le taux
d’occupation et taux de réservation.
On peut dégager à partir ce tableau de bord plusieurs interprétation, on remarque que le taux de
réservation est toujours supérieur au taux d’occupation, cela veut dire que plusieurs employés
font la réservation et ils n’assistent pas, ou bien ils oublient de faire le checkin lorsqu’il
assistent. On a aussi la possibilité de filtrer par date par slot et par zone, le tableau à droite
montre la différence d’occupation des zones entre un mois et un autre, avec l’icon de flèche s’il
y a une augmentation ou diminution, et les piecharts qui montrent l’occupation par ServiceLine
et SubServiceLine.
44
Figure 36 : Tableau de bord floor 2
Pour le tableau de bord suivant, on a mis le total checkin par jour, la difference entre les taux
d’occupation et de reservation par mois, et une comparaison par floor, on remarque que le floor
6 a le plus grand taux de reservation et le floor 8 a le plus taux d’occupation, par contre le floor
0 et floor 10 on le plus moins taux d’occupation et de reservation, et pour éviter
l’encombrement, l’admin doit encourager les employés à utiliser ces floors aussi, on remarque
aussi que le total de checkin se diminuent du lundi à vendredi.
45
1
Pour le dernier tableau de bord, on a mis le total checkin et checkout par employé, et on a les
filtres bien précis en fournissant tous les types et les grades des employé, par jours par mois et
par slot aussi.
Conclusion
L’analyse descriptive est essentielle pour chaque projet de business intelligence, il permet aux
décideurs d’avoir une compréhension plus approfondie des données et leur permettre de prendre
des meilleures décisions sur les actions futures dans les entreprises. Ce chapitre a été consacré
à la présentation les différents graphiques des tableaux de bord, et nous a permis de constater
le degré d’adhésion avec l’application, le discipline des employés et la différence entre les taux
de réservations et taux d’occupation. Le chapitre suivant sera consacré pour faire une analyse
prédictive.
46
Sprint 4 : Analyse prédictive
Introduction
Dans ce chapitre, on va introduire la partie data science dans notre projet, ou on va implémenter
un model prédictive pour voir si un opérateur va quitter ou non.
1. Sprint Backlog
2. Technologies
2.1. Python
Python est le langage de programmation le plus pertinent pour la science des données. Il est
considéré comme le langage de programmation le plus en vogue pour le traitement de texte et
le traitement numérique. Comparé à R, Python est beaucoup plus rapide et mature dans le
traitement de données qu’elles soient de type textuel ou numérique très volumineuses grâce à
des packages complets tels que Scikit-learn et NLTK [4].
Jupyter est une application web utilisée pour programmer dans plus de 40 langages de
programmation, dont Python, R ou Scala. Jupyter est une évolution du projet IPython, qui
permet de créer des blocs-notes : programmes contenant à la fois du texte en démarque et du
code en Python, R, etc.
47
Figure 39 : Logo jupyter
2.3. Anaconda
3. Méthodologie
En science des données, il n’existe toujours pas de méthodologie faisant l’unanimité quant à la
gestion d’un projet d’exploration de données. Dans ce contexte, nous choisissons de travailler
selon la méthodologie CRISP-DM. Elle divise le processus de data mining en six étapes, en
expliquant les relations entre ces dernières. L’avantage de cette méthode est qu’elle est
facilement adaptable dans le cas où un projet ne traite pas toutes les étapes, concentrant le travail
sur les phases demandées. La figure suivante illustre les différentes phases de CRISP-DM.
48
Figure 41 : Méthodologie Crisp-Dm
4. Machine learning
De nombreuses approches sont utilisées pour découvrir les propriétés des ensembles de
données. L'apprentissage automatique en fait partie. Dans l'approche ML elle-même,
différentes techniques sont proposées. Ils sont à choisir en fonction de la nature des données et
du type d'étude :
● Méthodes utilisant des principes d'arbre de décision assez proches des techniques de
classification
49
4.2. Apprentissage non supervisé
5. Objectif
Suite au manque des données suffisante pour prédire le comportement d’un employé s’il va
démissionner oui non, on a cherché une base de données similaire à notre problème afin de
résoudre un problème pareil et avoir une vision approfondie sur le domaine du machine
Learning. Donc on a trouvé des données qui peuvent prédire si un opérateur va quitter ou non
selon des différents services.
Donc on va utiliser une base des données qui contient des informations à propos :
● Informations sur le compte client : depuis combien de temps il est client : « contract,
payment method, paperless billing, monthly charges, and total charges. »
● Informations démographiques sur les clients : « gender, age range, et s’ils ont des
partenaires ou non ».
Chaque ligne de notre base de données contient un client et les colonnes présentent les
attributs qu’on vient de mentionner. La base de données contient 7043 clients et 21 attributs.
50
La figure montre que 73,46 % des clients sont restés clients tandis que 26,53 % des clients
ont quitté.
Après on a sélectionné les variables qualitatives pour visualiser l’histogramme qui va nous
montrer le nombre des opérateurs qui ont quitté en fonction de chaque variable qualitative
afin de dégager des interprétations claires sur notre base de données ce qui va nous aider
dans la partie de préparation de données.
51
5.2. Préparation des données
Après avoir compris les données et l’importance de chaque attribut, on passe à l’étape de
préparation de données afin d’avoir un bon résultat de notre model.
Au cours de cette étape, nous avons supprimé les colonnes inutiles de "customerID", "gender"
et "PhoneService" qui ne contiennent aucune information utile et n'affectent pas la variable
cible "Churn".
▪ Encoding
Notre base de données contient 4 variables quantitatives et les autres variables sont des variables
qualitatives, donc on doit convertir les variables qualitatives en quantitative afin de pouvoir les
traiter.
52
Après avoir fait la conversion des variables qualitatives, voici les colonnes générer par le
dummy encoding :
▪ Matrice de corrélation
Généralement, une matrice de corrélation est "carrée", avec les mêmes variables affichées dans
les lignes et les colonnes. Elle nous permet d’extraire la corrélation entre les variables.
Comme nous montre la figure, ils existent quelques variables qui sont fortement collerez et
qu’on doit les éliminer afin que notre algorithme apprenne beaucoup plus rapide.
▪ Split dataset
53
• En premier lieu on a fait l’extraction de toutes les caractéristiques de notre base de
données et les affecter à une variable que nous avons appelée X qui contient toutes les
variables sauf la variable cible.
• Puis l’extraction de la variable cible dans une autre variable qui s’appelle Y
• Puis on divise notre base donnée en partie train qui prend 80% du base de données et
partie test qui prend les 20% restantes.
▪ Normalisation
6. Modeling
KNN est un algorithme de classification comme il peut être aussi utilisé pour résoudre des
problèmes de régression. L’algorithme KNN prend comme Input un ensemble de donnée D, un
nombre entier k, une nouvelle observation K et une fonction de définition distance d.
• La distance Euclidienne
• La distance de Manhattan
• La distance de Minkowski
Ainsi pour les données quantitatives (exemple : poids, salaires, taille, montant de panier
électronique etc.…) et du même type : la distance euclidienne est un bon candidat.
La distance de Manhattan est une bonne mesure `à utiliser quand les données ne sont pas du
même type (exemple : Age, sexe, longueur, poids etc.…).
54
Figure 45 : Implémentation du KNN
Pour un premier essai on a reçu un pourcentage de précision est égale à 79% comme test score,
On a essayé de chercher les meilleurs paramètres afin d’améliorer le résultat obtenu. On a créé
un dictionnaire param_grid qui contient deux paramètres ‘n_neighbors’ et ‘metric’, pour chaque
paramètre on a une liste des valeurs qu’on peut utiliser pour générer diffèrent modèle.
Pour avoir un meilleur résultat, on a obtenu comme meilleur paramètre ‘metrics’ = ‘Manhatten’
et ‘n_neighbors’= 6. Voici l’implémentation du nouveau modèle et le nouveau résultat obtenu.
Après avoir terminé les étapes précédentes, on a commencé à appliquer notre modèle final à
X_test afin de prédire la variable cible Y.
55
Voici ci-dessous la matrice de confusion qui nous montre les valeurs prédites par notre modèle :
Conclusion :
Nous avons réussi, à partir de ce chapitre, d’élaborer notre modèle de prédiction pour les
résultats. Et avec ce chapitre, nous arrivons à la fin de notre rapport.
56
Conclusion générale et perspectives
Dans ce prоjet, nоus avоns été amenés à dévelоpper un mоdule décisiоnnel permettant d’assurer
le suivi des espaces de travails et le comportement des employé et leur degré d’adhésion avec
la plateforme en expоsant les différents états analytiques dans des tableaux de bоrd dynamiques.
Rappelоns que nоtre partie cоnsistait à créer un système qui nоus aide à prendre des décisiоns
et la startup X-pоint. Pоur se faire, nоus avоns prоcédé, en premier lieu, à la spécificatiоn des
besоins fоnctiоnnels et nоn fоnctiоnnels de nоtre prоjet ainsi qu'à la mise en évidence des
différentes fоnctiоnnalités à travers les user stоries. Cela nоus a cоnduit à la phase suivante de
cоnceptiоn et de mise en œuvre des différents sprints. En termes de réalisatiоn, nоus avоns
répоndu amplement aux оbjectifs et besоins établis par la startup malgré tоutes les difficultés
rencоntrées tant sur le plan fоnctiоnnel que technique en plus du manque de dоnnées et leur
degré de difficultés. Ce stage nоus a appоrté de nоmbreux avantages sur le plan persоnnel et
prоfessiоnnel car il nоus permettra d'оbtenir le diplôme natiоnal d'ingénieur en infоrmatique et
aussi de dévelоpper les cоnnaissances requises pendant nоtre cursus universitaire et surtоut
d'appliquer les meilleures pratiques d'un ingénieur en infоrmatique. Ensuite, et cоmme
perspectives, nоus pоursuivrоns nоtre travail sur la partie prédictiоn dès que nоus aurоns
suffisamment de dоnnées pоur le faire. Et nоus cоntinuerоns à améliоrer nоs tableaux de bоrd
afin d'оbtenir plus de résultats qui peuvent aider à prendre des décisiоns et pour dernier
perspective c’est de rendre le travail sur le cloud.
57
Bibliographie
[1] https://epargne.ooreka.fr/astuce/voir/598485/top-down-et-bottom-upx
[2] https://www.next-decision.fr/editeurs-bi/etl/talend-open-
studio#:~:text=Talend%20Open%20Studio%20(TOS)%20est,'un%20syst%C3%A8me
%20d'information.
[3] https://fr.wikipedia.org/wiki/Microsoft_Power_BI
[4] http://esoaf.com/services/developpementpython
[5] https://ia-data-analytics.fr/machine-learning/
[6] https://mobiskill.fr/blog/conseils-emploi-tech/apprentissage-supervise-vs-
apprentissage-non-supervise/
Annexe
Annexe 1 : Backlog de produit
Feature-id Estimation
Sprint
Sprint 1 : Compréhension
1 30 jours
métier, donnée et chargement
des données
2
Sprint 2 : Implémentation de
40 jours
l’entrepôt de donnée
3
Sprint 3 : Implémentation des
45 jours
tableaux de bord
4 20 jours
Sprint 4 : Analyse prédictif
Annexe 2 : plannification des sprints
En tant
qu’utilisateur je
dois faire des
1.1 1 5 jours
recherches
nécessaires
En tant
qu’utilisateur je
dois comprendre
le besoin métier
1.2 2 5 jours
Compréhension
métier, donnée
et chargement
des données En tant que
développeur je
dois comprendre
les données
1 1.3 1 10 jours
En tant que
developpeur je
1.4 1 10 jours
dois extraire les
données
nécessaire
En tant que
développeur je
dois choisir un
2.1 2 10 jours
modèle d’entrepôt
de données.
En tant que
Implémentation développeur je
de l’entrepôt de dois implémenter
2
donnée les dimensions
2.2 1 15 jours
2.3 En tant que 2 15 jours
développeur je
dois implémenter
la table des faits
En tant que
développeur je
dois faire les
calculs
3.1 nécessaires avec 2 20 jours
DAX
Implémentation
3 des tableaux de
bord
En tant que
développeur je
dois implémenter
3.2 les tableaux de 1 15 jours
bords
En tant que
développeur je
3.3 3 5 jours
dois vérifier
l’authenticité du
rapport
En tant que
développeur je
Analyse 4.1 2 5 jours
dois choisir la
prédictive
4
méthodologie
1 15 jours
En tant que
développeur je
1.1 1 5 jours
dois faire des
recherches
nécessaires
En tant que
Compréhension développeur je
métier, donnée dois comprendre le
1
et chargement 1.2 besoin métier 2 5 jours
des données
En tant que
développeur je
1.3 1 10 jours
dois comprendre
les données
En tant que
développeur je
1.4
dois extraire les
1 10 jours
données nécessaire
Annexe 4 : Sprint 2 backlog
En tant que
développeur je
2.1 dois choisir un 2
10 jours
modèle
d’entrepôt de
Implémentation données.
de l’entrepôt de
donnée
En tant que
développeur je 2 5 jours
dois choisir la
4.1
méthodologie
En tant que
développeur je
4 Analyse dois implémenter
prédictive 4.2 1 15 jours
le modèle choisie