Académique Documents
Professionnel Documents
Culture Documents
Membres du Jury :
Dr Soudani Nedia
Dr Hannachi Refka
2021 - 2022
REMERCIEMENTS
C’est avec un grand plaisir que je réserve cette page en signe de gratitude et de profonde
connaissance à tous ceux qui m’ont aidée à la réalisation de ce travail.
Je remercie tout d’abord l’ensemble de l’équipe pédagogique de FSJEGJ pour ces trois années
de formation durant lesquelles j’ai énormément appris et vécu d’excellents moments.
Je remercie notamment Monsieur TISSAOUI Atef, pour m’avoir accueillie au sein de son
équipe et de m’avoir fait confiance, afin de me permettre de vivre une expérience riche et
passionnante.
Je remercie aussi toutes les personnes qui de près ou de loin m’ont suivie et aidée afin de
concrétiser ce projet dans les meilleures conditions et les meilleurs délais.
Introduction Générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 L’informatique Décisionnelle 15
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2 Business Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Les objectifs de BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 L’architecture du BI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4.1 L’entrepôt de données (DataWarehouse) . . . . . . . . . . . . . . . . . . . . 16
2.4.2 Le magasin de données (DataMart) . . . . . . . . . . . . . . . . . . . . . . . 17
2.4.3 Extraction des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Modélisation DataMart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5.1 Comparaison des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.6 La consolidation financière, le ’reporting’ et le tableau de bord . . . . . . . . . . . . 19
2.7 Le système d’information décisionnel en entreprise . . . . . . . . . . . . . . . . . . . 19
2.8 L’évolution des systèmes décisionnels . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.9 Comparaison entre les systèmes transactionnels et les systèmes décisionnels . . . . . 20
1
2.10 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
4
5.12 Alimentation de la base de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
6
INTRODUCTION GÉNÉRALE
Chaque jour de nouvelles données sont produites dans l’entreprise qui à son tour cherche tou-
jours à prendre les meilleures décisions, tant pour accroitre leur productivité, que pour répondre
aux besoins des clients. Et pour atteindre ses objectifs, elle a besoin d’analyser les données qui la
proviennent des marchés.Grâce à cette analyse, elle pourra mener des actions intelligentes. C’est
là que la business intelligence prend tout son sens. Afin de maintenir l’avantage compétitif, mieux
cibler sa clientèle, examiner les grandes tendances du marché et faciliter la prise de décisions, le
Central Laitière du Nord vise à exploiter ses données grâce à des outils performants.
C’est dans ce contexte que s’inscrit mon projet de fin d’études réalisé au sein de la direction
du système d’information au Central Laitière du Nord, qui aura pour but la mise en place d’un
système d’aide à la décision et d’analyse prédictive dédié principalement au suivi les évolutions de
ventes et les activités des clients et des commandes. Cela permettra aux décideurs d’avoir une vue
globale et synthétique sur l’ensemble des données en assurant leur centralisation et historisation.
Ce présent rapport s’articule autour de six chapitres. Le premier chapitre consiste en une pré-
sentation du cadre général du projet incluant une présentation de l’entreprise d’accueil, le contexte
du projet dans un premier lieu. Nous définissons la méthodologie adoptée pour mettre en place
notre solution dans un deuxième lieu. Le deuxième chapitre consiste à définir toutes les notions
sur lesquels ce projet est basé tel que la définition du Business Intelligence, ses objectifs et l’ar-
chitecture associé et d’autres. Le troisième chapitre définit la planification des tâches, les acteurs,
les besoins fonctionnels et non fonctionnels et étale aussi une étude technique de la solution pro-
posée tout en spécifiant l’architecture suivie et l’environnement technique. Le quatrième chapitre
sera consacré pour l’identification du modèle dimensionnel et la conception du modèle physique
de magasin de données. Le cinquième chapitre détaillera toutes les étapes de la mise en place et
le développement de l’application de la préparation de l’infrastructure jusqu’au la phase ETL. Le
sixième chapitre englobe l’étape de restitution de d’analyse de données qui représente les différents
tableaux de bord et le déploiement de notre solution.
Enfin, une conclusion synthétisera notre travail et présentera les perspectives futures.
7
CHAPITRE 1
CONTEXTE GÉNÉRAL DU PROJET
1.1 Introduction
Dans ce chapitre, nous allons présenter l’organisme d’accueil : Centre Laitière du Nord «CLN»,
l’établissement au sein duquel s’est déroulé notre projet de fin d’études ainsi son historique et
ses différentes activités. Ensuite, nous procéderons à la présentation du cadre du projet qui nous
permettre de mieux comprendre le problème étudié et en déduire des solutions. Enfin, nous allons
présenter la méthodologie du travail adoptée.
La société Centrale Laitière Du Nord « CLN »[7]est une société anonyme spécialisée dans
la production des produits laitiers et ses dérivés. C’est l’une parmi les dix sociétés de Groupe
8
DELICE, le leader du secteur de l’industrie agroalimentaire sur le marché tunisien. Elle a toujours
fait de la qualité de ses produits une priorité absolue et a su construire un fort capital confiance
avec ses consommateurs, alors elle est classée la deuxième, au prix national de la qualité en 2020.
1.2.2 Historique
En Mai 1986, le Centrale Laitière du Nord a été créer, il a poursuivi son développement par la
création des produits laitiers sous la marque locale LAINO. En 2005, saisissant de l’opportunité
d’agrandir sa part de marché dans le secteur du lait longue conservation, le Groupe Délice a investi
9,5 millions de dinars pour l’acquisition de la Centrale Laitière du Nord « CLN » profitant ainsi
d’une capacité de production supplémentaire et d’une présence consolidée dans le bassin laitier du
nord-ouest du pays.
1.2.3 Activités
La société Centrale Laitière Du Nord « CLN » est spécialisée dans la transformation du lait,
la production et la commercialisation des produits laitiers et ses dérivés (Yaourt, Beurre, Fromage
Frais, Crème Dessert...), ainsi tous produits agroalimentaires.
1.4 Problématique
D’une année à une autre, la demande sur les produits Délice augmente et les besoins des
clients se changent. Face à cette surcharge de travail, le groupe Délice a remarqué l’augmentation
de la masse des données et la vitesse de leur évolution, ce qui rend la gestion, le contrôle et la
prise de décision dans l’entreprise plus difficile. Cette situation a amené le groupe à revisiter et
améliorer leur processus de prise de décision et de reporting financier afin de pouvoir prendre les
bonnes décisions au bon moment. Dans le cadre de renforcer le système de prise de décision, les
propriétaires de Délice espèrent se tourner vers l’avenir et trouver les meilleures façons d’investir
du capital et des ressources tout en travaillant au succès à long terme de leur entreprise. Il faut
donc un moyen permettant de recueillir facilement les données, les analyser, les visualiser et prédire
le comportement futur en fonction des comportements passés.
9
1.5 Solution proposée
La solution envisagée, est un système d’aide la décision et d’analyse prédictive permettant
de mettre à la disposition des décideurs les moyens nécessaires pour qu’ils puissent prendre les
décisions stratégiques et opérationnelles les plus adéquates. En effet, ce système pourrait aider à
anticiper les besoins des clients, permet aussi la flexibilité de réagir face à des changements majeurs
sur le marché, à prévoir les tendances plus larges du marché ou à gérer les risques, ce qui offre
un avantage concurrentiel et, en fin de compte, augmente les revenus. Notre système va assurer la
possibilité de :
— Maximiser la productivité
— Réagir rapidement à l’évolution de marché et aux attentes des clients.
— Accélérer la commercialisation de nouveaux produits.
— Identifier les produits les plus rentables.
— Maîtriser la chaine d’approvisionnement.
— Améliorer la planification et la programmation.
— Prédire la quantité de vente
— Optimiser les flux d’information.
10
Figure 1.2 – Cycle de vie dimensionnel de Ralph Kimball
Dans ce qui suit, nous allons détailler les différentes étapes pour une meilleure compréhension
du cycle de vie dimensionnel .
11
Étape Objectif
Planification du Pro- — Définir l’étendue du projet ainsi que sa planification qui dépend des
jet besoins comme l’indique la flèche en double sens de la figure ci-dessus
(figure 1.2).
— Étudier les ressources et l’affectation des tâches.
Définition des Besoins Cette phase permet d’identifier les utilisateurs de l’application et leurs
BI besoins. Une fois les besoins définis , trois trajectoires parallèles seront
lancés qui sont la technologie, les données et les interfaces utilisateur.
Gestion du projet — Garantir que les activités du cycle de vie restent sur la bonne voie et
sont bien synchronisées.
— Détecter et résoudre les problèmes.
Définition de l’archi- — Définir la vue globale de l’architecture technique à mettre en œuvre.
tecture technique — Étudier les outils de conception de la zone de préparation des données
et de restitution des résultats.
Sélection et Installa- En se basant sur l’architecture technique, et en répondant aux besoins de
tion des produits notre projet, nous avons choisi de définir l’outil sur lequel se base notre
projet.
Modélisation Dimen- — Définir les données requises pour répondre aux besoin des utilisateurs.
sionnelle — Construire la matrice qui représente les processus métier clés et leurs
dimensionnalités.
— Réaliser le modèle dimensionnel (La granularité de la table de faits
ainsi que les dimensions associées).
Conception du modèle La conception physique comporte la définition du modèle élaboré de l’en-
physique trepôt de données(DW).
Conception et déve- — Concevoir l’ODS ou la Staging Area (SA).
loppement de la zone — Effectuer le processus ETL
de préparation des
données
Spécification de l’ap- Cette phase englobe la préparation des maquettes à réaliser dans la phase
plication utilisateur qui suit.
Développement de Après la réalisation des différentes phases précédentes, cette phase nous
l’application BI permettra la réalisation des différents tableaux de bord nécessaires pour
répondre aux besoins client.
Déploiement — Converger la technologie, les données, et les applications décisionnelles
aux utilisateurs accessibles.
— Assurer une formation, pour les utilisateurs, des processus de commu-
nication et un support utilisateur.
Maintenance et crois- Après la mise en place de la solution, l’entrepôt va donc évoluer et croître
sance et le changement doit être perçu comme un facteur de succès et non
d’échec. Il faut donc assurer le fonctionnement optimal du système et
prévoir l’ajout de nouvelles fonctionnalités
12
1.6.2 Méthodologie de Gimsi
Gimsi [3] définit un cadre méthodologique afin de mieux formaliser les conditions de réussite du
projet Business Intelligence centré sur la problématique du "tableau de bord". La méthode a pour
ambition de dynamiser l’originalité et la créativité des concepteurs et utilisateurs. C’est ainsi que
l’on réussit l’intégration du système de tableaux de bord au cœur de la culture d’entreprise sans
perdre de vue la question du pilotage de la performance. Cette méthode se compose de 4 phases
principales découpées en 10 étapes.
3-Mise en œuvre - Choisir les progiciels les mieux adaptés à la mesure de la performance
dans l’entreprise. (Etape 8)
- Intégrer et déployer le système décisionnel dans l’entreprise.(Etape 9)
13
1.7 Conclusion
Ce chapitre introductif nous a permis de détailler le cadre général du système. Après avoir
décrit l’organisme d’accueil d’une part, et la solution que nous allons concevoir et développer
d’autre part, nous avons présenté la méthodologie à adopter pour la réalisation du projet.
14
CHAPITRE 2
L’INFORMATIQUE DÉCISIONNELLE
2.1 Introduction
Dans ce deuxième chapitre, nous commençons par la définition du Business Intelligence, ses
objectifs et son architecture tel que la DataWarehouse, le DataMart et l’extraction de données.
Par la suite on s’intéresse aux différents modèles du DataMart, et la relation entre la consolida-
tion financière, le reporting et le tableau de bord. Enfin nous décrivons le système d’information
décisionnel (SID), son évolution dans le temps et une comparaison avec le système transactionnel.
15
leur environnement, identifier les tendances de marché, générer des comptes rendus personnalisés
pour chaque pôle et chaque activité et ainsi d’adopter des stratégies pertinentes.
2.4 L’architecture du BI
16
2.4.2 Le magasin de données (DataMart)
Un datamart (ou magasin de données) [4] est une vue partielle du datawarehouse mais orientée
métier. C’est un sous-ensemble du datawarehouse contenant des informations se rapportant à un
secteur d’activité particulier de l’entreprise ou à un métier qui y est exercé. On peut donc créer
plusieurs datamart correspondant au différent besoin des utilisateurs. Cela permet de réduire le
nombre d’opération sur les bases de production. De plus cela permet d’offrir aux utilisateurs un
outil spécifiquement adapté à leurs besoins. Cet outil sera plus petit et permettra donc un accès
plus rapide à l’information.
17
2.5.1 Comparaison des modèles
Le schéma en étoile et en flocon est utilisé pour concevoir l’entrepôt de données. Les deux
ont certains avantages et inconvénients. Cependant, l’utilisation du schéma en flocon minimise la
redondance, mais ce n’est pas populaire en tant que schéma en étoile qui est utilisé la plupart du
temps dans la conception de l’entrepôt de données. [13]
18
Schéma en étoile Schéma en constellation
Un schéma en étoile représente chaque fait Les tables de dimension sont partagées par
avec une seule table de dimension. de nombreuses tables de faits. Le schéma en
constellation se compose de plusieurs sché-
mas d’étoiles à la fois
Dans le schéma en étoile, les tables peuvent Dans un schéma en constellation, les tables
être maintenues facilement ne peuvent pas être maintenus facilement
comparativement.
Le schéma en étoile n’utilise pas la normali- Une forme normalisée de schéma d’étoile et
sation. de flocon de neige.
Dans le schéma en étoile, des requêtes Des requêtes très complexes sont utilisées
simples sont utilisées pour accéder aux don- pour accéder aux données de la base de don-
nées de la base de données. nées.
Le schéma en étoile est facile à utiliser car il Le schéma en constellation n’est pas facile à
a moins de jointures entre les tables. utiliser car il comporte de nombreuses join-
tures entre les tables.
Le schéma en étoile utilise moins d’espace Alors que le schéma de constellation de faits
que le schéma en constellation. utilise plus d’espace comparativement.
Il est très simple à comprendre en raison de Bien qu’il soit très difficile à comprendre en
sa simplicité. raison de sa complexité.
19
de l’informatique décisionnelle. En effet, le système d’information décisionnel (SID) désigne l’en-
semble des moyens, outils et méthodes qui permettent à l’entreprise de collecter, renforcer, stocker,
agréger et restituer les données importantes afin de fournir une véritable aide à la décision.
OLTP OLAP
Objectifs Le traitement des données L’analyse des données
Données - Détaillées, relationnelles, Actua- -Résumées, agrégées, Historiées,
lisées, mises à jour recalculées Multidimensionnelles
- La source : l’OLTP et ses tran- - La source : les différentes bases
saction de données d’OLTP
Caractéristique Grand nombre de transactions Grand nombre de données
courtes
Utilité Le contrôle et l’exécution des - La planification et la réalisation
tâches commerciales de problèmes
- L’aide à la décision
Traitement Fournir un résultat rapide pour Garantir un temps de réponse à
les données utilisées quotidienne- la requête plus rapide et cohérent
ment
Opération Lecture/écriture Lecture
Type de requêtes Standardisées et simples Complexes
Utilisateur L’agent opérationnel Les analystes et les décideurs
Table 2.3 – Comparaison entre les systèmes transactionnels et les systèmes décisionnels
20
2.10 Conclusion
Dans ce chapitre, nous avons détaillé toutes les notions relatives au Business Intelligence, puis
nous nous concentrons sur les systèmes de l’information décisionnel et leur importance dans l’en-
treprise. Nous pouvons ainsi entamer la prochaine étape qui consiste à présenter la phase de
planification et spécification des besoins
21
CHAPITRE 3
PLANIFICATION ET SPÉCIFICATION DES BESOINS
3.1 Introduction
Dans ce chapitre, nous présentons tout d’abord la planification de notre projet en identifiant
les tâches et l’équipe de réalisation. Par la suite, nous donnons une identité à notre projet en
définissant les besoins fonctionnels et non fonctionnels, l’architecture global et les étapes de notre
méthodologie. Enfin, nous décrivons l’environnement technique et les outils nécessaires ainsi que
l’approche de conception pour notre projet.
3.2 Planification
Établir un planning projet précis s’avère indispensable pour une gestion de projet efficace. Alors
afin de bien organiser et planifier les tâches à mener pour réussir le projet pendant une période
bien définie au préalable, nous avons choisi d’utiliser un outil d’ordonnancement et de gestion de
projet qui permet de représenter visuellement l’état d’avancement et la succession des différentes
tâches.
22
Figure 3.1 – Diagramme de GANTT
23
3.4 Identification des besoins
3.4.1 Besoins fonctionnels
La solution à réaliser doit offrir un ensemble de fonctionnalités qui doivent être mises en relation
avec un ensemble de besoins des utilisateurs. Afin de satisfaire nos utilisateurs et leurs fournir des
moyens nécessaires pour qu’ils puissent prendre les décisions stratégiques et opérationnelles, notre
solution doit donc assurer un tableau de bord bien ciblé avec des données filtrées afin de fournir
au décideur la possibilité de prendre les meilleures décisions.
- Gérer les permissions et accorder les rôles aux utilisateurs : Le système permet à
l’administrateur d’accorder l’accès à des utilisateurs spécifiques (le directeur général ne peut pas
créer des nouveaux tableaux de bord) et attribuer un rôle à chaque utilisateur.
- Créer des tableaux de bord : Le système permet au responsable commercial de créer des
nouveaux tableaux de bord à partir des nouvelles données.
- Ajouter des données : le système permet au responsable commercial d’ajouter des nouvelles
données afin de rafraîchir les tableaux de bord pour prendre des nouvelles décisions.
24
doit être hautement sécurisée, les informations et les tableaux de bord ne devront pas être ac-
cessibles et autorisés à tout le monde, c’est-à-dire que tous les accès des utilisateurs doivent être
protégés par un login et un mot de passe pour parvenir à la sécurité du système.
La performance : Notre système doit être performant, agile et rapide, il doit être agir rapi-
dement et répond à toutes les exigences des utilisateurs d’une manière optimale.
La fiabilité : Les données fournies doivent êtres fiables et le système doit rendre des résultats
corrects, pertinents et significatifs.
25
- La première phase est la phase de la collecte des données, alors pour mettre en place notre sys-
tème, une source de données d’entreprise nous a été fournie en entrée, cette source est un fichier
Excel qui contient des données hétérogènes et non standardisées.
- La deuxième phase est la phase ETL (Extract, Transform et Load) par lequel vont passer toutes
les données des systèmes opérationnels avant d’arriver à la forme souhaitée dans le datamart.
D’abord, nous avons effectués une identification des données à partir de la source, lire, comprendre
la source de données puis extraire les données dont on a besoin et les orienter vers le système
décisionnel. Après l’extraction des données, ces dernières subissent un travail de transformation,
de nettoyage et de filtrage. Une fois les données extraites et transformées, nous allons les intégrer
dans notre magasin de données (DataMart). En effet, les données qui seront présentes dans cette
base dimensionnelle sont des données figées et consolidées.
- La troisième phase est la phase d’analyse et restitution, pour faciliter l’accès à l’information,
pour tous les utilisateurs selon leurs profils métiers et afin d’extraire les éléments de décision pour
dynamiser la réactivité globale dans l’entreprise, ces données sont mises à la disposition sous forme
de tableaux de bord.
La figure ci-dessous illustre l’architecture globale de notre projet.
26
— L’indicateur doit être constructible
— L’indicateur doit pouvoir être présenté sur le poste de travail
Les responsables de la société d’accueil, et grâce à leur expérience dans le métier du conseil, ont
rectifié et validé la liste d’indicateurs relatifs aux ventes que nous avons élaborée.
Les indicateurs choisis pour répondre aux besoins prédéfinis dans le secteur des ventes sont les
suivants :
— Profits et pertes totals.
— Perte par produit.
— Quantité vendue pour chaque produit et dans chaque région.
— Total des factures.
— Taux de commandes.
— Nombre totale de client.
— Nombre de clients par région.
— Taux de clients par année
— Taux de rétention client.
— Taux de rétention par client.
Une fois les indicateurs choisis, nous allons les construire avec les informations à notre disposition.
Alors dès que l’information est disponible physiquement, elle sera nettoyée, vérifiée et consolidée.
27
Figure 3.4 – Spécification de la machine
28
3.7.2.2 Jupyter NoteBook
Jupyter[11] est une application web utilisée pour programmer dans plus de 40 langages de
programmation, dont Python, Julia, Ruby et R , dont l’objectif est de développer des logiciels
libres, des formats ouverts et des services pour l’informatique interactive. Jupyter permet de réaliser
des calepins ou notebooks, c’est-à-dire des programmes contenant à la fois du texte en markdown
et du code. Ces calepins sont utilisés en science des données pour explorer et analyser des données.
3.7.2.3 Superset
Apache Superset[12] est une application Web d’intelligence d’affaires moderne et prête pour
l’entreprise. Il est rapide, léger, intuitif et doté d’options qui permettent aux utilisateurs de toutes
compétences d’explorer et de visualiser facilement leurs données, des simples graphiques circulaires
aux graphiques géospatiaux très détaillés.
3.7.2.4 Docker
Docker est un outil qui peut empaqueter une application et ses dépendances dans un conteneur
isolé, qui pourra être exécuté sur n’importe quel serveur machine, qu’il soit physique ou virtuel.
C’est une technologie qui a pour but de faciliter les déploiements d’application, et la gestion
du dimensionnement de l’infrastructure sous-jacente. Il ne s’agit pas de virtualisation, mais de
conteneurisation, une forme plus légère qui s’appuie sur certaines parties de la machine hôte pour
son fonctionnement. Cette approche permet d’accroître la flexibilité et la portabilité d’exécution
d’une application, laquelle va pouvoir tourner de façon fiable et prévisible sur une grande variété
de machines hôtes, que ce soit sur la machine locale, un cloud privé ou public...
29
Figure 3.8 – Logo Docker
30
qui suit, nous allons effectuer une définition à chacune de ces deux approches et une comparaison
entre elles.
Kimball Inmon
Approcher Il a une approche ascendante Il a une approche descendante
pour la mise en œuvre. pour la mise en œuvre.
Intégration de Il se concentre sur les domaines Il se concentre sur les domaines à
données d’activité individuels. l’échelle de l’entreprise.
Méthode de Commence par la conception du Commence par la conception du
conception data Warehouse. modèle dimensionnel pour les da-
tamarts.
Temps de C’est efficace et prend moins de C’est complexe et prend beau-
construction temps. coup de temps.
Coût Il comporte des étapes itératives Le coût initial est énorme et le
et est rentable. coût de développement est faible.
Compétences re- Il n’a pas besoin de telles compé- Il a besoin de compétences spécia-
quises tences mais une équipe générique lisées pour fonctionner.
fera le travail.
Maintenance Difficil.e redondance à gérer. Facile.
Modèle de don- Les données sont dans un modèle Les données sont dans un modèle
nées dénormalisé. normalisé.
Malgré l’opposition effective des deux modèles, aucun d’entre eux n’est à privilégier et le choix
de la meilleure approche dépend du projet à réaliser. Alors dans notre cas, nous avons opté pour
31
l’approche de Kimball (Bottom-Up) dans plusieurs raisons, d’une part cette approche est carac-
térisée par sa simplicité, sa rapidité et d’autre part notre solution est orientée vers un secteur
d’activité particulier.
3.9 Conclusion
Ce chapitre a été consacré à la planification du projet et à la spécification des besoins fonction-
nels et non fonctionnels pour mieux identifier les objectifs attendus de notre solution et l’approche
de conception du modèle dimensionnel et de citer les technologies ainsi que les outils utilisés lors
du projet. Nous pouvons ainsi entamer la prochaine étape qui consiste à présenter la conception
de notre entrepôt de données.
32
CHAPITRE 4
CONCEPTION DE L’ENTREPÔT DE DONNÉE
4.1 Introduction
Au cours du ce chapitre, nous entamons la phase de modélisation dimensionnelle et la conception
du modèle physique du magasin de données.
33
4.2.2 Modèle en flocon de neige
C’est une manière de relier une dimension à un fait dans un entrepôt de données. C’est le modèle
en étoile avec une relation entre les dimensions. Il peut exister des hiérarchies des dimensions pour
diviser les tables de dimensions lorsqu’elles sont trop volumineuses.
34
4.3 Identification des faits
Les tables de faits contiennent les données que l’on souhaite voir apparaître dans les rapports
d’analyse, sous forme de métriques. Les données des tables de faits sont agrégées à partir des tables
de dimensions qui leur sont associées.
Reprenons la table de fait Vente dont l’objectif est de rassembler les informations concernant les
ventes des produits. Le grain de cette table de fait est en fait une ligne de commande et des ventes :
chaque ligne concerne un ou plusieurs produits commandés par un client donné à une date donnée.
La facture réunissant l’ensemble d’une ou plusieurs commandes pour un seul client.
35
4.4 Identification des dimensions
Une dimension est une table qui contient les axes d’analyse (les dimensions) selon lesquels on
veut étudier des données observables qui, soumises à une analyse multidimensionnelle, donnent
aux utilisateurs des renseignements nécessaires à la prise de décision.
Le tableau ci-dessous représente les dimensions relatives à l’analyse du fait Vente. Les clés
primaires sont en gras.
36
Dimension Description Attribut
Client Cette dimension correspond code-client, code-region
aux clients.
Magasin Cette dimension correspond code-magasin
aux magasins disponibles
pour la vente des produits
Délice.
Facture Cette dimension corres- num-fact, type-fact, date-fact,
pond aux factures des num-cmd
commandes des clients.
Gouvernorat Cette dimension correspond code-region, region
au gouvernorat de chaque
client.
Commande Cette dimension correspond num-cmd, type-cmd, date-cmd,
aux commandes passées par quantite, somme, code-article
chaque client.
Produit Cette dimension correspond Code-article, dsc-article, prix-unt
aux produits vendus.
4.5 Conclusion
Ce chapitre a été consacré à définir la conception du modèle physique du DataMart (magasin
de données) pour que nous puissions passer à la partie de préparation et alimentation des données
dans le chapitre qui suit.
37
CHAPITRE 5
MISE EN PLACE DE L’APPLICATION
5.1 Introduction
Ce chapitre fait le tour de toutes les étapes d’implémentation et de développement de notre
application. Il introduit la phase essentielle, celle de la préparation de l’infrastructure et les outils
nécessaires à cette phase. De plus, sera introduit le développement de ETL tel que l’extraction,
transformation et le chargement des données.
38
Figure 5.1 – Interface Docker Desktop
39
Figure 5.2 – Téléchargement de l’image superset sur Docker
USER root
USER superset
RUN superset fab create-admin --username admin --firstname Wiem --lastname Jouini \
--email admin@superset.com\
--password admin
40
Une fois l’image téléchargée et si nous jetons un coup d’œil au tableau de bord Docker, nous
allons voir notre nouvelle image modifiée.
De plus, nous pouvons également vérifier les conteneurs en cours d’exécution en utilisant la
commande : conteneur docker ls. Et comme vous pouvez le voir dans la figure ci-dessus, le conteneur
SQL Server Docker a été créé à partir de l’image et il est maintenant opérationnel
41
Figure 5.4 – Affichage de conteneur en cours d’exécution
version: "2.7"
services:
database:
image: mcr.microsoft.com/mssql/server:2019-latest
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: "SQLSERVER2019,"
ports:
- "1433:1433"
superset:
build: "./docker/superset"
ports:
- "8088:8088"
42
Figure 5.5 – Connection à SQL Server
Après quelques instants, SSMS se connecte à notre instance de base de données. Enfin, pour
pouvoir stocker nos données, nous allons créer notre base de données qui sera appelé “ventes.
43
Figure 5.7 – choisir la base de données dans Superset
Ensuite, après avoir choisi Microsoft SQL Server, nous allons créer un URl avec la spécification
du mot de passe, du port et le nom de la base de données (ventes) que nous avons déjà créé où
nous pourrons par la suite transférer les données.
Maintenant, la connexion a été effectué, nous pouvons donc charger nos données après les avoir
transformés et traités.
44
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_excel('./data/ventes.xlsx')
df.head()
Par la suite, nous allons pouvoir effectuer les différents changements nécessaires en éliminant
les redondances, en modifiant les noms des colonnes pour homogénéiser et unifier les données afin
de les rendre exploitables dans la phase de l’exportation des données qui suit, puis nous allons
extraire les tables de dimensions et les tables de fait.
Une fois les tables sont extraites, nous allons les exporter dans des fichiers CSV pour pouvoir
les charger dans la base de données. Pour l’exportation, nous allons créer ce code python.
ventes_df.to_csv('./data/ventes.csv', index=False)
facture_df.to_csv('./data/facture.csv', index=False)
commande_df.to_csv('./data/commande.csv', index=False)
produit_df.to_csv('./data/produit.csv', index=False)
client_df.to_csv('./data/client.csv', index=False)
magasin_df.to_csv('./data/magasin.csv', index=False)
region_df.to_csv('./data/region.csv', index=False)
Finalement, nous allons alimenter la base de données à travers Superset. Pour cette étape, nous
allons premièrement se connecter à superset avec un nom d’utilisateur et un mot de passe que nous
les avons déjà identifiés dans le Dockerfile.
45
Figure 5.9 – Connexion à Superset
Ensuite, nous allons charger les fichiers CSV dans la base de données.
Enfin, nous allons remplir le formulaire et importer les fichiers que nous avons besoins et les
stocker dans la base de données.
46
Figure 5.11 – Remplissage du formulaire
Une fois les fichiers sont chargés et enregistrés, nous pouvons commencer à créer les graphes et
les tableaux de bords.
5.4 Conclusion
Après avoir préparé la partie modélisation dimensionnelle afin de bien identifier les grandes
lignes de notre solution, nous avons effectué, durant ce chapitre, les différentes étapes depuis la
préparation de l’infrastructure jusqu’à alimentation de la base de données. Dans le chapitre suivant,
nous allons décrire la phase de restitution des données.
47
CHAPITRE 6
RESTITUTION DES DONNÉES
6.1 Introduction
Dans le chapitre précédent, nous avons détaillé toutes les étapes de notre processus. Selon
l’approche inventée par Ralph Kimball, nous entrons dans la dernière phase de notre solution qui
consiste au développement de nos tableaux de bord et notre application. Dans un second temps,
nous entamons l’analyse prédictive avec l’évaluation de quelques modèles.
48
Figure 6.1 – Page d’accueil
49
6.2.2 Suivi des transactions
Le tableau de bord ci-dessous nous procure une vue globale sur toutes les informations concer-
nant les transactions effectuées. Ce tableau de bord contient les visualisations suivantes :
— Un graphique en secteur pour visualiser le taux de commandes.
— Un graphique en anneau qui représente le taux de profit et de perte.
— Un graphique en courbe ou nous pouvons visualiser le nombre total des facteurs par mois
avec un curseur pour zoomer sur une période précise.
— Un histogramme empilé pour pouvoir visualiser la quantité vendue de chaque produit par
région.
50
— Un graphique en courbe qui représente le montant de perte par produit.
Par le biais de ce tableau de bord, le décideur a la possibilité d’analyser les données par produit.
Ce tableau de bord illustre une vue détaillée sur les informations des clients. Il permet de
visualiser le nombre total des clients et le taux de rétention clients. Le tableau de bord affiche
également :
— Un histogramme empilé pour visualiser le taux des clients par années.
51
— Graphique circulaire qui représente nombre totale des clients dans chaque région.
— Un histogramme empilé pour la visualisation du taux de rétention pour chaque client
Afin de mieux visualiser les données, un filtre temporaire sera assuré. Le décideur pourra également
analyser par client.
6.3.3 Expérimentations
Nous entamons maintenant la phase des expériences où nous allons tester quelques modèles et
algorithmes de machine learning pour nos prédictions.
Les principaux objectifs de notre solution, avoir une visibilité sur le comportement d’achat
des clients en connaissant les quels des produits ont achetés ou commandés ensemble avec une
prédiction de l’état financières de l’entreprise.
52
6.3.3.1 Analyse du comportement du client
Pour mieux comprendre les comportements de nos clients, nous avons choisi la méthode de
l’analyse des associations qui est utilisée pour découvrir des associations ou des relations cachées
entre nos données. Les relations découvertes peuvent être représentées sous forme de règles d’as-
sociation ou d’ensemble d’items fréquents. Ces informations servent à bien mener les campagnes
marketing, mieux gérer les inventaires ou améliorer les relations clients.
6.4.1.1 Implémentation
Dans cette partie, nous allons implémenter l’algorithme a priori pour l’extraction des règles
d’association. La première étape consiste à importer les bibliothèques requises. Nous avons utilisé
le script ci-dessous pour l’implémentation.
53
import pandas as pd
from apyori import apriori
df = pd.read_csv('data/facture.csv')
data = df.groupby('num_fact').agg(list)
commandes = pd.read_csv('data/commande.csv')
items = []
association = inspect(rules)
association.to_csv('data/association.csv', index=False)
L’étape suivante, sert à charger les données à partir du fichier facture.csv et les grouper par le
numéro de factures. Et enfin, nous allons appliquer l’algorithme Apriori sur l’ensemble des données.
Pour l’utiliser, nous allons fixer un support et une confiance minimale, cela signifie que nous ne
sommes intéressés que par la recherche de règles pour les éléments qui ont une certaine existence par
défaut (le support) et ont une valeur minimale de cooccurrence avec d’autres éléments (confiance).
Le script suivant affiche ces étapes
6.4.1.2 Résultat
Après avoir appliqué et exécuté l’algorithme, finalement, nous avons le résultat qui lui est
associé.
54
Figure 6.4 – Résultat des règles s’association
À partir de la figure ci-dessus, on peut voir que les produits qui apparaissent toujours ensemble
dans la plupart des commandes des clients.
import pandas as pd
df = pd.read_csv('../data/commande.csv')
55
data = df.groupby(['type_cmd']).agg(list)
train_df.to_csv('../data/train/{}.csv'.format(name))
test_df.to_csv('../data/test/{}.csv'.format(name))
import pandas as pd
from sklearn.linear_model import LinearRegression, SGDRegressor, Lasso, ElasticNet
from sklearn.metrics import mean_squared_error
y_test = test_df['target']
y_train = train_df['target']
x_train = np.arange(len(train_df)).reshape(-1, 1)
x_test = np.arange(len(test_df)).reshape(-1, 1)
model.fit(x_train, y_train)
y_hat = model.predict(x_test)
return model
train_df = pd.read_csv('../data/train/co.csv')
test_df = pd.read_csv('../data/test/co.csv')
train_df.sort_values(by='date', inplace=True)
test_df.sort_values(by='date', inplace=True)
models = [
(SGDRegressor(max_iter=1000), 'SGD Regressor'),
(Lasso(alpha=1.0), 'LASSO'),
(ElasticNet(alpha=1.0, l1_ratio=0.5), 'ElasticNet'),
(LinearRegression(), 'Linear Regression')
56
]
x_test = np.arange(len(test_df)).reshape(-1, 1)
import pickle
import pandas as pd
from matplotlib import pyplot as plt
from statsmodels.tsa.arima.model import ARIMA
traindf = pd.read_csv('../data/train/{}.csv'.format(args.dataset))
testdf = pd.read_csv('../data/test/{}.csv'.format(args.dataset))
traindf.fillna(0, inplace=True)
testdf.fillna(0, inplace=True)
traindf.index = pd.to_datetime(traindf['date'])
testdf.index = pd.to_datetime(testdf['date'])
res = model.fit()
y_hat = res.forecast(steps=len(testdf))
plt.figure(figsize=(15, 10))
plt.title('Visualisation du modele ARIMA phase de test')
plt.plot(testdf.index, testdf['target'], 'b', label='test')
plt.plot(testdf.index, y_hat, 'r', label='prediction')
plt.legend()
plt.grid()
plt.show()
57
6.4.2.2 Résultats et choix du modèle
Dans cette étape, nous allons exposer les résultats obtenus des différents modèles décrits pré-
cédemment, ensuite nous allons comparer leurs performances et enfin choisir parmi ces modèles le
plus performant.
Figure 6.5 – Résultat des modèles Régression Linéaire, SGDRregressor, Lasso et ElasticNet
La figure ci-dessus montre que les modèles suivant Régression Linéaire, SGDRregressor, Lasso
et ElasticNet ont la même performance puisqu’ils ont la même courbe, mais si nous les comparons
avec la courbe des données d’entraînement nous remarquons une grande différence entre les deux
courbes.
58
Figure 6.6 – Résultat du modèle ARIMA
La deuxième figure ci-dessus montre le résultat de prédiction du modèle ARIMA avec une
différence entre la courbe des données de test et celle du modèle ARIMA. D’après ces résultats
nous ne pouvons pas conclure les quels de ces modèles est le plus performant alors nous avons
opté de les comparer en utilisant un autre facteur le RMSE (L’erreur quadratique moyenne) est
un calcul statistique utilisé pour déterminer la différence entre les valeurs prédites dans un modèle
et les valeurs réelles des observations.
Modéle MSE
SGD Regressor 2262964782660.1084
LASSO 1215.8721
ElasticNet 1215.7082
Linear Regression 1215.9081
ARIMA 1193.101
6.4.2.3 Déploiement
Maintenant, nous sommes à l’étape finale, l’étape de déploiement. En effet, une fois le modèle
créé, testé et évalué sur les données de test, celui-ci est mis en production pour les utilisateurs
59
finaux. Cette étape nécessite l’utilisation du processus de sérialisation qui est un moyen permet de
transformer une structure d’objet complexe en un flux d’octets qui peut être enregistré ou envoyé
sur un réseau. Dans notre cas, le but d’utiliser ce moyen à travers le module pickle est d’enregistrer
notre modèle choisi ARIMA après la phase d’entraînement afin que vous puissiez l’utiliser plus tard
sans avoir à refaire l’entraînement. Une fois le modèle est enregistré, nous avons créé une interface
pour faciliter à l’utilisateur de suivre les prédictions et utiliser le modèle. La figure ci-dessous
représente l’interface d’analyse prédictive.
6.5 Conclusion
La phase de restitution et d’analyse de données représente la dernière étape de notre travail.
A travers cette phase, nous avons représenté les différentes interfaces de nos tableaux de bord
ainsi que les résultats des analyses assurés sur les données et enfin les étapes de déploiement de
l’application utilisateur.
60
CONCLUSION ET PERSPECTIVES
Le Business Intelligence est un domaine en évolution utilisé pour soutenir la prise de décision
commerciale. C’est devenu une exigence en capital, car la simple logique de production pour ré-
pondre à la demande n’est plus suffisante pour maintenir la continuité de cette activité, ainsi les
entrepôts et les magasins de données ont vu le jour.
C’est dans ce contexte que nous réalisons notre projet de fin d‘études dans le cadre de l’obten-
tion de la licence fondamentale en informatique de gestion, effectué au sein de Centre Laitière du
Nord « CLN ». Nous soulignons le prévalu acquis suite à la mise en pratique de nos connaissances
théoriques dans un environnement professionnel. L’objectif de notre projet était de concevoir et
mettre en place un système d’aide à la décision et d’analyse prédictive dédiée à l’analyse et le suivi
des activités des clients et des commandes, pour faciliter la prise de décisions aux décideurs. Dans
une première partie, nous avons étudié le cadre général du projet, analysé et spécifié les besoins
qui nous ont permis de distinguer les différents acteurs interagissant avec l’application et de dé-
terminer les besoins fonctionnels et non fonctionnels du système. Par la suite, nous avons défini
l’architecture de notre solution, ainsi que l’implémention de notre entrepôt de données. La dernière
partie du projet est consacrée à l’explication de toutes les étapes de mise en place de l’application,
au déploiement des tableaux de bord et à l’analyse prédictive. Cette expérience nous a amenés à
découvrir et nous approfondir dans le domaine du Business Intelligence et ses principales phases
en utilisant la méthodologie de Ralph Kimball. Elle nous a permis d’apprendre à manipuler de
nouveaux outils tels que Docker et superset. Finalement, cette expérience nous a permis d’enrichir
nos connaissances, notre formation théorique et pratique acquise tout au long de notre cursus uni-
versitaire et ainsi d’améliorer nos capacités à nous intégrer dans la vie professionnelle.
61
WEBOGRAPHIE
62