tadata
Retour à l'accueil

Patterns de Modélisation de Données : Choisir la Bonne Architecture

#data-modeling#data-engineering#analytics#data-warehouse

La modélisation des données est le socle structurel de toute plateforme analytique. Un mauvais modèle ralentit les requêtes, déroute les analystes et rend l'évolution du schéma pénible. Le bon modèle accélère la production d'insights et évolue avec l'entreprise.

Comparaison des Approches de Modélisation

ApprocheStructurePerformance RequêtesFlexibilitéComplexitéIdéal Pour
Schéma en ÉtoileTables de faits + dimensions dénormaliséesExcellente — peu de jointuresMoyenneFaibleDashboards BI, requêtes connues
Schéma en FloconTables de faits + dimensions normaliséesBonne — plus de jointuresÉlevéeMoyenneSensibilité stockage, sources normalisées
Data Vault 2.0Hubs + Links + SatellitesVariable — nécessite des martsTrès élevéeÉlevéeIndustries réglementées, auditabilité
One Big Table (OBT)Table unique large dénormaliséeExcellente — zéro jointureFaibleTrès faiblePetites équipes, analytique mono-domaine

Kimball vs Inmon : Le Grand Débat

DimensionKimball (Bottom-Up)Inmon (Top-Down)
Point de départProcessus métier / départementModèle de données d'entreprise
Structure centraleSchémas dimensionnels en étoileEntrepôt de données 3NF
Data martsConstruits en premier, conformes dans le tempsDérivés de l'entrepôt central
Délai premier résultatSemainesMois
Évolution du schemaModereeComplexe — effets en cascade
Taille d'équipe requisePetite à moyenneGrande, équipe dédiée
Pertinence moderneÉlevée — compatible dbt/lakehouseMoyenne — grandes entreprises

Couches de Modélisation dbt

┌─────────────────────────────────────────────────────────┐
│               Structure Projet dbt                      │
├─────────────────────────────────────────────────────────┤
│  Sources    → Références systèmes externes              │
│  Staging    → Nettoyage, renommage, déduplication       │
│  Intermediate → Logique métier, jointures               │
│  Marts      → Tables exposées : faits et dimensions     │
│  Metrics    → Définitions de la couche sémantique       │
└─────────────────────────────────────────────────────────┘

Arbre de Décision pour le Choix du Pattern

Départ : Quelle est votre contrainte principale ?

├── "Rapidité de livraison"
│   ├── Petit jeu de données (< 50 Go) ? → One Big Table (OBT)
│   └── Jeu plus volumineux ? → Schéma en Étoile (Kimball)
│
├── "Réglementation / auditabilité"
│   └── Historique complet + lignage ? → Data Vault 2.0
│
├── "Flexibilité des requêtes"
│   ├── Requêtes connues et stables ? → Schéma en Étoile
│   └── Ad-hoc, exploratoire ? → Schéma en Flocon ou Data Vault + Marts
│
└── "Taille et compétences de l'équipe"
    ├── < 3 data engineers ? → OBT ou Schéma en Étoile
    └── Équipe de modelisation dediee ? → Data Vault ou Inmon 3NF

Anti-Patterns à Éviter

Anti-PatternSymptômeCorrection
Table divine200+ colonnes, granularités mélangéesDécomposer en faits/dimensions
Soft deletes partoutDrapeaux is_deleted qui gonflent les tablesUtiliser SCD Type 2 ou archivage
Logique métier dans l'outil BIMétriques divergentes entre dashboardsPousser la logique dans dbt / couche sémantique
Pas de déclaration de grainAnalystes incertains de ce que représente une ligneDocumenter le grain par modèle

Ressources

:::

Nous utilisons des cookies analytiques pour améliorer votre expérience. Aucune donnée personnelle n'est collectée.