Couleur d'Accent

Couleur de Fond

Problème Projet Impact Synthèse Voir le repo GitHub Retour au portfolio
Projet — Ingénierie de Données

🏢 Data Warehouse E-commerce — Olist

Transformer des données opérationnelles dispersées en une donnée structurée, fiable et exploitable pour l'analyse et la prise de décision.

Aperçu du projet Data Warehouse E-commerce Olist

🔴 Le Problème

Une entreprise e-commerce peut disposer de nombreuses données sur ses clients, commandes, produits, vendeurs, paiements et avis sans pour autant pouvoir les exploiter facilement. Ces informations sont réparties entre différentes sources et structures.

Ainsi, une question apparemment simple comme « Quels produits génèrent le plus d'activité ? » peut nécessiter de retrouver et de croiser plusieurs ensembles de données.

La même difficulté apparaît lorsqu'il faut analyser :

  • la performance des vendeurs
  • les commandes
  • les paiements
  • la satisfaction client
  • les produits
  • la géographie
  • l'évolution de l'activité dans le temps

Le problème n'est donc pas simplement d'avoir des données. Le véritable enjeu est de disposer de données suffisamment structurées, fiables et accessibles pour pouvoir les exploiter efficacement.

💼 La conséquence Business

Lorsque les données ne sont pas correctement préparées, les équipes peuvent passer une part importante de leur temps à :

  • rechercher les bonnes données
  • effectuer des jointures
  • nettoyer les informations
  • recalculer les indicateurs
  • vérifier les résultats
  • reconstruire les mêmes transformations

Cela peut entraîner :

⏱️ Perte de temps

Moins de temps consacré à l'analyse et à la compréhension du métier.

⚠️ Incohérence

Des analyses différentes peuvent produire des résultats différents selon les règles appliquées.

🐌 Manque de réactivité

Répondre rapidement à une nouvelle question métier devient plus difficile.

📉 Difficulté à industrialiser

Une analyse ponctuelle peut fonctionner, mais devient fragile lorsqu'elle doit être répétée régulièrement.

❓ La question

Comment transformer plusieurs sources de données opérationnelles en une base analytique centralisée, cohérente et directement exploitable par les équipes Business Intelligence ?

C'est la problématique à laquelle répond ce projet.

Image à insérer — Vue d'ensemble du problème

💡 La Solution

La solution consiste à construire un Data Warehouse PostgreSQL capable de centraliser, préparer et modéliser les données avant leur utilisation analytique. Le pipeline suit une architecture en trois couches.

Sources
🥉 Bronze
🥈 Silver
🥇 Gold
Analytics / BI

Chaque couche possède une responsabilité précise.

🥉 Bronze — Centraliser

Les données provenant des différentes sources sont récupérées et centralisées.

🥈 Silver — Préparer

Les données sont nettoyées, typées, standardisées, agrégées et préparées pour les besoins analytiques.

🥇 Gold — Modéliser

Les données sont transformées selon une logique métier et organisées dans un modèle adapté à l'analyse.

🏗️ L'architecture

Cette séparation permet de distinguer clairement : Données opérationnelles → Données analytiques.

Image à insérer — Architecture du pipeline Bronze / Silver / Gold

🥉 Bronze — Centraliser les données

La première étape consiste à rassembler les données provenant de plusieurs sources PostgreSQL. Le pipeline détecte automatiquement les tables disponibles et les charge dans la couche Bronze. Cette couche conserve une représentation proche des données originales.

L'objectif est simple : centraliser les données avant de commencer à les transformer. Cela crée une séparation entre les données telles qu'elles existent dans les systèmes sources et les données préparées pour l'analyse.

🥈 Silver — Transformer les données

Les données centralisées ne sont pas encore prêtes à être utilisées directement. La couche Silver réalise donc différentes transformations :

  • nettoyage
  • typage
  • standardisation
  • gestion des valeurs manquantes
  • agrégation
  • préparation des données pour la modélisation

Par exemple, les codes géographiques sont standardisés et certaines informations produits sont préparées pour faciliter leur utilisation analytique. Les données de paiement sont également regroupées afin de faciliter leur exploitation dans le modèle final.

🥇 Gold — Construire une donnée pensée pour l'analyse

La couche Gold représente l'interface analytique du Data Warehouse. Elle ne cherche plus à reproduire les systèmes opérationnels. Elle cherche à organiser les données autour des questions métier. Le modèle final repose notamment sur :

dim_customers dim_sellers dim_products fact_orders

⭐ Le modèle en étoile

La table de faits est entourée de dimensions qui permettent de contextualiser l'activité.

dim_customers
dim_sellers
fact_orders
dim_products

Les dimensions permettent notamment de répondre à : Qui ? Quoi ? Où ?

La table de faits permet davantage d'analyser : Qu'est-ce qui s'est passé ? Quand ? Combien ?

Cette organisation facilite ensuite la création de KPI, rapports et dashboards.

🧮 Ajouter de la logique métier

Le Data Warehouse ne se contente pas de déplacer les données. Certaines informations sont également calculées. Par exemple :

⭐ Satisfaction

