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 des données qui sépare les mesures (faits) des détails descriptifs (dimensions), optimisée pour la production de rapports 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 contenant des données catégorielles dans un modèle dimensionnel.
  • Faits : entités qui capturent et quantifient les activités selon les catégories des dimensions.

Modèle dimensionnel d'un collège

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

Schéma de modèle dimensionnel en étoile

Modèle en étoile

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

Schéma de modèle dimensionnel en étoile

  • Snowflake Data Warehouse : service infonuagique d'entreposage et d'analyse.
  • Schéma Snowflake : méthode d'organisation des données 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 de modèle dimensionnel en flocon de neige

Modèle en flocon de neige

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

Définir les dimensions

  • Renommez les entités en dim_Entité pour clarifier le suivi des dimensions dans le 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 des dates

  • Création de la table dim_date pour stocker les dates clés liées aux inscriptions des élèves :
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 contenant des références à 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

Extraire des données des dimensions

Modèle de données dimensionnel d'un collège

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

Extraire des données des dimensions (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- Jointure pour obtenir les noms des élèves
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- Jointure pour obtenir les noms des cours
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- Jointure pour filtrer 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

Terminologie et fonctions : vue d'ensemble

  • Modélisation dimensionnelle : technique de structuration qui sépare les mesures (faits) des détails descriptifs (dimensions), optimisée pour les rapports et l'analyse
  • Dimensions : entités avec des données catégorielles dans un modèle dimensionnel
  • Faits : entités qui capturent et quantifient les activités selon les catégories des dimensions
  • ALTER TABLE : commande SQL pour modifier la structure d'une entité existante
  • RENAME TO : commande SQL, utilisée avec ALTER TABLE, pour renommer une entité
  • JOIN ON : clause SQL pour combiner des lignes de tables, selon 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 issues de jointures, filtrées par conditions précises
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...