Accent

Fond

Problèmes Architecture Pipeline Impacts Synthèse ← Retour
Enterprise Data Warehouse · Medallion Architecture
⬡ Bronze · ⬡ Silver · ⬡ Gold

Transformer des données
dispersées en un système
centralisé & structuré

Le Data Warehouse comme fondation d'une décision fiable et d'une performance durable — du fichier CSV brut jusqu'au tableau de bord décisionnel, en un pipeline automatisé.

Python ETL PostgreSQL Power BI Star Schema Medallion Architecture
Défiler
01 / Contexte opérationnel

Problèmes de l'Entreprise

Les frictions décisionnelles et opérationnelles à l'origine du projet.

Finances

Rentabilité incertaine

L'entreprise enregistre des ventes… mais ne maîtrise pas réellement sa rentabilité. Impossible d'identifier les produits rentables vs déficitaires. Coûts incomplets, marge brute non fiable.

Décisions d'investissement prises à l'intuition.

Données

Données fragmentées

Ventes, clients (multiples systèmes), produits, localisation, catégories — dispersées sans structure commune ni centralisation. Aucune vision globale fiable n'est possible.

Zéro vision globale consolidée.

Qualité

Incohérences critiques

Identifiants différents selon les sources, doublons, formats hétérogènes (préfixes, tirets), données manquantes. Une même réalité business interprétée différemment selon les équipes.

Analyses faussées par les anomalies.

Clients

Vision client inexploitable

Impossible de savoir qui sont les meilleurs clients, où ils se trouvent, quels segments génèrent le plus de valeur. Campagnes marketing mal ciblées, gaspillage de budget.

Budget marketing non optimisé.

Pilotage

Absence d'indicateurs fiables

Impossible de répondre : quels produits génèrent de la marge ? Où se situent les pertes ? Quels leviers améliorer en priorité ? Les décisions sont ralenties par manque de confiance.

Décisions bloquées ou risquées.

Efficacité

Inefficacité opérationnelle

Les Data Analysts passent l'essentiel de leur temps sur le nettoyage manuel, la correction d'erreurs, la consolidation de fichiers. Jusqu'à 80% du temps perdu avant même d'analyser.

80% du temps sur du technique, pas de l'analyse.

Synthèse Stratégique

L'entreprise ne manque pas de données.

Elle manque d'un système capable de transformer ces données en décisions fiables.

Perte de visibilité Perte d'efficacité Perte d'opportunités Risque sur la rentabilité
Synthèse stratégique
02 / Architecture Technique

Medallion Architecture

Bronze · Silver · Gold — trois couches progressives de raffinement de la donnée.

Sources CSV
⬡ Bronze
⬡ Silver
⬡ Gold
Décision

6

Sources CSV

6

Tables Bronze

6

Tables Silver

3

Vues Gold

4

Scripts Python

10

Scripts SQL

01

Ingestion Brute

Couche Bronze

  • Extract.py : Scan auto des *.csv, tout typé VARCHAR/TEXT.
  • Idempotence : if_exists='replace' — pipeline rejouable à l'infini.
  • Chemins dynamiques : pathlib.Path pour portabilité totale.
  • 6 tables : cust_info, cust_az12, loc_a101, prd_info, px_cat_g1v2, sales_details.
pandas + SQLAlchemy + psycopg2
02

Nettoyage & Data Quality

Couche Silver

  • Transaction atomique : Rollback automatique sur échec psycopg2.
  • SCD Type 2 : LEAD() pour historique des versions produits.
  • Dédoublonnage : ROW_NUMBER() OVER(PARTITION BY cst_id).
  • Cohérence comptable : ABS(), recalcul Sales = Qty × Price.
6 scripts SQL · Transform.py
03

Modèle Décisionnel

Couche Gold

  • Star Schema Kimball : dim_customer, dim_product, fact_sales.
  • Vues SQL dynamiques : Power BI consulte toujours le plus récent.
  • Fail-Fast : RuntimeError si vue corrompue — pipeline stoppé net.
  • Zero NULL : COALESCE() systématique sur toutes les colonnes BI.
