Modélisation dimensionnelle

Introduction à la modélisation des données dans Snowflake

Nuno Rocha

Director of Engineering

Introduction au modèle de données dimensionnel

  • Modélisation dimensionnelle : technique de structuration qui sépare les mesures (faits) des informations descriptives (dimensions), optimisée pour le reporting et l'analyse.

Modèle dimensionnel

Introduction à la modélisation des données dans Snowflake

Introduction au modèle de données dimensionnel (1)

  • Dimensions : entités portant des données catégorielles dans un modèle dimensionnel.
  • Faits : entités qui capturent et quantifient les activités au sein des catégories des dimensions.

Modèle dimensionnel d'université

Introduction à la modélisation des données dans Snowflake

Schéma du modèle dimensionnel en étoile

Modèle en étoile

Introduction à la modélisation des données dans Snowflake

Schéma du modèle dimensionnel en étoile

  • Snowflake Data Warehouse : service cloud de stockage et d'analyse.
  • Schéma en flocon (Snowflake Schema) : organisation d'un modèle dimensionnel incluant des sous‑dimensions.

Snowflake, entrepôt de données vs modèle dimensionnel

Introduction à la modélisation des données dans Snowflake

Schéma du modèle dimensionnel en flocon

Modèle en flocon

Introduction à la modélisation des données dans Snowflake

Définir les dimensions

  • Renommez les entités en dim_EntityName pour clarifier les dimensions du modèle :
ALTER TABLE students RENAME TO dim_students;
ALTER TABLE classes RENAME TO dim_classes;
ALTER TABLE schools RENAME TO dim_schools;
Introduction à la modélisation des données dans Snowflake

Définir la dimension date

  • Création de la table dim_date pour stocker des dates clés liées aux inscriptions des étudiant·e·s :
CREATE OR REPLACE TABLE dim_date (
    date_id NUMBER(10,0) PRIMARY KEY,
    year NUMBER(4,0),
    semester VARCHAR(255)
);
Introduction à la modélisation des données dans Snowflake

Définir le fait des inscriptions

  • Créez une entité de faits référencée par toutes les dimensions :
CREATE OR REPLACE TABLE fact_enrollments (
    enrollment_id NUMBER(10,0) PRIMARY KEY,
    student_id NUMBER(10,0),
    class_id NUMBER(10,0),
    date_id NUMBER(10,0),
    FOREIGN KEY (student_id) REFERENCES dim_students(student_id),
    FOREIGN KEY (class_id) REFERENCES dim_classes(class_id),
    FOREIGN KEY (date_id) REFERENCES dim_date(date_id)
);
Introduction à la modélisation des données dans Snowflake

Récupérer des données depuis les dimensions

Modèle dimensionnel d'université

Introduction à la modélisation des données dans Snowflake

Récupérer des données depuis les dimensions (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- Jointure pour obtenir les noms d'étudiant·e·s
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- Jointure pour obtenir les noms de cours
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- Jointure pour filtrer sur l'école « Science »
    ON dim_classes.school_id = dim_schools.school_id
    JOIN dim_date -- Jointure pour restreindre à l'année 2023
    ON fact_enrollments.date_id = dim_date.date_id
WHERE dim_schools.school_name = 'Science' 
    AND dim_date.year = 2023;
Introduction à la modélisation des données dans Snowflake

Récapitulatif : notions et fonctions

  • Modélisation dimensionnelle : technique qui sépare mesures (faits) et détails descriptifs (dimensions), optimisée pour le reporting et l'analyse
  • Dimensions : entités avec des données catégorielles dans un modèle dimensionnel
  • Faits : entités qui capturent et quantifient des activités dans les catégories des dimensions
  • ALTER TABLE : commande SQL pour modifier la structure d'une entité existante
  • RENAME TO : commande SQL, avec ALTER TABLE, pour renommer une entité
  • JOIN ON : clause SQL pour combiner des lignes de tables via une colonne liée
  • WHERE : clause SQL pour filtrer selon une condition
  • AND : opérateur logique utilisé avec WHERE pour combiner des conditions
Introduction à la modélisation des données dans Snowflake

Aperçu des fonctions

-- Modifier une entité
ALTER TABLE table_name 
RENAME TO new_name;
-- Interroger des données depuis des entités jointes, filtrées par conditions
SELECT 
    table_name.column_name,
    other_name.*
FROM table_name
    JOIN other_table 
    ON table_name.FK = other_table.PK
WHERE column_name  condition  value
    AND column_name  condition  value;
Introduction à la modélisation des données dans Snowflake

Passons à la pratique !

Introduction à la modélisation des données dans Snowflake

Preparing Video For Download...