Data Universe
Newsletter
Accueil/Encyclopédie/Star Schema et Snowflake Schema
Data EngineeringDébutantModélisation data

Star Schema et Snowflake Schema

Modèles de conception de Data Warehouse : le schéma en étoile avec une table de faits centrale et des dimensions dénormalisées, le schéma en flocon avec des dimensions normalisées.

💡Explication simple

Un Data Warehouse, c'est comme un rapport de gestion. Au centre, la table des faits : chaque ligne est une vente (quantité, montant, date_id, produit_id, client_id). Autour, les dimensions : la table Produit (nom, catégorie, marque), la table Client (nom, région, segment). Tu joins les tables pour analyser les ventes par région et catégorie. Le schéma en étoile dénormalise pour la performance, le schéma en flocon normalise pour économiser l'espace.

🏗️Exemple concret

Data Warehouse d'un retailer : FAIT_Ventes (10 milliards de lignes) au centre. DIM_Produit, DIM_Client, DIM_Temps, DIM_Magasin autour. Une requête « CA par région et mois » = jointure FAIT_Ventes + DIM_Magasin + DIM_Temps. Sans schéma en étoile (base normalisée 3NF), la même requête nécessiterait 8 jointures au lieu de 2.

SQLexemple
-- Creation de la table de faits avec cles etrangeres
CREATE TABLE fct_ventes (
  vente_id    BIGINT       PRIMARY KEY,
  date_id     INT          REFERENCES dim_date(date_id),
  client_id   INT          REFERENCES dim_client(client_id),
  produit_id  INT          REFERENCES dim_produit(produit_id),
  montant_ht  DECIMAL(12,2),
  quantite    INT,
  marge       DECIMAL(12,2)
);

-- Requete analytique typique en schema etoile
SELECT
  d.annee, d.mois_nom,
  p.categorie,
  SUM(f.montant_ht) AS ca_total,
  SUM(f.marge)      AS marge_totale
FROM fct_ventes   f
JOIN dim_date     d ON f.date_id    = d.date_id
JOIN dim_produit  p ON f.produit_id = p.produit_id
GROUP BY 1, 2, 3
ORDER BY 1, 2

∑ Concept clé

Cardinalité : Table de faits (milliards de lignes, peu de colonnes) Dimensions (milliers à millions de lignes, nombreuses colonnes descriptives). Grain = niveau de détail de chaque ligne de fait.

🎯Quand l'utiliser ?

Conception de tout Data Warehouse analytique
Reporting BI (Power BI, Tableau, Looker)
Modèles sémantiques pour requêtes OLAP

✅ Avantages

+Performance des requêtes analytiques (peu de jointures)
+Simple à comprendre pour les utilisateurs métier
+Standard universel des DW depuis Kimball (années 90)

⚠️ Limites

Redondance des données (dénormalisation)
Moins flexible aux changements fréquents de structure
Peut mal s'adapter aux hiérarchies complexes (géographie)

🛠️ Outils principaux

dbt (modélisation marts)
Power BI (modèle de données), Tableau
Snowflake, Redshift, BigQuery, Synapse
Data EngineeringModélisationData WarehouseKimballBI

Concepts liés

Apache Flink — Stream processing temps réel

Streaming

🧊

Apache Iceberg

Lakehouse Architecture

🏠

Architecture Lakehouse

Architecture

🔍

Architecture Medallion (Bronze / Silver / Gold)

Architecture data

← Retour à l'encyclopédie