3 vues SQL · Load.py · Power BI
Architecture Medallion
03 / Rapport Technique

Pipeline de Données

Architecture complète — extraction, modélisation, orchestration, audit.

Principes d'ingénierie logicielle

Idempotence totale

DROP TABLE/VIEW IF EXISTS + recréation complète. Pipeline rejouable N fois sans corruption.

Transaction atomique

Tout le pipeline Silver tourne dans une transaction unique. Échec → ROLLBACK instantané.

Fail-Fast Gold

Si une vue dimensionnelle échoue → RuntimeError stoppe immédiatement le pipeline.

Zéro NULL en Gold

COALESCE() systématique sur toutes les colonnes de filtrage pour Power BI.

Sécurité credentials

Chaîne de connexion lue via os.getenv('DATABASE_URL') — aucun mot de passe dans le code.

Chemins dynamiques

pathlib.Path(__file__).resolve() — aucun chemin en dur, projet 100% portable.

03.1 / Transformations Silver

Data Quality — Règles appliquées

# Règle Table ciblée Transformation Implémentation SQL
01cust_infoDédoublonnage clientsROW_NUMBER() OVER(PARTITION BY cst_id ORDER BY date DESC)
02cust_infoMapping genre/statut maritalCASE WHEN M→'Male', F→'Female', ELSE 'n/a'
03cust_az12Nettoyage préfixe NASSUBSTRING(cid FROM 4) WHERE cid LIKE 'NAS%'
04loc_a101Normalisation des paysUS/USA/UNITED STATES → 'United States'
05loc_a101Suppression espaces insécablesREPLACE(cntry, chr(160), '')
06prd_infoSCD Type 2 versions produitsLEAD(prd_start_dt,1,'9999-12-31') OVER(PARTITION BY prd_key)
07sales_detailsCohérence comptableIF sls_sales=0: Qty×Price / IF price=0: Sales/Qty
08sales_detailsÉlimination des négatifsABS(sls_sales), ABS(sls_quantity), ABS(sls_price)
09Toutes tablesSécurisation des datesValidation longueur 8/10 avant TO_DATE — pivot 1900-01-01
10Toutes tablesNettoyage espaces parasitesTRIM() systématique sur toutes colonnes texte

03.2 / Modèle Gold

Star Schema — Kimball

dim_customer

PK: customer_id BIGINT

customer_key VARCHAR

customer_number VARCHAR

first_name / last_name

gender ← fallback cross-source

marital_status

country

birth_date DATE

create_date DATE

1:N

fact_sales ⭐

sale_id VARCHAR

FK: product_key BIGINT

FK: customer_key BIGINT

order_date DATE

ship_date DATE

due_date DATE

sale_amount NUMERIC

quantity NUMERIC

price NUMERIC

1:N

dim_product

PK: product_key BIGINT

product_id INTEGER

product_number VARCHAR

product_name VARCHAR

category / sub_category

maintenance VARCHAR

cost NUMERIC

product_line VARCHAR

start_date DATE

03.3 / Orchestration

Orchestrateur.py

1/3

Bronze — Extract.py

pipeline_vers_bronze() · Arrêt sur échec

2/3

Silver — Transform.py

run_silver_pipeline() · Rollback auto psycopg2

3/3

Gold — Load.py

executer_generation_gold() · Fail-Fast RuntimeError

$ export DATABASE_URL="postgresql://..."
$ python Orchestrateur.py

03.4 / Gouvernance

Schéma d'Audit

ColonneTypeRôle
log_idSERIAL PKIdentifiant auto
script_nameVARCHARFichier exécuté
source/target_layerVARCHARBronze→Silver…
duration_secondsNUMERICPerformance
rows_insertedINTVolumétrie
statusVARCHARSUCCESS/FAILED
error_messageTEXTDebug complet
Pipeline de données
04 / Transformation apportée