Un score moyen des avis est calculé au niveau des commandes afin de faciliter l'analyse de la satisfaction.

💰 Données financières

Des informations dérivées sont calculées à partir des montants de paiement, du prix des articles et du fret.

📦 Données produits

Les caractéristiques physiques des produits sont préparées et enrichies, notamment avec le calcul de leur volume.

Données sources
Transformation
Règle métier
Information analytique

🔄 Un pipeline automatisé

Les différentes étapes sont orchestrées depuis un point d'entrée unique. L'objectif est de transformer plusieurs opérations indépendantes en un processus cohérent et reproductible. Le pipeline intègre également :

  • gestion des erreurs
  • logging
  • configuration par environnement
  • mécanisme de rollback en cas d'échec
  • indexation PostgreSQL sur la couche analytique

⚙️ Stack technique

Technologie Utilisation
PythonETL et orchestration
PostgreSQLSources et Data Warehouse
PolarsTransformation des données
ADBCAccès PostgreSQL
SQLTransformation et modélisation
python-dotenvGestion de la configuration

Concepts mis en pratique

Data Warehousing ETL Bronze/Silver/Gold Data Integration Data Transformation Dimensional Modeling Star Schema Business Logic Indexation Logging Error Handling Pipeline Orchestration
Image à insérer — Modèle en étoile & stack technique

💼 L'Impact Business

L'objectif du projet n'est pas simplement d'obtenir « quatre tables dans une base de données ». La valeur se situe dans la transformation du processus analytique.

Avant

Question métier
Recherche des sources
Jointures
Nettoyage
Transformation
Calcul
Vérification
Analyse

Après

Sources
Pipeline ETL
Data Warehouse
Couche Gold
Analyse

Une partie importante du travail de préparation est ainsi réalisée en amont. L'analyste peut davantage se concentrer sur : Comprendre → Analyser → Interpréter → Recommander plutôt que de reconstruire continuellement la donnée.

👥 Pour qui cette architecture crée-t-elle de la valeur ?

👨🏾‍💼 Direction

Disposer d'une base structurée pour suivre l'activité et alimenter les décisions.

📊 BI Analyst

Accéder à une couche Gold préparée pour construire des analyses, KPI et dashboards.

👨🏾‍💻 Data Engineer

Disposer d'une architecture organisée autour de l'ingestion, la transformation, la modélisation et l'orchestration.

🏢 Organisation

Centraliser certaines règles de transformation afin de réduire leur reproduction dans différents rapports.

📈 Ce que le projet rend possible

Une fois la couche analytique connectée à un outil BI, elle peut servir de base à des analyses autour de :

Performance commerciale

évolution des commandes · activité par période · produits représentés dans les commandes

Clients

répartition géographique · activité par zone

Vendeurs

activité des vendeurs · répartition géographique

Produits

catégories · caractéristiques · dimensions physiques

Paiements

montants · moyens de paiement · échéances

Satisfaction

scores moyens · évolution de la satisfaction

Logistique

frais de transport · cycle de livraison · caractéristiques physiques des produits

Image à insérer — Avant / Après : l'impact business

🏁 Synthèse

⚠️ Limites et prochaines évolutions

Ce projet constitue une implémentation Data Warehouse fonctionnelle, mais plusieurs évolutions sont envisageables pour se rapprocher d'un environnement de production.

Chargements incrémentaux

Passer de Full Load à Incremental Load afin d'éviter de retraiter systématiquement toutes les données.

Data Quality

Ajouter des contrôles automatisés sur doublons, valeurs nulles, clés, montants et cohérence des données.

Tests automatisés

Tester les transformations et les différentes étapes du pipeline.

Orchestration avancée

Faire évoluer l'orchestration vers Airflow, Dagster ou Prefect lorsque la complexité augmente.

Monitoring & alerting

Ajouter une supervision plus complète des exécutions, des erreurs et des performances.

CI/CD

Intégrer davantage les tests et contrôles dans le cycle de développement et de déploiement.

🧠 Ce que ce projet démontre

Ce projet montre qu'un Data Warehouse ne consiste pas uniquement à stocker des données. Il s'agit de construire une chaîne de valorisation de la donnée :

Data
Information
Analysis
Insight
Decision

La partie technique permet de rendre cette chaîne fiable, structurée et reproductible. La partie Business lui donne sa finalité : permettre à l'organisation de transformer plus facilement ses données en informations utiles à la décision.

🏁 Conclusion

Ce projet part d'un problème très concret : une entreprise peut posséder beaucoup de données sans disposer d'une donnée réellement exploitable.

La réponse consiste à construire une architecture qui sépare clairement : données opérationnelles ≠ données analytiques.

Les données sont centralisées en Bronze → préparées en Silver → modélisées en Gold → exploitées pour l'Analytics et la BI.

Le résultat est une base analytique structurée autour d'un modèle en étoile, avec des règles métier, des données préparées et un pipeline automatisé. La valeur d'un Data Warehouse n'est donc pas simplement de stocker les données. Elle est de rendre ces données plus faciles à comprendre, analyser et utiliser pour prendre de meilleures décisions.

Image à insérer — Conclusion & valeur du projet

🔗 Voir le Projet