PFE Adnen
PFE Adnen
PFE Adnen
Dédicace
d
5
Remerciement
6
Acronymes
EARDEEP :
BI : Business Intelligence
DW : Data Warehouse
ETL : Extract-Transform-Load
DM : Data Mart
7
TABLE DES MATIÈRES 8
2.2.2.2 Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.2.2.3 Outil de modélisation UML . . . . . . . . . . . . . . . . . 26
2.3 Spécification des exigences . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 Exigences non fonctionnelles . . . . . . . . . . . . . . . . . . . . . . 27
2.4 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 Backlog de produit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Analyse globale des exigences . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.7 Analyse de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.8 Conception globale de data mart . . . . . . . . . . . . . . . . . . . . . . . 34
2.9 Étude du modèle conceptuel . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.9.1 Schéma global de la conception . . . . . . . . . . . . . . . . . . . . 37
2.9.2 Dimensions dégagées . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.10 Choix des outils Business Intelligence . . . . . . . . . . . . . . . . . . . . . 38
2.10.1 Étude comparative des outils ETL . . . . . . . . . . . . . . . . . . 38
2.10.2 Étude comparative des outils de visualisation . . . . . . . . . . . . 40
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Conclusion Générale 70
Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
TABLE DES FIGURES
10
TABLE DES FIGURES 11
13
CHAPITRE 1
CONTEXTE GÉNÉRALE DU PROJET
Sommaire
1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.2 Cadre générale du projet . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Présentation de l’organisme d’accueil . . . . . . . . . . . . . . 16
1.3.1 Mission de l’organisme d’accueil . . . . . . . . . . . . . . . . . . 16
1.3.2 Principes fondamentaux de l’entreprise . . . . . . . . . . . . . . 17
1.4 L’application "FoodSafety" . . . . . . . . . . . . . . . . . . . . . 17
1.5 Problématique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.6 Étude de l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.7 Critique de l’existant . . . . . . . . . . . . . . . . . . . . . . . . 19
1.8 Solutions envisagées . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.9 Planification du projet . . . . . . . . . . . . . . . . . . . . . . . 19
1.10 Choix de l’outil de planification . . . . . . . . . . . . . . . . . . 20
1.11 Méthodologies de gestion du projet . . . . . . . . . . . . . . . 21
1.11.1 Principes de la méthode SCRUM . . . . . . . . . . . . . . . . . 21
1.11.2 Étude comparative entre les approches de l’informatique déci-
sionnelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.11.3 Choix de la méthode adéquate avec SCRUM . . . . . . . . . . . 23
1.12 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
15
1.1. INTRODUCTION
1.1 Introduction
Au sein de ce chapitre, nous réalisons une évaluation complète du projet. Nous dé-
butons en exposant tout d’abord l’entité d’accueil où s’est déroulé notre stage de fin
d’études. Ensuite, nous décrivons le contexte de notre projet ainsi que la méthodologie
adoptée pour parvenir aux résultats anticipés.
16
1.4. L’APPLICATION "FOODSAFETY"
17
1.5. PROBLÉMATIQUE
1.5 Problématique
Nous sommes pleinement conscients de l’importance capitale des données dans divers
secteurs et de leur potentiel lorsqu’elles sont correctement exploitées. Cependant, dans
le contexte actuel de notre application "FoodSafety", l’affectation des dons ne garantit
pas de manière claire, transparente et prioritaire, ce qui entraîne un risque de mauvaise
gestion des dons. De plus, l’absence de rapports détaillés compromet notre capacité à
évaluer l’efficacité de nos activités caritatives et à prendre des décisions éclairées pour une
distribution équitable et prioritaire des dons.
• Le nombre de bénéficiaires
• Le nombre de donateurs
De plus, un historique des dons est disponible, fournissant des informations détaillées pour
chaque transaction. Cependant, l’agent prend toutes ses décisions en se basant uniquement
sur ces informations limitées, ce qui peut restreindre sa capacité à prendre des décisions
éclairées et à répondre efficacement aux besoins des bénéficiaires.
18
1.7. CRITIQUE DE L’EXISTANT
• D’adapter nos actions de manière agile en fonction des besoins des bénéficiaires.
• La mise en place des KPIs pour mesurer la performance et le progrès de l’activité afin
d’améliorer la prise de décision chez le décideur. Ce processus implique l’extraction
des données nécessaires à partir des données brutes par le processus ETL, puis leur
transformation en informations utiles, cohérentes et pertinentes.
• L’exploitation et l’analyse des données en créant des tableaux de bord contenant les
différentes KPIs pour faciliter la prise de décision.
19
1.10. CHOIX DE L’OUTIL DE PLANIFICATION
20
1.11. MÉTHODOLOGIES DE GESTION DU PROJET
21
1.11. MÉTHODOLOGIES DE GESTION DU PROJET
22
1.12. CONCLUSION
L’approche de Bill Inmon met en avant que le Data Warehouse (DW) constitue un
dépôt centralisé de données d’entreprise détaillées. À partir de ce DW, des datamarts sont
créés selon des schémas en étoile. La conception du Data Warehouse est une étape cruciale
dans un projet décisionnel. Le projet comprend les étapes suivantes : lors du premier
sprint, les données nécessaires à la conception du DW sont extraites. Une fois le DW conçu,
les domaines spécifiques pour construire les datamarts destinés aux analyses et rapports
des sprints suivants sont identifiés. Tout au long du processus, l’équipe présente une
version fonctionnelle au Product Owner en utilisant des données réelles afin de recueillir
ses retours.
L’informaticien Ralph Kimball, dans son approche décrit « Le data Warehouse peut
être vu comme l’union des Data Marts cohérents entre eux grâce aux dimensions conformes
». En d’autres termes, cette approche peut être alignée avec la méthode SCRUM, où nous
nous concentrons sur un processus métier pour chaque sprint.Nous couvrirons l’ensemble
du processus d’un projet de prise de décision, du processus d’extraction, de transforma-
tion et de chargement (ETL) à la génération de rapports. Cette approche garantit une
séquence cohérente de sprints où le processus et la complexité restent relativement les
mêmes, adaptés au sujet traité. Cela permet d’atteindre des résultats satisfaisants pour
les utilisateurs finaux.
1.12 Conclusion
Au sein de ce premier chapitre introductif, nous avons introduit le contexte de l’orga-
nisme d’accueil ainsi que le cadre du projet. Après une présentation générale, nous avons
procédé à une analyse approfondie de la situation actuelle, nous permettant ainsi d’acqué-
rir une vision globale du projet. Ces aspects sont considérés comme des besoins initiaux
que nous nous efforcerons d’élucider dans les chapitres à venir.
23
CHAPITRE 2
SPRINT 0 : ANALYSE, SPÉCIFICATION DES EXIGENCES
ET CHOIX TECHNIQUE
Sommaire
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2 Environnement de travail . . . . . . . . . . . . . . . . . . . . . . 25
2.2.1 Environnement matériel . . . . . . . . . . . . . . . . . . . . . . 25
2.2.2 Environnement logiciel . . . . . . . . . . . . . . . . . . . . . . . 25
2.3 Spécification des exigences . . . . . . . . . . . . . . . . . . . . . 27
2.3.1 Exigences fonctionnelles . . . . . . . . . . . . . . . . . . . . . . 27
2.3.2 Exigences non fonctionnelles . . . . . . . . . . . . . . . . . . . . 27
2.4 Architecture logique . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5 Backlog de produit . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Analyse globale des exigences . . . . . . . . . . . . . . . . . . . 31
2.7 Analyse de données . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.8 Conception globale de data mart . . . . . . . . . . . . . . . . . 34
2.9 Étude du modèle conceptuel . . . . . . . . . . . . . . . . . . . . 34
2.9.1 Schéma global de la conception . . . . . . . . . . . . . . . . . . 37
2.9.2 Dimensions dégagées . . . . . . . . . . . . . . . . . . . . . . . . 38
2.10 Choix des outils Business Intelligence . . . . . . . . . . . . . . 38
2.10.1 Étude comparative des outils ETL . . . . . . . . . . . . . . . . 38
2.10.2 Étude comparative des outils de visualisation . . . . . . . . . . 40
2.11 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
24
2.1. INTRODUCTION
2.1 Introduction
Ce chapitre marque le début du sprint 0 selon la méthodologie adoptée. Durant cette
étape initiale, notre objectif est de reconnaître les environnements de réalisation ainsi que
les intervenants impliqués, tout en approfondissant l’analyse de leurs besoins. Nous visons
également à définir les exigences fonctionnelles et non fonctionnelles de notre système
décisionnel afin de favoriser une conception claire et précise. En suite, nous nous penchons
sur les détails de la conception du datamart et sélectionnons les outils les plus appropriés
pour l’analyse et la visualisation des données.
Ordinateur ASUS HP
Intel(R) Core(TM) i7-
Core(TM) i5-11300H @
Processeur 6700HQ CPU @ 2.60GHz
2.40GHz 3.11 GHz
2.11 GHz
RAM 8 GO 8 GO
Disque dur 512 SSD 1To
Système d’ex-
Windows 10 Professionnel Windows 10 Professionnel
ploitation
25
2.2. ENVIRONNEMENT DE TRAVAIL
IntelliJ IDEA
« IntelliJ IDEA est l’IDE de premier plan pour le développe-
ment Java et Kotlin. Il vous aide à rester productif avec une
suite de fonctionnalités d’amélioration de l’efficacité telles que
l’assistance au codage intelligente, les refactoring fiables, la na-
vigation instantanée dans le code, les outils de développement
intégrés, le support du développement web et d’entreprise, et
bien plus encore. » [2]
Python
«Python est un langage de programmation interprété, orienté
objet, de haut niveau avec une sémantique dynamique. Ses
structures de données intégrées de haut niveau, combinées à
un typage dynamique et à un liage dynamique, le rendent très
attrayant pour le développement d’applications rapides, ainsi
que pour une utilisation en tant que langage de script ou de
liaison pour connecter des composants existants entre eux.» [4]
Keycloak
«Keycloak est un logiciel open source permettant l’authentifi-
cation unique avec gestion des identités et des accès pour les
applications et services modernes.» [?]
2.2.2.2 Design
Canva
«Canva est une plateforme de conception graphique multina-
tionale mondiale australienne utilisée pour créer des graphiques
pour les médias sociaux et des présentations. L’application
comprend des modèles prêts à l’emploi que les utilisateurs
peuvent utiliser.» [6]
26
2.3. SPÉCIFICATION DES EXIGENCES
27
2.4. ARCHITECTURE LOGIQUE
28
2.5. BACKLOG DE PRODUIT
Service Food : Ce service est connecté à une base de données spécifique, qui est
une base de données PostgreSQL. Il dispose d’un “Éditeur d’événement” qui publie des
événements à un "Message Broker (AMQ)".
Service Users : Ce service est également connecté à une base de données spécifique. Il
dispose également d’un "Éditeur d’événement" qui publie des événements à un "Message
Broker (AMQ)".
Service Analytic : Ce service est connecté à une base de données spécifique. Contrai-
rement aux deux autres services, il utilise un "Gestionnaire d’événement" pour gérer les
événements provenant du "Message Broker (AMQ)".
Message Broker (AMQ) : Il s’agit du hub central pour la gestion des messages entre
les bases de données et les services. Il reçoit les messages des éditeurs d’événements des
services Food et Users, et les transmet au gestionnaire d’événements du service Analytic.
29
2.5. BACKLOG DE PRODUIT
30
2.6. ANALYSE GLOBALE DES EXIGENCES
31
2.7. ANALYSE DE DONNÉES
• L’ingénieur est responsable de la gestion des tableaux de bord, ce qui peut inclure
l’ajout, la modification ou la suppression de tableaux de bord en fonction des besoins.
Diagramme de classe
De même, la Figure 2.3 présente un diagramme de classe général, offrant une repré-
sentation claire et organisée des relations entre les classes et les différents attributs et
méthodes.
32
2.7. ANALYSE DE DONNÉES
langage SQL (Structured Query Language) pour la manipulation des données. Au cours
de cette étape, nous avons découvert que notre base de données contient plusieurs tables.
Nous nous sommes concentrés sur des tables spécifiques qui sont pertinentes pour les
besoins des acteurs.
Pour mieux comprendre les données, nous avons extrait le modèle relationnel de la
base afin de comprendre les connexions et les relations entre les tables, comme illustré
dans la figure.
33
2.8. CONCEPTION GLOBALE DE DATA MART
• Fait : La table centrale du modèle dimensionnel, elle comprend des mesures et des
clés de dimensions définies pour assurer leur liaison. En d’autres termes, tout ce que
vous souhaitez analyser.
• Dimensions : Sont utilisées pour analyser les données de faits en fournissant une
structure permettant une analyse détaillée et pertinente. Chaque dimension com-
prend un ou plusieurs attributs.
Avantages Inconvénients
Un schéma facile à représenter et à Occupe plus d’espace car il n’utilise
saisir. pas la normalisation
Les requêtes SQL sont simples et Schéma complexe et n’est pas faciles
s’exécutent rapidement. à modéliser
Complexité d’exécution des requêtes
SQL
34
2.9. ÉTUDE DU MODÈLE CONCEPTUEL
Avantages Inconvénients
Les requêtes SQL deviennent
La normalisation permet d’éliminer
complexes en raison du nombre élevé de
toute redondance de données.
jointures entre les dimensions.
Grâce à la normalisation, il occupe Un schéma complexe peut être difficile
moins d’espace. à modéliser.
L’exécution des requêtes SQL peut être
complexe.
35
2.9. ÉTUDE DU MODÈLE CONCEPTUEL
Avantages Inconvénients
Les sous-modèles peuvent être modi- Comprendre et gérer les relations entre
fiés, intégrés ou supprimés sans affecter les différents sous-modèles peut être
les autres éléments de la base de difficile, ce qui complique la conception
données. et la maintenance.
L’intégration de la base de données
Les requêtes peuvent s’exécuter plus
avec d’autres systèmes peut devenir
rapidement en réduisant le nombre de
difficile en raison de sa complexité
tables jointes requis.
structurelle.
Fournit des avantages en termes de L’intégration avec d’autres modèles
performances. peut être complexe.
36
2.9. ÉTUDE DU MODÈLE CONCEPTUEL
37
2.10. CHOIX DES OUTILS BUSINESS INTELLIGENCE
38
2.10. CHOIX DES OUTILS BUSINESS INTELLIGENCE
Dans notre étude, nous avons focalisé notre attention sur SSIS et Talend :
• Talend Open Studio : Talend Open Studio est un outil open source développé
par la société Talend, reconnu comme un leader dans le domaine de l’intégration de
données. Il offre la possibilité de se connecter à diverses sources de données afin de
simplifier les processus ETL d’extraction, de transformation et de chargement. En
outre, il propose une variété de fonctionnalités telles que la migration et l’améliora-
tion de la qualité des données.
Outil
Avantages Inconvénients
ETL
-Pour utiliser des fonctionnalités
avancées, une maîtrise du langage
-Open source
Talend Java est requise.
-Outil puissant
-La structure présente une cer-
taine complexité.
-Absence de copier/coller des an-
-Développement rapide et perfor-
notations.
SSIS mant
-Difficultés lors de conversion de
-Support disponible
type de donnée
39
2.10. CHOIX DES OUTILS BUSINESS INTELLIGENCE
–> D’après les résultats de l’étude présentés dans le tableau 2.5, nous avons opté pour
Talend, en raison de son interface intuitive et de ses fonctionnalités avancées d’intégration
et de gestion des données, ce qui en fait l’outil idéal pour la création efficace d’un data
mart.
Avantages Inconvénients
Une quantité considérable de documen-
Partage des données limité
tation accessible
Une diversité étendue d’options gra- La version gratuite offre un espace de
phiques pour la visualisation stockage de données limité.
Mises à jour fréquentes et assistance
communautaire disponible
Avantages Inconvénients
Compétences de visualisation excep- La modélisation de schémas complexes
tionnelles n’est pas aisée.
Aucune option pour la planification
Connexion à différentes sources de don-
et l’actualisation automatique des rap-
nées
ports/Tableaux de bords
40
2.11. CONCLUSION
-> Nous avons opté pour l’utilisation de Power BI, une suite d’outils d’informatique
décisionnelle intégrée à Microsoft Office 365. Cette solution nous permet de connecter
facilement nos sources de données, de traiter et d’analyser des données provenant de
diverses sources, ainsi que de créer des tableaux de bord et des rapports visuellement
immersifs et interactifs. De plus, elle nous offre la possibilité de visualiser ces données
sous forme de rapports et de tableaux de bord interactifs, répondant à nos besoins, qu’ils
soient descriptifs ou prédictifs.
2.11 Conclusion
Dans ce chapitre, nous avons recensé les exigences fonctionnelles et non fonctionnelles
de notre projet, ainsi que le backlog produit et les indicateurs clés de performance (KPI)
qui seront au centre de notre analyse. De plus, nous avons exposé le modèle conceptuel
de notre data mart et son architecture globale. Enfin, nous avons examiné la sélection
des outils de Business Intelligence, que ce soit pour la partie ETL ou pour la phase de
reporting.
41
CHAPITRE 3
DÉVELOPPEMENT DE SCRIPTS DE GÉNÉRATION DE
DONNÉES
Sommaire
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3 Keycloak . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.1 Présentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.2 Fonctionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3.3 Processus de communication . . . . . . . . . . . . . . . . . . . 45
3.4 Utilisation de Faker pour la génération de données . . . . . . 45
3.5 Scripting pour la partie user service (Keycloak) . . . . . . . . 46
3.5.1 Authentification . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.5.2 Vérification de l’existence d’un realm et création . . . . . . . . 46
3.5.3 Génération des utilisateurs et création dans Keycloak . . . . . . 47
3.5.4 Attribution de rôles spécifiques aux utilisateurs . . . . . . . . . 48
3.5.5 Validation des modifications . . . . . . . . . . . . . . . . . . . . 48
3.6 Intégration des données dans PostgreSQL . . . . . . . . . . . . 49
3.6.1 Configuration de la base de données PostgreSQL . . . . . . . . 50
3.6.2 Intégration des utilisateurs . . . . . . . . . . . . . . . . . . . . 50
3.6.3 Insertion des utilisateurs dans PostgreSQL . . . . . . . . . . . . 51
3.6.4 Validation des modifications dans PostgreSQL . . . . . . . . . . 52
3.7 Scripting pour la partie food service . . . . . . . . . . . . . . . 53
3.7.1 Optimisation des attributs pour une analyse pertinente . . . . . 53
42
3.7.2 Insertion des demandes spécifiques . . . . . . . . . . . . . . . . 53
3.7.3 Insertion des demandes de campagnes . . . . . . . . . . . . . . 54
3.7.4 Insertion des transactions . . . . . . . . . . . . . . . . . . . . . 55
3.7.5 Insertion des fonds . . . . . . . . . . . . . . . . . . . . . . . . . 55
3.7.6 Validation des modifications dans PostgreSQL . . . . . . . . . . 56
3.8 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
43
3.1. INTRODUCTION
3.1 Introduction
Selon la méthodologie Scrum BI, ce chapitre représente le sprint 1. Ce sprint sera
spécifiquement dédié à la création de scripts visant à alimenter les bases de données des
services "food" et "user" avec des données fictives, étant donné que l’application est en
cours de maintenance. Ces données serviront au développement du datamart.
Id user
User story Priorité
story
En tant qu’ingénieur BI, je veux comprendre
1 1
le fonctionnement de Keycloak.
En tant qu’ingénieur BI, je veux créer un
2 script pour alimenter la partie "User" de la 1
base de données.
En tant qu’ingénieur BI, je veux développer
3 un script pour transférer les utilisateurs vers 1
la base de données PostgreSQL.
En tant qu’ingénieur BI, je veux comprendre
4 les attributs de la table sélectionnée dans le 2
service "Food".
En tant qu’ingénieur BI, je veux développer
5 un script pour alimenter la partie "Food" de 1
la base de données PostgreSQL.
En tant qu’ingénieur BI, je veux tester et va-
6 1
lider les fonctionnalités développées.
3.3 Keycloak
3.3.1 Présentation
Keycloak est un produit logiciel open source permettant une connexion unique avec la
gestion des identités et des accès, destiné aux applications et services modernes. Depuis
mars 2018, ce projet de la communauté WildFly est sous la direction de Red Hat, qui
l’utilise comme projet amont pour leur distribution Red Hat de Keycloak.
Keycloak prend en charge divers protocoles tels que OpenID, OAuth version 2.0 et
SAML, et propose des fonctionnalités telles que la gestion des utilisateurs, l’authentifica-
tion à deux facteurs, la gestion des autorisations et des rôles, la création de services de
jetons, etc.
44
3.4. UTILISATION DE FAKER POUR LA GÉNÉRATION DE DONNÉES
3.3.2 Fonctionnement
Le fonctionnement de Keycloak repose sur un modèle basé sur les standards OAuth
2.0 et OpenID Connect. Il permet d’externaliser la gestion des utilisateurs, des rôles et des
autorisations, ce qui simplifie le développement d’applications sécurisées. Keycloak utilise
des tokens pour l’authentification et l’autorisation des utilisateurs, permettant ainsi de
sécuriser les API et les applications. Grâce à son interface utilisateur intuitive et à sa do-
cumentation complète, Keycloak facilite la mise en place d’un système d’authentification
robuste et sécurisé pour les applications web et mobiles.
45
3.5. SCRIPTING POUR LA PARTIE USER SERVICE (KEYCLOAK)
46
3.5. SCRIPTING POUR LA PARTIE USER SERVICE (KEYCLOAK)
47
3.5. SCRIPTING POUR LA PARTIE USER SERVICE (KEYCLOAK)
48
3.6. INTÉGRATION DES DONNÉES DANS POSTGRESQL
détailler les étapes de vérification et de validation visuelle des utilisateurs créés et des
rôles attribués dans Keycloak. La figure 3.6 illustre le succès de l’ajout :
49
3.6. INTÉGRATION DES DONNÉES DANS POSTGRESQL
50
3.6. INTÉGRATION DES DONNÉES DANS POSTGRESQL
En cas d’erreur lors de l’insertion, des exceptions sont gérées pour afficher des messages
d’erreur appropriés :
UniqueViolation :Cette exception est levée lorsqu’une violation de contrainte d’uni-
cité se produit, par exemple, si un utilisateur avec le même nom d’utilisateur existe déjà
dans la base de données.
DataError :Cette exception est levée lorsqu’il y a une erreur de format de données,
par exemple, si une valeur ne correspond pas au type de données attendu dans la base de
données.
.Error :Cette exception est utilisée pour capturer toute autre erreur PostgreSQL qui
pourrait se produire lors de l’insertion.
51
3.6. INTÉGRATION DES DONNÉES DANS POSTGRESQL
52
3.7. SCRIPTING POUR LA PARTIE FOOD SERVICE
53
3.7. SCRIPTING POUR LA PARTIE FOOD SERVICE
54
3.7. SCRIPTING POUR LA PARTIE FOOD SERVICE
55
3.8. CONCLUSION
3.8 Conclusion
À la fin de ce chapitre, nous pouvons dire que les objectifs que nous avions définis
pour le premier sprint ont été atteints et notre base de données est alimentée grâce à
l’utilisation de la bibliothèque Faker pour créer des scripts qui génèrent un ensemble de
données pour les deux parties, "user" et "food". Cela nous permettra d’appliquer l’ETL
lors du prochain sprint.
56
CHAPITRE 4
CONCEPTION DU DATA MART ET IMPLÉMENTATION
DE L’ETL
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2 Backlog de sprint . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Implémentation de data mart . . . . . . . . . . . . . . . . . . . 58
4.3.1 Connexion à la base de données. . . . . . . . . . . . . . . . . . 58
4.3.2 Création des jobs . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.3 Création des dimensions . . . . . . . . . . . . . . . . . . . . . . 60
4.3.4 Alimentation de la Table de Jointure . . . . . . . . . . . . . . . 63
4.3.5 Alimentation de la table de faits . . . . . . . . . . . . . . . . . 64
4.4 Gestion de la planification des tâches . . . . . . . . . . . . . . 65
4.5 Communication automatique pour la maintenance système . 65
4.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
57
4.1. INTRODUCTION
4.1 Introduction
Ce chapitre présente le sprint 2, consacré spécifiquement au processus de préparation
des données ETL (Extract, Transform, Load) selon le cycle de vie décisionnel, ainsi qu’à
la conception du data mart.
Id user
User story Priorité
story
En tant qu’ingénieur BI, je veux faire l’ex-
1 1
traction des données.
En tant qu’ingénieur BI, je veux effectuer les
2 1
transformations sur les données.
En tant qu’ingénieur BI, je veux charger les
3 1
tables de faits et les dimensions.
En tant qu’ingénieur BI, je veux planifier les
4 2
jobs pour l’exécution automatisée.
En tant qu’ingénieur BI, je veux automatiser
5 l’envoi des e-mails de notifications de main- 2
tenance.
58
4.3. IMPLÉMENTATION DE DATA MART
59
4.3. IMPLÉMENTATION DE DATA MART
Dans cette section, nous avons mis en place un processus de gestion des erreurs en
utilisant un composant Talend appelé TFlowMeter. Ce composant permet de capturer
et de stocker les flux d’erreurs dans des tables de la base de données, comme illustré par
les figures ci-dessous :
60
4.3. IMPLÉMENTATION DE DATA MART
Nous avons optimisé les requêtes SQL utilisées pour extraire les données des sources.
La figure ci-dessous décrit une requête pour sélectionner toutes les données de la table
"campaign request".
Figure 4.5 – Requête SQL pour sélectionner les données de la table campaign request
Dans la TMap, nous avons mis en œuvre des transformations complexes pour harmoni-
ser et préparer les données avant leur chargement dans le data mart. La figure ci-dessous
illustre le processus de génération automatique de séquences numériques à l’aide de la
routine Numeric.sequence :
61
4.3. IMPLÉMENTATION DE DATA MART
Numeric.sequence : Nous avons utilisé cette fonctionnalité dans Talend pour générer
des séquences numériques de manière automatique et incrémentielle. Elle a été employée
pour créer des clés primaires dans nos dimensions.
Avec le composant tDBOutput, nous allons charger les données dans une nouvelle base
de données. Ce composant permet d’effectuer des opérations d’insertion, de mise à jour
ou de suppression d’enregistrements dans la base ’foodsafety dim’, comme illustré dans la
figure ci-dessous.
62
4.3. IMPLÉMENTATION DE DATA MART
Les données sont extraites de chaque table source et acheminées vers le composant
tMap, où les jointures sont effectuées en fonction des clés de correspondance définies.
Une fois les jointures réalisées, les données consolidées sont dirigées vers la table de sortie
’foodsafety dim’, comme le montre la flèche de sortie (out1). Ce processus assure l’inté-
gration des données de différentes sources en une table de jointure unifiée, prête pour des
analyses et rapports approfondis.
63
4.3. IMPLÉMENTATION DE DATA MART
64
4.4. GESTION DE LA PLANIFICATION DES TÂCHES
65
4.6. CONCLUSION
4.6 Conclusion
Ce chapitre a couvert le sprint 2, centré sur l’ETL et la conception du data mart.
Nous avons expliqué la planification du sprint, la connexion à PostgreSQL, la création de
jobs, et la gestion des dimensions et des tables de faits avec Talend. Nous avons également
mis en place des notifications par e-mail automatisées pour la maintenance. Ces actions
ont assuré l’intégrité et la disponibilité des données, établissant une base solide pour des
analyses décisionnelles précises.
66
CHAPITRE 5
RESTITUTION DES DONNÉES
Sommaire
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
67
5.1. INTRODUCTION
5.1 Introduction
68
CONCLUSION GÉNÉRALE
70
BIBLIOGRAPHIE
71