Rapport Version 3
Rapport Version 3
Elaboré par :
Farah Hanchi & Firas Toumi
Farah Hanchi
ii
Dédicace
Je veux adresser tous mes remerciements aux personnes qui
m‟ont aimé et aidé durant mon parcours.
À mes chers parents
Qu‟ils m'ont aimé inconditionnellement pour qui je suis et ont
toujours soutenu, peu importe les choix que j'ai faits. Je vous
remercie infiniment pour vos sacrifices et votre confiance totale
en moi.
À mon frère et ma sœur
Qui ont su me motiver sans relâche, même lorsque j'étais en
proie au doute. Un grand merci pour vos encouragements et
votre soutien moral.
À mon binôme Farah
Merci pour votre soutien et votre patience avec la personne qui
n'a pas été très facile.
Firas Toumi
iii
Remerciements
T
out d‟abord, nous souhaitons exprimer notre profonde gratitude envers Dieu pour
nous avoir donné non seulement le courage mais aussi la force et la patience
nécessaires pour accomplir ce travail.
Nous tenons à remercier le président et les membres du jury pour avoir pris le temps
d‟évaluer notre travail. Leurs commentaires constructifs seront très bénéfiques pour améliorer
notre travail à l‟avenir. Encore une fois, merci infiniment pour leur participation inestimable.
Un grand merci à notre encadrante professionnelle Madame Wided Smati pour son aide, son
conseil positif et encouragements tout au long de notre stage. Du fond du cœur, nous lui
disons merci pour tout.
iv
Table des matières
Introduction générale................................................................................................................ 15
Introduction .......................................................................................................................... 17
v
1.6.1 La démarche INMON .................................................................................................. 31
Conclusion ............................................................................................................................ 33
Introduction .......................................................................................................................... 34
Introduction .......................................................................................................................... 38
Conclusion ............................................................................................................................ 51
Introduction .......................................................................................................................... 52
vi
4.3.2 Transformation des données........................................................................................ 68
Conclusion ............................................................................................................................ 89
Introduction .......................................................................................................................... 90
vii
Liste des tableaux
Tableau 1: Tableau comparatif entre les deux méthodologies ................................................ 33
Tableau 2: Indicateurs clés de performance de Sanofi Aventis ............................................... 34
Tableau 3: Table dmt_SECTORIAL_SALES ............................................................................ 40
Tableau 4: Table dmt_SECTORIAL_OBJ................................................................................ 41
Tableau 5: Table dmt_QUOTA_VISIT ..................................................................................... 41
Tableau 6: Table dwh_TERRITORY ........................................................................................ 42
Tableau 7: Table dwh_GEOGRAPHY ..................................................................................... 42
Tableau 8: Table dwh_TERRITORY_HAS_GEOGRAPHY ..................................................... 43
Tableau 9: Table dwh_VD ....................................................................................................... 43
Tableau 10: Table dwh_PRODUCT_SFE_tmp ....................................................................... 44
Tableau 11: Table PRODUCT_BU.......................................................................................... 44
Tableau 12: Table dwh_BU_HAS_PRODUCT_SFE ............................................................... 44
Tableau 13: Table dwh_SALESLINE_MARKET_PRODUCT ................................................. 44
Tableau 14: Table dwh_CPA ................................................................................................... 45
Tableau 15: Table dwh_MARKET_SFE .................................................................................. 45
Tableau 16: Table DEPENSE_PAR _PRODUIT ..................................................................... 46
Tableau 17: Table Geographie ................................................................................................ 46
Tableau 18: Table GeographieUnique .................................................................................... 47
Tableau 19: Table Produits...................................................................................................... 47
Tableau 20: Table Produits Unique ......................................................................................... 48
Tableau 21: Table Marches Ecran........................................................................................... 48
Tableau 22: Table Temps ......................................................................................................... 48
Tableau 23: Table Faits Glob .................................................................................................. 49
Tableau 24: Table Products Glob ............................................................................................ 49
Tableau 25: Table faits ............................................................................................................ 50
Tableau 26: Matrice de transformation de la table Geographie ............................................. 53
Tableau 27: Matrice de transformation de la table GeographieUnique ................................. 54
Tableau 28: Matrice de transformation de la table Temps ...................................................... 54
Tableau 29: Matrice de transformation de la table MarchesEcran ........................................ 54
Tableau 30: Matrice de transformation de la table Produits .................................................. 56
Tableau 31: Matrice de transformation de la table Produits Unique ...................................... 56
viii
Tableau 32: Matrice de transformation de la table Faits Glob ............................................... 57
Tableau 33: Matrice de transformation de la table ProductsGlob .......................................... 58
Tableau 34: Matrice de transformation de la table Faits ........................................................ 66
ix
Table des figures
xiii
Nomenclature
xiv
I ntroduction générale
Dans cette situation, les entreprises sont obligées de surveiller attentivement l'évolution du
marché, afin de ne pas se faire dépasser par leurs concurrents. Elles doivent ainsi répondre
rapidement aux besoins de leurs clients et partenaires, dans ce climat en constante évolution.
Afin de satisfaire à ces besoins, l'entreprise doit collecter, traiter et analyser les données de
son environnement.
C‟est dans ce contexte et dans le cadre de projets de fin d‟étude, Sanofi nous a demandé de
concevoir et mettre en place un système d‟aide à la décision afin de suivre son activité de
vente.
Ce rapport expose le travail réalisé dans le cadre de notre projet de fin d'études, Il est structuré
en cinq chapitres:
15
- Le deuxième chapitre ‘Définition des besoins et modélisation de l’entrepôt de
données’ : expose en détail les besoins fonctionnels et non-fonctionnels du projet, ainsi que
l'architecture technique qui sera mise en place.
16
C hapitre 1 : “Contexte général ”
Introduction
Ce chapitre comporte la présentation de cadre générale de notre projet. Nous commençant par
présenter l‟établissement d‟accueil. Par la suite, nous effectuons une étude de l‟existante afin
de dégager les problèmes à résoudre. Puis nous présentons notre solution ainsi que la
méthodologie utilisée pour la mettre en œuvre afin de remédier à ces problèmes.
1.1.1 Historique
- 1973-1999 „ Les origines de Sanofi‟ En 1973, le nom commercial de Sanofi a été créé à
partir de l'Omnium Financier de la Santé, une société opérant dans le domaine de l'hygiène et
de la santé. Cette année-là, Sanofi a poursuivi son développement en tant que société
pharmaceutique en France et à l'échelle mondiale. En effet, elle a élargi ses opérations à
l'international en établissant des partenariats avec d'autres entreprises pharmaceutiques dans le
monde entier, lui permettant ainsi de se développer dans de nouveaux marchés.
En 1974, Sanofi a lancé "Thromboclar" pour dissoudre les caillots sanguins, tout en se
concentrant sur les traitements pour le système cardiovasculaire. La société a également créé
une co-entreprise avec Upjohn pour développer des médicaments dans le domaine de la
gastro-entérologie et de la cardiologie. Enfin, Sanofi a ouvert un nouveau laboratoire de
recherche à Montpellier, en France, axé sur l'immunologie et la biologie moléculaire.
17
- 1980-1999 ‘ L'internationalisation’
Entre 1983 et 1989 Sanofi acquiert Ela Médical, Rousselot et son second laboratoire hongrois
Chinoin.
- 2004-2018
Au début de 2008, le groupe participe à la mise sur le marché des premiers médicaments
génériques.
7 ans après, en 2011 le groupe Sanofi-Aventis, change de nom pour s'appeler dorénavant
Sanofi.
- Depuis 2019
En décembre 2019, Sanofi annonce la vente de ses activités dans le matériel médical
Seprafilm à Baxter International et acquisition de Synthorx, entreprise américaine
d'oncologie, pour 2,5 milliards de dollars.
18
Au cours de l'été 2020, Sanofi annonce le rachat de l'Américain Principia Biopharma pour un
montant évalué à 3,68 milliards de dollars.
Produits pharmaceutiques : Sanofi possède une large gamme des médicaments pour
déférentes maladies telles que le diabète, les maladies rares, les maladies cardiovasculaires,
les maladies infectieuses et autres.
Vaccins : Sanofi est considérée comme l'un des principaux producteurs de vaccins au monde.
Pour prévenir les maladies infectieuses (la grippe, la fièvre jaune, la dengue...) elle s‟est
engagée dans la recherche et le développement.
Produits de santé grand public : comme les médicaments en vente libre, les produits de soins
personnels et les dispositifs médicaux. [1]
1.1.3 Organigramme
L‟organigramme dans la figure 1.2 représente les différents services de Sanofi.
19
Figure 2: Organigramme
Pendant notre stage, et vu notre spécialité, nous avons eu le privilège d'être accueillis au sein
du service informatique.
20
1.3. Analyse de la solution existante
Pour une meilleure avancée dans le projet, on doit d‟abord assimiler la solution existante par
l'étude et bien comprendre l'état actuel
En effet, SANOFI dispose actuellement d‟une principale application nommée SFE (Sales
Force Excellence), il s‟agit d‟un ensemble de rapports qui permettent de comparer l'évolution
des ventes pour une période bien précise par rapport à un objectif fixé par les décideurs et
selon les divisions de ventes composées chacune d‟un ensemble de villes un ensemble de
villes. Le choix de ces divisions de ventes sera effectué par les décideurs.
La solution actuelle a été mise en place en trois étapes comme elle est présentée dans la figure
ci-dessous :
Il est nécessaire de présenter les différentes étapes illustrées dans cette figure :
21
Les données exploitées dans notre système actuel proviennent d‟un DWH alimenté par la
société ITC Tunisie. Elle reçoit des fichiers Excel de différentes natures provenant de
plusieurs sources, comme le montre la figure suivante
Etape2 : ETL
Après le regroupement de ces différentes données sous forme de fichiers Excel, elles seront
transférées sur un serveur et seront chargées par la suite dans un DWH en utilisant des lots
SSIS.
Cette étape comprend les différentes transformations effectuées avec Qlik View sur les
données chargées. Parmi les tâches réalisées nous pouvons citer : le mapping, les jointures,
l‟ajout et la modification des données…
22
Figure 5: Exemple de transformation de données dans Qlik View
Les tableaux de bord de la solution existante ont été réalisés après la modélisation avec Qlik
View pour pouvoir visualiser les indicateurs clé de performance.
Le coût élevé : Il s'agit d'un logiciel d'analyse de données coûteux à cause des coûts
associés à l'acquisition de licences et à la maintenance.
L‟utilisation de Qlik View lors de la transformation de données est une étape délicate
qui nécessite un expert.
Le problème de performances : Lorsque la base de données est volumineuse ou
complexe, l'analyse des données devient plus compliquée.
La difficulté d'utilisation : La création des tableaux de bord et des rapports peut
nécessiter des compétences techniques avancées ainsi qu'une formation approfondie
pour les utilisateurs finaux.
Dans l'application SFE sur Qlik View, les tableaux de bord ne sont pas toujours
clairement visibles. Généralement, ils se présentent sous forme de tables, ce qui rend
difficile la compréhension de la réalisation par rapport à l'objectif de la société pour
chaque VM et chaque territoire.
Donc notre projet consiste à mettre en place un système décisionnel, allant de la collecte des
données en utilisant SQL Server passant par la transformation des données jusqu‟à la
génération des tableaux de bord interactifs, tout en utilisant Power BI.
24
Figure 7: Le processus de la solution proposée
Le processus ETL
ETL est un acronyme qui désigne les termes Extract-Transform-Load. C‟est un processus
informatique qui représente un ensemble d'outils et des méthodes qui combinent trois
fonctions. Ce processus est très important dans un projet décisionnel car à ce niveau nous
détectons les anomalies et effectuons des calculs complexes.
• Extraction des données : c'est la première étape du processus ETL. Qui permet
l'extraction des données (c'est à dire lire et interpréter les données source) à partir des
différents systèmes de stockage. Elle consiste à cibler les données, appliquer les filtres
nécessaires et définir la fréquence de chargement.
26
• Transformation des données : c'est la seconde et l'essentielle étape du processus ETL.
En effet, on ne peut pas utiliser les données telles quelles, on doit d'abord les
consolider, les corrections et éliminer de toute ambiguïté, corriger redondances. Cette
opération permet d‟avoir des informations dignes d‟intérêt pour l‟entreprise et qui sont
donc prêtes à l‟entrepôt.
C‟est un serveur informatique dans lequel est centralisé un volume important de données
consolidées à partir des différentes sources notamment les bases de données internes d‟une
entreprise.
Les données dans le data Warehouse doivent être orientées sujet (les données sont liées et
organisées au métier de l‟entreprise), non volatiles (les données disponibles seulement en
lecture, doivent être permanentes et conservées), Historisées (Les données sont associées à
une période particulière pouvoir de comparer et suivre les évolutions dans le temps) et
Intégrées (les données provenant des sources variées doivent être centralisées dans une
structure cohérente).
27
L‟entrepôt de données joue un rôle stratégique dans la vie d‟une entreprise, pour cela il est
utilisé à des fins de reporting et d‟analyse commercial afin d‟alimenter un support d‟aide à la
décision. [4]
Date Mart
Un Data Mart est un sous-ensemble de données du Data Warehouse c'est à dire base de
données précisée destinée à un groupe d'utilisateurs donné afin d‟analyser une activité bien
déterminée dans une entreprise. L'un des principaux objectifs de data Mart est de satisfaire
aux besoins spécifiques des clients. [5]
Analyse OLAP
Le terme OLAP est l'acronyme de Online Analytical Processin. C‟est une technologie
d'organisation de grandes bases de données qui extrait des données dans le but de visualiser
des différents résumés, de répondre aux besoins de reporting et d‟analyse.
Grâce à l‟utilisation des cubes qui reprend les mesures de la table de faits et autres indicateurs
on peut faciliter la navigation des données.
On a des modes de cubes qui on peut utiliser pour stocker les données :
ROLAP c‟est de l‟OLAP relationnel. Ce modèle gère de gros volumes de données. On peut
les obtenir à partir des jointures et tables relationnelles. La requête sera complexe selon la
granularité du projet.
28
Multidimensional Online Analytical Processing (MOLAP):
Ce modèle permet de présenter les données sous forme d'un croisement de n dimensions qui
peut être plus ou moins dense. Le temps d‟exécution est plus rapide et il consomme plus de
mémoire car les données sont pré-agrégées.
HOLAP est une combinaison de deux modes précédents, on utilise ce modèle pour les
données agrégées. [6]
Data mining, on peut aussi l'appeler forage de données, exploration de données. C'est un
processus pour l'analyse des données volumineuses et du big data avec l'utilisation des
classification, clustering, des règles .... Le data minig rentre dans le cadre de business
intelligence pour aider les entreprises à atténuer des risques, connaître les nouvelles
opportunités business ... [7]
Tableau de bord
Tableau de bord est un instrument d'aide à la décision. À partir du tableau de bord on peut
visualiser les informations d'une manière claire et synthétique. Grâce à cette visualisation, le
tableau de bord facilite l'analyse des données, présente les éléments pour juger de la situation,
mesure la performance, atteindre les objectifs fixés, ... [8]
Reporting
Le reporting donne une vue d‟ensemble de l‟entreprise et présente les résultats sur ses
activités dans le but de déterminer des axes d‟amélioration, de présenter des statistiques
fiables, d‟évaluer les performances d‟une équipe. [9]
Table de fait
La table de faits est la table centrale dans chaque modèle dimensionnel qui
stocke les indicateurs de performance. La table da faits contient des clés
29
étrangères (référençant aux clés primaires des tables de dimension) et des
mesures (sont des valeurs généralement numériques, exemple nombre des
ventes, des chiffres d‟affaires ...) dans le but d'analyser ses éléments.
Table de dimension
Les tables de dimension sont des tables associées à une table de faits avec une
clé primaire et elles contiennent aussi des attributs généralement textuels qui
décrivent les caractéristiques des activités. A partir des tables de dimension, on
peut comprendre les données dans le data Warehouse. [10]
Modèle en étoile :
Le modèle en étoile se présente comme une étoile de façon qu‟on a dans le centre la table de
faits et dans les branches les tables de dimension. La force de ce modèle est sa lisibilité et sa
performance, il est plus facile que les autres modèles.
Le modèle en flocon de neige est identique au modèle en étoile, mais ses branches sont
éclatées en hiérarchies. Il sert à éviter la redondance d‟information et des données, à faire
l‟économie d‟espace de stockage et améliorer les performances des requetés.
30
Figure 11: Modèle en flocon de neige
Modèle en constellation :
Les modèle en constellation représente plusieurs tables de faits qui partagent certains axes
d'analyse communs (utilisent même tables des dimensions). [11]
Parmi les méthodologies les plus utilisées dans ce genre de projet, on cite :
Cette approche indique que les données de l'entreprise doivent être organisées et stockées
dans un seul entrepôt de données, où tous les départements de l'entreprise peuvent accéder et
les utiliser pour la prise de décision. [12]
31
Figure 13: Cycle de vie d’Inmon
Dans le tableau ci-dessous, nous avons présenté une comparaison de ces deux méthodologies
32
Complexité de construction Construction complexe Construction simple
Après avoir comparé les deux méthodes nous avons décidé d‟adopter celle de Kimball
puisqu‟elle possède une architecture simple, sa maintenance est facile ainsi qu‟elle ne
nécessite pas de compétences spécialisées.
Conclusion
Au cours de ce premier chapitre, nous avons présenté l'entreprise SANOFI ainsi que ses
activités. Par la suite, après avoir effectué une étude de l‟existant, nous avons proposé notre
solution pour pallier les problèmes dégage ainsi que la méthodologie de Kimball qui va être
utilisée pour la mettre en œuvre.
33
C hapitre 2 : “Définition des besoins et modélisation
de l’entrepôt de données ”
Introduction
Avant de commencer la mise en place de notre solution BI, il est important de se focaliser sur
l‟étape de l‟analyse des besoins d‟affaires. C‟est pour cela, nous allons consacrer ce chapitre à
identifier des indicateurs clés de performance (KPI), à présenter les acteurs, les différents
besoins fonctionnels et non fonctionnels ainsi que l‟architecture de notre système décisionnel.
C'est dans cette optique que nous présentons dans cette section la sélection de ces indicateurs
d‟une manière attentive.
Indicateur Description
Chiffre d‟affaires Mesure le revenu généré par les ventes de produits et de
services de l‟entreprise.
Taux de conversion des Ce taux mesure l'efficacité des représentants commerciaux et
prospects en clients identifie les zones à améliorer.
Taux de fidélisation des Ce taux évalue la satisfaction des clients en ce qui concerne les
clients produits et services de SANOFI.
Part de marché Cet indicateur décrit la position de SANOFI dans l'industrie
pharmaceutique en utilisant le chiffre d‟affaires et le volume de
ventes.
Taux de croissance des Ce taux représente la croissance des ventes sur une période
ventes donnée.
Coût d'acquisition de Il s'agit d'un coût lié aux stratégies marketing et commerciales
clients dans le but d‟obtenir un nouveau client.
Tableau 2: Indicateurs clés de performance de Sanofi Aventis
34
La surveillance de ces indicateurs clés de performance est indispensable pour analyser la
performance financière et opérationnelle de SANOFI ainsi que pour prendre des décisions
efficaces.
Le décideur : il joue un rôle important puisqu‟il interagit d‟une manière directe avec
l‟application soit pour consulter les tableaux de bord dans un but décisionnel soit pour
effectuer des analyses prédictives.
L‟application SFE de SANOFI peut avoir plusieurs besoins fonctionnels. Dans ce qui suit,
nous allons citer quelques exemples de ces besoins :
Générer des tableaux de bord pour suivre la gestion et l‟analyse des ventes de ses
produits en temps réel, par région, par canal de distribution etc…
Générer des tableaux de bord pour suivre la gestion des produits : les vendeurs ont
besoin d'accéder aux informations sur les produits, telles que le prix et le stock
disponible.
Générer des tableaux de bord pour faire des prévisions de ventes grâce à ses données
historiques et actuelles afin de prévoir la demande de ses produits et apporter des
améliorations à son plan d'affaires.
35
2.2.3 Besoins non fonctionnels
Pour garantir la réussite du projet, notre solution doit répondre aux critères suivants :
Sécurité : L‟application doit protéger les données contre les accès non autorisés (les
rapports générés ne doivent être visibles que par les personnes concernées).
Disponibilité : L'application doit être disponible pour les utilisateurs à tout moment
sans interruption.
36
2.3.2 Environnement Technique
La sélection des outils dépendra des besoins spécifiques de SANOFI et de sa stratégie
technologique globale.
Dans la figure ci-dessous : une présentation des outils utilisés tout au long de notre projet.
Conclusion
Dans ce chapitre, nous avons défini les KPI ainsi que les besoins fonctionnels et non
fonctionnels à satisfaire par notre système. Nous avons, par la suite, présenté son architecture
technique ainsi que les outils technologiques à utiliser.
37
C hapitre 3 “Modélisation conceptuelle et physique
de l’entrepôt de données ”
Introduction
Ce chapitre se concentre tout d‟abord, sur l'analyse des données source. Par la suite il
comporte une description des différents axes d‟analyse, des mesures ainsi que du modèle
dimensionnel adopté.
Sanofi nous a généreusement fourni un accès direct à son serveur, ce qui nous permet
d‟extraire les données dont nous avons besoin pour notre application SFE :
38
Table source : dmt_SECTORIAL_SALES
40
Table source: dmt_SECTORIAL_OBJ
SALESFORCE_LEVEL4_ACCOUNT Texte 3 3
42
Table source: dwh_TERRITORY_HAS_GEOGRAPHY
Nom Type Qualité Utilité Description Commentaire
GEOGRAPHY_ID Entier 3 3 L‟id de chaque lieu Ne contient pas des
Null
TERRITORY_ID Entier 3 3 L‟id de chaque Contient des valeurs
territoire de 1 jusqu‟à 37
Tableau 8: Table dwh_TERRITORY_HAS_GEOGRAPHY
44
Table source : dwh_CPA
Nom Type Qualité Utilité Description Commentaire
CustomerL1 Texte 3 3 Contient le nom du Ne contient des Null
consommateur
Specialty Texte 3 3 Représente la spécialité
des magasins
Potential Texte 3 3 Contient la classification Ne contient pas des
des produits A, B, C ou Null
missing value
Réseau Texte 3 3 Représente le réseau de Peut contenirdes Null
vente
AlignmentL1 Texte 3 3 Contient des lieux Peut contenirdes
NuLL
Frequency Entier 3 3 Représente l‟objectif futur Contient les valeurs
Objective de la société entre 0 et 4
Frequency Entier 3 3 Représente l‟objectif Contient les valeurs
Actual actuel de la société et pourcentages
Année Entier 3 3 Contient l‟année -
Mois Entier 3 3 Contient le mois -
CREAT_DT Date 2 1 La date de création du -
produit
45
Table source : DEPENSE_PAR _PRODUIT
Nom Type Qualité Utilité Description Commentaire
WBS element Texte 3 3 - -
Produit Texte 3 3 Nom de chaque produit -
Date Date 2 1 Contient les dates -
Dépenses Date 3 3 Contient les dépenses de -
chaque produit
On a 8 tables de dimensions : Geographie, Produits, Marches Ecran, Temps, Faits Glob, Products
Glob, Geographie Unique, Produits Unique.
Table Geographie
Nom du champs Type Valeur possible
Id_Geographie Texte 1, 21,34 ,29
Id_Geographie_Unique Texte 57-VM05-GAMME ANTIBIO,31-VM02-GAMME ANTIBIO
Code GSU Entier 010201,040201,090101,180102
GSU Texte Bizerte 1A1, Sfax 1A1, Tunis 1B1
Territoire Texte ANTIBIO-SFAX-VM05,ANTIBIO-SOUSSE-VM04
Code VM Texte VM04,VM05,VM07
Compte VM Texte PHARMA\TN001046,PHARMA\TN000652
Mail VM Texte [Link]@[Link],[Link]@[Link]
Nom VM Texte BEN AMOR, Haythem,ERRANA, Chaeima
Compte DSM Texte PHARMA\TN000924,PHARMA\TN001538
Compte NSM Texte PHARMA\TN000380,PHARMA\TN000797
Compte BU Head Texte PHARMA\TN001226,PHARMA\TN000101
Id_Réseau Texte GAMME CARDIO,SANOFI-PASTEUR
BU Texte BU PASTEUR,BU EP
46
Table Geographie Unique
Nom du champs Type Valeur possible
Id_Geographie Texte 1, 21,34 ,29
Id_Geographie_Unique Texte 57-VM05-GAMME ANTIBIO,31-VM02-GAMME ANTIBIO
Code GSU Entier 010201,040201,090101,180102
GSU Texte Bizerte 1A1, Sfax 1A1, Tunis 1B1
Territoire Texte ANTIBIO-SFAX-VM05,ANTIBIO-SOUSSE-VM04
Code VM Texte VM04,VM05,VM07
Compte VM Texte PHARMA\TN001046,PHARMA\TN000652
Mail VM Texte [Link]@[Link],[Link]@[Link]
Nom VM Texte BEN AMOR, Haythem,ERRANA, Chaeima
Compte DSM Texte PHARMA\TN000924,PHARMA\TN001538
Compte NSM Texte PHARMA\TN000380,PHARMA\TN000797
Compte BU Head Texte PHARMA\TN001226,PHARMA\TN000101
Id_Réseau Texte GAMME CARDIO,SANOFI-PASTEUR
BU Texte BU PASTEUR,BU EP
Table Produits
Nom du champs Type Valeur possible
Id_Produit Texte 1#10,1#100,2#67,2#45,2#29,3#50#2,3#5#2,1#144
Id_Produit_Unique Texte 1#123-MARCHE AMOXICLAV SANOFI ADT-
GAMME ANTIBIO
Marché Texte MARCHE LOVENOX PREVENTIF,MARCHE ARA II
SKU Texte HEXAXIM,TRITAZIDE,AMAREL CPR.1MG+2MG 30
Nom Produit Texte AMAREL, PENTAXIM,TRITAZIDE
Laboratoire Texte SANOFI, OTHER
P. Réseau Texte GAMME ANTIBIO,SANOFI-PASTEUR
47
SKU Texte HEXAXIM,TRITAZIDE,AMAREL CPR.1MG+2MG 30
Nom Produit Texte AMAREL, PENTAXIM,TRITAZIDE
Laboratoire Texte SANOFI, OTHER
P. Réseau Texte GAMME ANTIBIO,SANOFI-PASTEUR
Table Temps
Nom du champs Type Valeur possible
Id_Date Date 01/01/2022,01/03/2017
Année Entier 2022,2020,2019,2018
Trimestre Texte Q1, Q2, Q3, Q4
Interval Trimestre Texte 2022-janvier-01,2020-mars-03
Mois Texte Janvier, Février, Mars
Num Mois Entier 12,01,10,05,
Num Mois Test Entier 202201,201905,202007
Num Mois Test3Mobiles Entier 202111,202206
Num Mois Test6Mobiles Entier 202202, 202107
Mois-Année Texte Janvier-2022, août-2019
Num Date Entier 202208, 201902
Table FaitsGlob
Nom du champs Type Valeur possible
[Link] Date 01/01/2022,01/03/2017
G.id_Produit Texte 1#4,1#12,1#20
[Link] Période Texte MTH, YTD, CTD
[Link] Qte Ventes Entier 8077, 1502, 8844
[Link] Qte Ventes Y-1 Entier 10071, 1019, 10027
[Link] Qte Ventes P-1 Entier 10027, 101,10199
[Link] Val Ventes Entier 24197, 810552
[Link] Val Ventes Y-1 Entier 1007, 101112
48
[Link] Val Ventes P-1 Entier 1015, 1001221
[Link] Obj Val Entier 21584, 539188
[Link] Obj Qte Entier 163, 2200
- Table de faits
49
Test_Sect Qte Ventes P-1 Entier 10,1022,1006
Test_Sect Qte Ventes Y-1 Entier 103,1005,10
Test_Sect Val Ventes Entier 1018,1529,15
Test_Sect Val Ventes P-1 Entier 1018,1021,1016
Test_Sect Val Ventes Y-1 Entier 1000,1297,1300
Test_Sect Obj Qte Entier 160,17,143
Test_Sect Obj Val Entier 10043,1008,10406
Test_Réseau Texte CARDIO MG,DOULEUR, HOPITAL
Test_Nom VM Texte AMAL, Moussa, Essabbeh, Nouha
Test_GSU Texte Total VM04, Total VM07
Test_Marché Texte MARCHE AMAREL, MARCHE LOVENOX
CURATIF
Test_P_R_M Entier 0,1
TestMarché_Sect Val Ventes Entier 10129,1020,10040
TestMarché_Sect Val Ventes P-1 Entier 1181,1191,1316
TestMarché_Sect Val Ventes Y-1 Entier 1018,1002,10187
TestMarché_Sect Obj Val Entier 1052,1003,10455
TestMarché_Sect Qte Ventes Entier 102,1020,1022
TestMarché_Sect Qte Ventes P-1 Entier 1014,1022,11 34
TestMarché_Sect Qte Ventes Y-1 Entier 1379,140,1410
TestMarché_Sect Obj Qte Entier 101,109,250
TestMarché2_Sect Val Ventes Entier 10501,10567,11018
TestMarché2_Sect Val Ventes P- Entier 10930,10802,10155
1
TestMarché2_Sect Val Ventes Y- Entier 1000,10363,1032
1
TestMarché2_Sect Qte Ventes Entier 1012,1009,1077
TestMarché2_Sect Qte Ventes P- Entier 1009,1008,1012
1
TestMarché2_Sect Qte Ventes Y- Entier 111,1095,108
1
CPA_CustomerL1 Texte ATALLAH SALMA, ATI HASSEN, ATTIA IHEB
CPA_Specialty Texte Biochimie, Cancérologie, Chirurgie Générale
CPA_Potential Texte A, B, C, MISSING VALUE
CPA_Frequency Objective Entier 0,1,2,3,4
CPA_Frequency Actual Entier 1,10,12,7
Depense_Type_Action Texte TNAP3-AMAREL-ISS-RT,TNAP3-AMLOPIDINE-
DOC-BR
Depense_Type_Action_Global Texte IC,LK,NO
Depense_Montant Entier 588,235,60,1176,47
50
3.3 Conception du Modèle Physique
Pour mieux comprendre les relations entre les tables, il est important de représenter
graphiquement la structure de notre base de données. Dans le chapitre 1, nous avons présenté
les 3 modèles de conception. Notre choix s‟est porté sur le schéma en flocon de neige car on a
des tables dimensions dont les branches sont éclatées en hiérarchies. [14]
Cette figure représente les relations entre les tables de dimensions et celle de faits, nous avons
utilisé le langage UML.
Conclusion
Dans ce chapitre, nous avons identifié les données sources à intégrer dans notre système
décisionnel, par la suite, nous avons effectué la modélisation de notre système tous en
identifiant les différentes axes d‟analyse.
51
C hapitre 4 “Intégration des données ”
Introduction
Le processus ETL est une étape fondamentale dans tout projet décisionnel. Dans ce chapitre,
alors, nous allons étudier de manière détaillée les différentes phases d‟intégration de données
en utilisant le processus ETL pour la mise en place de notre système décisionnel. Nous
commençons par l‟extraction des données sources. Ensuite, nous passons à la phase de
nettoyage de ces données. Enfin, nous chargerons les données traitées dans l‟entrepôt de
données.
52
DSM EL2_ACCOUNT
Compte Geographie SALESFORCE_LEV dwh_TERRITORY -
NSM EL3_ACCOUNT
Compte Geographie SALESFORCE_LEV dwh_TERRITORY -
BU EL4_ACCOUNT
BU Geographie BU_LEVEL2_LAB dwh_BU -
Id_Geogra Geographie Id_Geographie Geographie Id_Geographie
phie_Uniq Code VM “-” Code
ue Id_Réseau VM “-
”Id_Réseau
Tableau 26: Matrice de transformation de la table Geographie
54
Matrice de transformation de la table Produits
Champs Table Champs Soure Table Source Règle de
Cible Cible transformation
Id_Produit Produits PRODUCT_SFE_I dwh_PRODUCT_S . Si
D FE PRODUCT_SFE_ID
PRODUCT_SFE_ dwh_PRODUCT_S n‟est pas nul alors
LEVEL2_CODE FE concaténez „1#‟ à
BU_ID dwh_BU_HAS_PR PRODUCT_SFE_ID
ODUCT_SFE . Si
PRODUCT_SFE_I dwh_BU_HAS_PR PRODUCT_SFE_LEV
D ODUCT_SFE EL2_CODE n‟est pas
nul alors concaténez
„2#‟ à
PRODUCT_SFE_LEV
EL2_CODE
. si
PRODUCT_SFE_ID
de table
dwh.PRODUCT_SFE
= PRODUCT_SFE_ID
de table
dwh_BU_HAS_PROD
UCT_SFE et
PRODUCT_SFE_LEV
EL2_CODE n'est pas
nul alors concaténez
„3#‟ à
PRODUCT_SFE_LEV
EL2_CODE à BU_ID
55
Nom Produits PRODUCT_SFE_ dwh_PRODUCT_S -
Produit LEVEL2_LAB FE
Laboratoire Produits COMPETITOR_L dwh_PRODUCT_S -
AB FE
Marché Produits MARKET_SFE_L dwh_MARKET_SF Supprimer les doubles
AB E
P. Réseau Produits BU_LEVEL1_LA dwh_BU_HAS_PR -
B ODUCT_SFE
Id_Produit_ Produits Id_Produit Produits Id_Produit “-”
Unique Marché Marché “-” P. Réseau
P. Réseau
Tableau 30: Matrice de transformation de la table Produits
57
Matrice de transformation table Products Glob
Champs Table Champs Source Table Source Règle de
Cible Cible transformation
G.Réseau ProductsG P.Réseau Produits -
lob
[Link]é ProductsG Marché Produits -
lob
[Link] ProductsG Nom Produit Produits -
Produit lob
[Link] ProductsG SKU Produits -
lob
Tableau 33: Matrice de transformation de la table Products Glob
59
NB_OF_VISIT_YTD dmt_QUO
TA_VISIT
NB_OF_VISIT_RQTR dmt_QUO
TA_VISIT
NB_OF_VISIT_QTR dmt_QUO
TA_VISIT
NB_OF_VISIT_Mat dmt_QUO
TA_VISIT
Sect Obj Val Faits SECT_OBJ_VAL_M dmt_SECT Champs source = „fait‟
ORIAL_O
BJ
Sect Obj Qte Faits SECT_OBJ_QTY_M dmt_SECT
ORIAL_O
BJ
VD_C/D Faits C D Actual dwh_VD -
Actual
VD_Double Faits Double Call dwh_VD -
Call
Test_Sect Qte Faits SECT_SALES_QTY_M dmt_SECT Condition 1 : Champs
Ventes ORIAL_S source = „faits_Test‟
ALES
Test_Sect Qte Faits SECT_SALES_QTY_M1 dmt_SECT Condition 2 : Type
Ventes P-1 ORIAL_S période = MTH
ALES
Condition 3 : Si
Test_Sect Qte Faits SECT_SALES_QTY_M1 dmt_SECT
Test_marché de table
Ventes Y-1 2 ORIAL_S
produit = Marché
ALES
Ecran de table
Test_Sect Val Faits SECT_SALES_VAL_M dmt_SECT
MarchesEcran.
Ventes ORIAL_S
Concaténation 1 :
ALES
SALESLINE
Test_Sect Val Faits SECT_SALES_VAL_M1 dmt_SECT
„|‟ MARKET_LAB de
Ventes P-1 ORIAL_S
table
ALES
dwh.SALESLINE_M
Test_Sect Val Faits SECT_SALES_VAL_M1 dmt_SECT
ARKET_PRODUCT.
Ventes Y-1 2 ORIAL_S
Conacténation 2 :
ALES
Test_Réseau + „ | ‟+
Test_Sect Obj Faits SECT_OBJ_Qte_M dmt_SECT
Test_Maché
Val ORIAL_O
Condition 4 :
BJ
concaténation 1 =
Test_Sect Obj Faits SECT_OBJ_VAL_M dmt_SECT
concaténation 2.
Qte ORIAL_O
BJ
Test_Réseau Faits Réseau Geographie -
60
Réseau dwh_CPA
Test_Maché Faits Marché Produit -
Test_Réseau_ Faits Réseau Geographie . Test_Réseau + „ | ‟+
Marché_Secur Maché Produit Test_Maché
ity AlignmentL1 dwh_CPA . Condition sur la
colonne AlignmentL1 :
Remplacer
'URGENCES PATHO'
par 'URGENCES-
PATHO'
Si après le mot VM il
y a un seul chiffre,
ajoutez un 0 avant le
chiffre. Si après le mot
VM il y a 3 chiffres,
supprimez le premier
chiffre.
Test_P_R_M Faits SALESLINE dwh_SALE . Recherche 1 : si
SLINE_M Id_produit de table
ARKET_P faits = Id_produit de
RODUCT table produit prend la
MARKET_LAB dwh_SALE valeur de colonne
SLINE_M Nom produit sinon
ARKET_P „Null‟.
RODUCT . Concaténation 1 :
PRODUCT dwh_SALE Marché „|‟ Réseau „|‟
SLINE_M Résultat de Recherche
ARKET_P 1.
RODUCT . Concaténation 2 :
Id_Produit Faits SALESLINE „|‟
Id_Produit Produits MARKET_LAB „|‟
Nom Produit Produits PRODUCT.
Marché Produits . Recherche 2 : si
Réseau MarchesEc Concaténation 1 =
ran Concaténation 2 prend
la valeur de
Concaténation 2 sinon
„0‟
Test_Code Faits Code VM Geographie Condition sur la
VM AlignmentL1 dwh_CPA colonne AlignmentL1 :
Remplacer
'URGENCES PATHO'
par 'URGENCES-
61
PATHO'
Si après le mot VM il
y a un seul chiffre,
ajoutez un 0 avant le
chiffre. Si après le mot
VM il y a 3 chiffres,
supprimez le premier
chiffre.
Test_DSM Faits Id_date Faits . Concaténation 1 :
Territoire Geographie Année et mois en
Alignment REP dwh_VD format date.
Alignment DSM dwh_VD . Transformation de la
Année dwh_VD colonne Alignment
Mois dwh_VD REP :Si après le mot
VM il y a un seul
chiffre, ajoutez un 0
avant le chiffre. Si
après le mot VM il y a
3 chiffres, supprimez
le premier chiffre.
. Concaténation 2 :
Alignment REP après
transformation „|‟
résultat de
concaténation 1.
. Concaténation 3 :
Territoire „|‟ Id_date.
. Recherche : si
Concaténation 2 =
Concaténation 3 prend
la valeur de Alignment
DSM sinon
„Innconue‟.
Test_Nom Nom VM Geographie Condition sur la
VM Alignment REP dwh_VD colonne Alignment
REP : si après le mot
VM il y a un seul
chiffre, ajoutez un 0
avant le chiffre. Si
après le mot VM il y a
3 chiffres, supprimez
le premier chiffre.
Test_GSU Code GSU Geographie Concaténation de deux
62
GSU colonnes de table
Geographie Code GSU
„|‟ GSU
Si champs source
='Faits_Test_Marché2'
alors on concatène
“Total” &Test_Code
VM.
63
'VM02' ou 'VM03' ou
'VM04' ou 'VM05' ou
'VM06').
Prends la valeur
„Tunisie Sud ‟ si
champs source =‟
'Faits_Test_Marché2'‟
et
Test_Réseau='RESEA
U GASTRO' et
(Test_Code
VM='VM05' ou
'VM06' ou 'VM07‟
ou'VMY')
Ou
.
Test_Réseau='RESEA
U ANTIBIO' et
(Test_Code
VM='VM07' ou
'VM08' ou 'VM09' ou
'VM10‟ ou 'VM11' ou
'VMY').
TestMarché_S Faits SECT_SALES_VAL_M dmt_SECT Condition1 : Champs
ect Val Ventes ORIAL_S source =
ALES 'Faits_Test_Marché'
TestMarché_S Faits SECT_SALES_VAL_M1 dmt_SECT Condition 2 : Si
ect Val Ventes ORIAL_S Test_marché de table
P-1 ALES produit = Marché
TestMarché_S Faits SECT_SALES_VAL_M1 dmt_SECT Ecran de table
ect Val Ventes 2 ORIAL_S MarchesEcran.
Y-1 ALES Condition 3 :
TestMarché_S Faits SECT_OBJ_VAL_M dmt_SECT Test_Réseau =
ect Obj Val ORIAL_O P.Réseau de table
BJ produit ou
TestMarché_S Faits SECT_SALES_QTY_M dmt_SECT P.Réseau Not null ou
ect Qte Ventes ORIAL_S vide .
ALES Concaténation 1 :
TestMarché_S Faits SECT_SALES_QTY_M1 dmt_SECT SALESLINE
ect Qte Ventes ORIAL_S „|‟ MARKET_LAB de
P-1 ALES table
TestMarché_S Faits SECT_SALES_VAL_M1 dmt_SECT dwh.SALESLINE_M
ect Qte Ventes 2 ORIAL_S ARKET_PRODUCT.
64
Y-1 ALES Conacténation 2 :
TestMarché_S Faits SECT_OBJ_QTY_M dmt_SECT Test_Réseau + „ | ‟+
ect Obj Qte ORIAL_O Test_Maché
BJ Condition 4 :
concaténation 1 =
concaténation 2.
Condition 5 :
Test_Réseau différente
Test_P.Réseau et
Test_P_R_M = 1.
TestMarché2_ Faits TestMarché_Sect Val Faits Calcule somme de
Sect Val Ventes colonne
Ventes TestMarché_Sect Val
TestMarché2_ Faits TestMarché_Sect Val Ventes
Sect Val Ventes P-1 TestMarché_Sect Val
Ventes P-1 Ventes P-1
TestMarché2_ Faits TestMarché_Sect Val TestMarché_Sect Val
Sect Val Ventes Y-1 Ventes Y-1
Ventes Y-1 TestMarché_Sect Qte
TestMarché2_ Faits TestMarché_Sect Qte Ventes
Sect Qte Ventes TestMarché_Sect Qte
Ventes Ventes P-1
TestMarché2_ Faits TestMarché_Sect Qte TestMarché_Sect Qte
Sect Qte Ventes P-1 Ventes Y-1
Ventes P-1
TestMarché2_ Faits TestMarché_Sect Qte Par Id_Date,
Sect Qte Ventes Y-1 Id_Produit, Type
Ventes Y-1 Période,Test_Réseau,
Test_Territoire,Test_R
éseau_Marché_Securit
y,Test_DSM,Test_Cod
eVM,Test_Nom VM,
Test_Marché,Test_P_
R_M
Condition : champs
source
='Faits_Test_Marché2'
VD_C/D Faits VD_C/D Actual dwh_VD -
Actual
VD_Double Faits VD_Double Call dwh_VD -
Call
CPA_Custome Faits CustomerL1 dwh_CPA -
65
rL1
CPA_Specialt Faits Specialty dwh_CPA -
y
CPA_Potential Faits Potential dwh_CPA -
CPA_Frequen Faits Frequency Objective dwh_CPA -
cy Objective
CPA_Frequen Faits Frequency Actual dwh_CPA -
cy Actual
Depense_Type Faits WBS element DEPENSE -
_Action _PAR
_PRODUI
T
Depense_Type Faits WBS element DEPENSE Extraire les deux
_Action_Glob _PAR_PR premiers chiffres
al ODUIT seulement
Depense_Mon Faits Dépenses DEPENSE -
tant _PAR
_PRODUI
T
Tableau 34: Matrice de transformation de la table Faits
66
4.3 Développement du système ETL
Le processus ETL est une étape cruciale dans la mise en place d‟un système décisionnel. Il
comporte trois phases : l‟extraction, la transformation et le chargement des données dans un
entrepôt commun.
Pour réaliser ce processus, nous avons choisi d‟utiliser Power Query, un outil de
transformation des données proposé par Microsoft. Cette solution offre de nombreux
avantages, notamment une interface intuitive, un large éventail de fonctionnalités de
transformation des données et une grande flexibilité.
Pour extraire les données sources, nous devons d‟abord sélectionner la source de données à
partir de laquelle nous voulons extraire les données. Dans notre cas, la source est SQL Server.
Le figure 4.2 présente la sélection des table source à partir SQL Serveur :
- Table Geographie
La figure 4.4 présente le code de transformation effectuée pour obtenir la table Geographie:
68
Pour remplir la table de dimension Geographie, nous récupérons toutes les colonnes de la
table dwh_GEOGRAPHY, sauf les colonnes CREAT_DT et MODIF_DT. Ensuite, nous
effectuons une jointure entre la table dwh_GEOGRAPHY et la table
dwh_TERRITORY_HAS_GEOGRAPHY en utilisant la colonne GEOGRAPHY_ID comme
colonne de liaison (nous récupérons toutes les colonnes sauf les colonnes CREAT_DT et
MODIF_DT). Nous avons ensuite besoin d‟effectuer une autre jointure avec la table
[Link] en utilisant la colonne TERRITORY_ID, et enfin une dernière jointure
avec la table [Link] en utilisant la colonne BU_ID.
Finalement, nous supprimons les colonnes qui ne sont pas nécessaires et les permuter pour
ordonner la table selon nos besoins.
Il est nécessaire de créer une copie de la table "Geographie", puis de supprimer les doublons
de la colonne "Id_Geographie_Unique" afin de distinguer les différents lieux, pour on peut
faire la relation avec la table "faits". En effet, la table "Geographie" contient des doublons car
chaque lieu peut avoir différents réseaux et VM associés.
- Table Produits
Les figures 4.5, 4.6 et 4.7 présentent le code de transformation effectuée pour obtenir la table
Produits :
Pour charger la table de dimension Produits, nous commençons par récupérer toutes les
colonnes de la table dwh_Product_SFE. Ensuite, nous créons une colonne KeyPrd qui
contient "1#" suivi de la valeur de la colonne PRODUCT_SFE_ID, et "2#" suivi de la valeur
de la colonne PRODUCT_SFE_LEVEL2_CODE. Ensuite, nous récupérons toutes les
colonnes de la table dwh_BU_HAS_PRODUCT_SFE et faisons une jointure entre les deux
tables en utilisant la colonne PRODUCT_SFE_ID. Nous ajoutons ensuite à la colonne
KeyPrd "3#" suivi de la valeur de la colonne PRODUCT_SFE_LEVEL2_CODE, et "3#"
suivi de la valeur de la colonne BU_ID. Nous récupérons également la table
70
dwh_MARKET_SFE. Nous testons si la colonne Id_Produit commence par la valeur "2#". Si
c'est le cas, nous remplissons la colonne SKU avec la valeur de la colonne
PRODUCT_SFE_LEVEL2_LAB, sinon avec la valeur de la colonne
PRODUCT_SFE_LEVEL1_LAB. Ensuite, nous remplissons les colonnes Nom Produit,
Laboratoire, Marché et P. Réseau à partir des colonnes PRODUCT_SFE_LEVEL2_LAB,
COMPETITOR_LAB, MARKET_SFE_LAB et BU_LEVEL1_LAB, respectivement.
Enfin, nous supprimons toutes les colonnes qui ne sont pas nécessaires et nous les permutons
pour organiser la table selon nos besoins.
- Table ProduitsUnique
La table "Produit" contient des doublons car chaque produit peut être associé à plusieurs types
différents. A cette raison, ont créé une copie de la table "Produits" et supprimer les doublons
de la colonne "Id_Produit_Unique" pour différencier les différents produits Pour pouvoir
établir la relation avec la table faite.
- Table Temps
Les figures 4.8 et 4.9 présentent le code de transformation effectuée pour obtenir la table
Temps :
71
Figure 27: Transformation de la table Temps 2
Nous créons une table Temps qui contient la colonne Id_Date. Cette colonne contiendra
toutes les dates à partir de la date minimale jusqu'à la date maximale de la table de faits.
Ensuite, nous créons le premier colonne Année qui comportera uniquement l'année d'après la
colonne Id_Date, la deuxième colonne Trimestre qui contiendra "Q" suivi du numéro de
trimestre de chaque date, La troisième colonne Interval Trimestre contiendra le premier mois
du trimestre, le dernier mois et l'année.
Nous ajoutons également la colonne Mois qui renfermera le mois, la colonne Num Mois qui
contiendra le numéro de chaque mois et la colonne Num Mois Teste qui contiendra l'année
multipliée par 100 plus le numéro de mois.
Pour remplir la colonne Num Mois Test3Mobile, nous testons si le numéro du mois est
inférieur à 3. Si c'est le cas, nous multiplions l'année par 100 et ajoutons le numéro de mois
moins 91. Sinon, nous faisons le même calcul en remplaçant 91 par 3. Nous suivons un
processus similaire pour compléter la colonne Num Mois Test6Mobile en utilisant le chiffre
94 à la place de 91 et le chiffre 6 à la place de 3.
Enfin, nous remplissons la colonne Mois-Année en séparant l'année et le mois par "-". Nous
Complétons la colonne Num Date avec le numéro entier de chaque date.
- Table Faits Glob
La figure 4.10 présente le code de transformation effectuée pour obtenir la table Faits Glob :
72
Figure 28: Transformation de la table Faits Glob
Pour remplir la table de dimension Faits Glob, nous récupérons les colonnes suivantes de la
table « faits » : %Date, %Produit, Type Période, Sect Qte Ventes, Sect Qte Ventes Y-1, Sect
Qte Ventes P-1, Sect Val Ventes, Sect Val Ventes Y-1, Sect Val Ventes P-1, Sect Obj Val,
Sect Obj Qte. Ensuite, nous renommons ces colonnes en ajoutant le préfixe « G. » devant
chaque nom de colonne, puis nous effectuons la somme de chaque colonne en les regroupant
par %Date, %Produit et Type Période.
Les figures 4.11, 4.12 et 4.13 présentent le code de transformation effectuée pour obtenir la
table Marches Ecran :
73
Figure 30: Transformation de la table Marches Ecran 2
Pour remplir la table Marches Ecran, nous récupérons la table Produits uniquement pour
extraire la colonne "Marché" que nous renommons en "Marché Ecran". Nous extrayons la
colonne "BU_LEVEL1_LAB" de la table dwh_BU et nous la renommons en "Id_Réseau",
puis nous supprimons les doublons.
- Table Products Glob
La figure 4.14 présente le code de transformation effectuée pour obtenir la table Products
Glob :
74
Figure 32: Transformation de la table Products Glob
Pour remplir la table de dimension Products Glob, nous récupérons les colonnes %Produit,
SKU, Nom Produit et P.Réseau de la table « Produit ». Ensuite, nous renommons ces
colonnes en ajoutant le préfixe « G. » devant chaque nom de colonne. Enfin, nous supprimons
les doubles de la table.
- Table Faits
À partir de la figure 4.15 jusqu'à la figure 4.33, sont présentés les codes de transformation
utilisés pour obtenir la table Faits :
75
Figure 34: Transformation de la table Faits 2
Dans la colonne "Type Période", nous retrouvons des valeurs telles que "MTH", "QTR",
"CTD", "RQTR", "YTD" et "MAT". Les colonnes "Sect Qte Ventes", "Sect Qte Ventes P-1",
"Sect Qte Ventes Y-1", "Sect Val Ventes", "Sect Val Ventes P-1", "Sect Val Ventes Y-1",
"Sect Obj Val" et "Sect Obj Qte" sont remplies à partir des colonnes de la table
"dmt_SECTORIAL_SALES" avec le champ source spécifié comme "faits" pour les distinguer
des autres colonnes de test.
La colonne "NB Visites" contient des valeurs à partir des champs de la table
"dmt_QUOTA_VISIT". La colonne "VD_C/D Actual" est remplie à partir de la champs "C D
Actual" de la table "dwh_VD" et la colonne "VD_Double Call" est rempli à partir de la
colonne "Double Call" de la table "dwh_VD".
Ensuite, nous effectuons plusieurs transformations pour remplir les autres colonnes de test.
82
Figure 52: Publier les données
Après avoir choisi publier, nous devons sélectionner l'espace de travail spécifié « DM » pour
les données transformées PBI_DM_DEV_GEM_MCOMATN comme montre la figure 4 .35 :
Après avoir réussi l'opération, nous devons vérifier que les données ont été ajoutées à la
plateforme Power BI spécifier, comme le montre la figure 4.38 :
84
Figure 56: Vérification que les données et été publier
Il est essentiel de vérifier la qualité et l'intégrité des informations stockées dans notre entrepôt
de données et s'assurer que les données sont correctement structurées.
La figure 4.39 présentée la table de dimensions "Geographie" chargée des données intégrées :
La figure 4.40 présentée la table de dimensions "Geographie Unique" chargée des données
intégrées :
85
Figure 58: Résultat de la table Geographie Unique
La figure 4.41 présentée la table de dimensions "Marches Ecran" chargée des données
intégrées :
86
La figure 4.42 présentée la table de dimensions "Produits" chargée des données intégrées :
La figure 4.43 présente la table de dimensions "Produits Unique" chargée des données
intégrées :
La figure 4.44 présente la table de dimensions "Temps" chargée des données intégrées :
87
Figure 62: Résultat de la table Temps
La figure 4.45 présente la table de dimensions "Products Glob" chargée des données
intégrées :
La figure 4.46 présentée la table de dimensions "Faits Glob" chargée des données intégrées :
88
Figure 64: Résultat de la table Faits Glob
La figure 4.47 présentée la table de faits "Faits" chargée des données intégrées :
Conclusion
Le chapitre quatre a été consacré à la mise en place d'un processus ETL(l'extraction,
transformation et le chargement des données) pour intégrer les données traitées dans l'entrepôt
de données.
89
C hapitre 5 “Développement de la solution BI ”
Introduction
Après avoir intégré les données traiter dans notre entrepôt de données, nous allons les
exploiter pour générer des tableaux de bord. Ce chapitre, alors, sera consacré en premier lieu à
la conception et la mise en œuvre des tableaux de bord. En deuxième lieu à la présentation des
étapes de développement et de déploiement de notre système BI pour pouvoir les visualiser.
Dans cette partie, nous présente quelques exemple des maquettes dans notre application :
90
La figure 5.2 présentée la maquette de page Vue Globale :
91
Figure 69: Maquette page Marché Tunisienne
92
Ensuite, nous sélectionnons « Power Platform » et après « Jeux de données Power Bi »
comme le montre la figure suivante :
Une fois la connexion à notre entrepôt de données établie, nous sélectionnons le fichier que
nous avons déjà chargé lors de la phase de chargement de données.
93
Figure 72: Connexion base de données 3
A la fin, nous devons choisir les tables que nous utiliserons dans notre application SFE. Dans
ce cas, nous choisissons toutes les tables qui ont été chargées après la transformation.
94
La figure 5.11 présentée page Home de l‟application SFE :
C'est la première page de l'application qui vous permet de choisir le marché et le réseau pour
accéder aux autres pages.
. Filtres et boutons :
- Bouton "Accéder aux Dashboard" qui s'affiche uniquement lorsque vous avez
sélectionné un marché et un réseau.
Note : la fonction ISFILTRED utilisé pour vérifier si la colonne a été filtrer par l‟utilisateur
ou non.
95
Figure 78: Bouton Acc Bloc
- Bouton "Supprimer" qui permet de supprimer les filtres et s'affiche lorsque vous avez
sélectionné au moins un réseau ou un marché.
Nous cherchons à avoir une idée globale du chiffre d'affaires ou de la quantité vendue par
rapport à l‟objectif de trimestre et l‟évaluation du produit. Nous allons pour cela présenter
toutes les informations nécessaires et procéder aux calculs requis. Ces objectifs sont essentiels
pour planifier les actions à mettre en place et évaluer notre performance actuelle pour
atteindre les objectifs futurs.
Afin d'assurer une compréhension optimale, nous utilisons les éléments visuels suivants :
96
- Carte montrant le chiffre d'affaires ou la quantité vendue par trimestre en fonction du
bouton sélectionné.
Note : fonction CALCULATE utilisé pour on peut le faire des calcule avec des filtres sur des
colonnes.
- Carte présentant l'évaluation des produits.
Note : fonction ROUND utilisé pour prend des valeurs spécifier après le virgule.
- Jauge indiquant le pourcentage du chiffre d'affaires par rapport à l'objectif.
97
Figure 88: Quantité / objectif
- Carte qui affiche un message répondre à la question : est-ce que l‟objectif a été
réaliser :
Nous cherchons à avoir une idée de la réalisation de chaque VM (délégué) par rapport à
l'objectif et à chaque produit spécifié, afin de pouvoir comparer chaque VM par rapport aux
autres.
- Tableau présentant la réalisation et les objectifs par valeur ou en volume, ainsi que le
pourcentage de réalisation par rapport à l'objectif de chaque VM dans les différents
types de produits choisis (si le produit comporte plusieurs types).
98
- Radar montrant la réalisation par rapport à l'objectif général en valeur ou en volume
dans le produit et le réseau choisis.
- Un segment pour filtrer la période (MTH, CTD, QTR, MAT, RQTR, YTD).
99
- Un segment pour filtrer les années.
- Bouton „Vue Globale‟, „Suivi des objectifs‟, „Marché Tunisien‟, „Extraction Manager‟
et „Synthèse‟ permet de naviguer entre les pages.
100
Figure 98: Résultat obtenir après la transformation 2
101
Figure 100: Résultat obtenir dans les tableaux de bord
Une fois que l‟espace de travail est sélectionné, il est nécessaire d‟attendre que l‟opérateur
réussisse.
102
Figure 102: Publication de l’application 3
A la fin, il est nécessaire de vérifier si l‟application a bien été ajoutée dans le plateforme
comme montre le figure 5.44 :
103
5.3.2 Attribution de l’application à un utilisateur
Après la publication de l'application dans Power Platform, l'administrateur doit donner l'accès
aux utilisateurs en tant que "viewer" pour juste voir le tableau de bord et en tant
qu'administrateur pour pouvoir gérer les accès et développer l'application.
Dans la figure 5.45, un exemple est donné pour donner l'accès à Hanchi Farah en tant que
"viewer".
Conclusion
Au cours de ce dernier chapitre, nous avons conçu et développer nos tableaux de bord. Par la
suite nous avons présenté les différentes étapes de conception et de mise en œuvre de notre
application BI ainsi que sa phase de déploiement.
104
Conclusion générale
Dans le cadre de notre projet de fin d'études, Sanofi nous offre la possibilité de développer
nos compétences et renforcer nos connaissances tout au long de notre formation universitaire.
Ce projet a été une opportunité pour approfondir nos larges informations techniques et pour
s'entrainer mieux dans le domaine d‟informatique décisionnelle.
Pour bien gérer ce projet, tout d'abord, nous avons présenté l'établissement et ses activités,
puis analysé l'existant afin de proposer notre solution en utilisant l'approche de Ralph
Kimball. Aussi, pour bien comprendre les besoins de l'application, nous avons défini les KPI
ainsi que les besoins fonctionnels et non fonctionnels.
Ensuite, nous avons mis en place le processus ETL pour intégrer les données dans l'entrepôt
de données en utilisé l'outils BI Power Query pour la transformation des données. Enfin, nous
avons développé des tableaux de bord sur Power Bi interactifs qui répondent aux besoins de
l'entreprise.
Finalement, nous espérons que les objectifs de ce projet seront atteints et s‟il y a d‟autres
possibilités pour développer et améliorer notre projet en ajoutant d‟autres fonctionnalités et
d‟autres axes d‟analyse qui englobent d‟autres modules nous sommes prêts et aptes à le faire.
105
Référence
[1] Sanofi — Wikipédia ([Link]) Consulté le 01/03/2023.
[3] Qu‟est-ce qu‟un ETL ( Extract Transform Load) ? | Tenor EAI ([Link])Consulté
le 10/03/2023.
[7] Data Mining définition : Qu'est-ce que l'exploration des données ? ([Link])Consulté
le 12/03/2023.
106