Impacts Business

Un pilotage basé sur des faits, pas sur des intuitions.

Pour les dirigeants

Décision basée sur les faits

Visibilité sur la rentabilité réelle

  • Marge brute par produit mesurable
  • Rentabilité réelle de chaque vente
  • Quoi développer, optimiser, arrêter
→ Décisions basées sur le profit réel

Performance dans le temps

  • Trace fiable des évolutions de prix
  • Impact des décisions passées visible
  • Analyse des promotions et stratégies tarifaires
→ Anticipation des tendances

Vision client unifiée

  • Clients les plus rentables identifiés
  • Segmentation efficace de la clientèle
  • Campagnes marketing ciblées
→ Réduction du gaspillage budgétaire

Pour les Data Analysts

Du rôle technique au rôle stratégique

Recentrage sur l'analyse

  • Tâches répétitives automatisées
  • Plus de temps pour comprendre le business
  • Proposer des actions concrètes
→ Partenaires de décision

Rapports fiables & alignés

  • Un seul référentiel commun
  • Chiffres identiques pour toutes les équipes
  • Disparition des contradictions en réunion
→ Confiance restaurée dans les données

Décision rapide et fluide

  • Dashboards rapides et exploitables
  • Réponses immédiates aux questions business
  • Capacité à réagir en temps réel
→ Logique lente → logique proactive

Pour l'entreprise

Transformation structurelle et durable

Fiabilité & sécurité

Accès sécurisé, données protégées, gestion maîtrisée des informations sensibles. Réduction des risques opérationnels.

Continuité des analyses

Aucun risque de données partielles. Système cohérent en permanence. Décisions toujours sur des données fiables.

Réduction des coûts cachés

Moins de temps perdu, moins d'erreurs humaines, moins de retraitements. Amélioration directe de l'efficacité opérationnelle.

Synthèse Stratégique

L'entreprise ne subit plus ses données.

Elle les utilise pour piloter.

Meilleure visibilité Décisions plus rapides Actions plus ciblées Rentabilité maîtrisée

Ce projet ne change pas seulement la manière de traiter la data.

Il change la manière de piloter l'entreprise.

Synthèse stratégique
05 / Résumé Exécutif

Modernisation du Pilotage

Transformation de la performance et de la rentabilité — vue d'ensemble stratégique.

01 / Objectif

Transformer des données dispersées

en un outil de décision fiable

Centraliser

Toutes les sources en un seul endroit

Structurer

Star Schema optimisé pour BI

Fiabiliser

9 règles de Data Quality appliquées

02–03 / Avant → Après

❌ Situation initiale

Pilotage financier incertain

Marge réelle inconnue — décisions basées sur le CA seul

Absence de vision dans le temps

Aucune traçabilité des évolutions de prix ni des tendances

Vision client fragmentée

Données réparties sur plusieurs sources contradictoires

Inefficacité des équipes data

80% du temps en nettoyage manuel — peu d'analyse produite

Manque de confiance dans les données

Rapports incohérents — chiffres contestés entre services

✅ Transformation apportée

Pilotage réel de la rentabilité

Calcul fiable des marges — produits rentables vs non rentables

SCD Type 2 — historique complet

Évolutions de prix tracées, promotions analysables, tendances lisibles

Vision client unifiée et exploitable

dim_customer — segmentation fiable, profils à forte valeur identifiés

Revalorisation du rôle Analyst

Pipeline automatisé — analystes recentrés sur la valeur business

Fiabilité & robustesse du système

Idempotence totale, transactions atomiques, audit complet

Conclusion Stratégique

Ce projet ne répond pas seulement à un besoin technique.

Il transforme la manière de gérer, décider et faire croître l'entreprise.

3

Couches
Medallion

10

Règles
Data Quality

1

Commande
pipeline

Rejeux
idempotents

Conclusion du projet

"Transformer la donnée brute
en décision fiable"