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
| Approche | Structure | Performance Requêtes | Flexibilité | Complexité | Idéal Pour |
|---|---|---|---|---|---|
| Schéma en Étoile | Tables de faits + dimensions dénormalisées | Excellente — peu de jointures | Moyenne | Faible | Dashboards BI, requêtes connues |
| Schéma en Flocon | Tables de faits + dimensions normalisées | Bonne — plus de jointures | Élevée | Moyenne | Sensibilité stockage, sources normalisées |
| Data Vault 2.0 | Hubs + Links + Satellites | Variable — nécessite des marts | Très élevée | Élevée | Industries réglementées, auditabilité |
| One Big Table (OBT) | Table unique large dénormalisée | Excellente — zéro jointure | Faible | Très faible | Petites équipes, analytique mono-domaine |
tadata
Extrait de la fiche « DP-600 Prepare Data (2): Transform and Query » · Demander la fiche complète
Kimball vs Inmon : Le Grand Débat
| Dimension | Kimball (Bottom-Up) | Inmon (Top-Down) |
|---|---|---|
| Point de départ | Processus métier / département | Modèle de données d'entreprise |
| Structure centrale | Schémas dimensionnels en étoile | Entrepôt de données 3NF |
| Data marts | Construits en premier, conformes dans le temps | Dérivés de l'entrepôt central |
| Délai premier résultat | Semaines | Mois |
| Ãvolution du schema | Moderee | Complexe — effets en cascade |
| Taille d'équipe requise | Petite à moyenne | Grande, équipe dédiée |
| Pertinence moderne | Élevée — compatible dbt/lakehouse | Moyenne — grandes entreprises |
Couches de Modélisation dbt
tadata
- 1. Sources
- 2. Staging (stg_)
- 3. Intermédiaire (int_)
- 4. Marts (fct_, dim_)
- 5. Métriques (mtc_)
- Sources
- données brutes : références aux systèmes externes, contrôles de fraîcheur
- Staging (stg_)
- nettoyage 1:1 : renommage, typage, déduplication ; un modèle par table source
- Intermédiaire (int_)
- jointures de logique métier, agrégations entre modèles de staging
- Marts (fct_, dim_)
- exposés aux consommateurs : tables de faits et de dimensions
- Métriques (mtc_)
- définitions de la couche sémantique pour les outils BI
Arbre de Décision pour le Choix du Pattern
tadata
- 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 modélisation dédiée ? → Data Vault ou Inmon 3NF
Anti-Patterns à Éviter
| Anti-Pattern | Symptôme | Correction |
|---|---|---|
| Table divine | 200+ colonnes, granularités mélangées | Décomposer en faits/dimensions |
| Soft deletes partout | Drapeaux is_deleted qui gonflent les tables | Utiliser SCD Type 2 ou archivage |
| Logique métier dans l'outil BI | Métriques divergentes entre dashboards | Pousser la logique dans dbt / couche sémantique |
| Pas de déclaration de grain | Analystes incertains de ce que représente une ligne | Documenter le grain par modèle |
tadata
Extrait de la fiche « DP-750 Domain 3a: Model and Ingest Data in Unity Catalog » · Demander la fiche complète