Choisir la bonne approche

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

Nuno Rocha

Director of Engineering

Cas d'utilisation de chaque technique de modélisation

Cas d'utilisation des modèles entité-relation (ER)

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

Cas d'utilisation de chaque technique de modélisation (1)

Cas d'utilisation des modèles dimensionnels

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

Cas d'utilisation de chaque technique de modélisation (2)

Cas d'utilisation du Data Vault Modeling

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

Considérations techniques

Avantages et inconvénients du modèle ER

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

Considérations techniques (1)

Avantages et inconvénients du modèle dimensionnel

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

Considérations techniques (2)

Avantages et inconvénients du Data Vault

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

Modèles de données en action

Modèles dans un diagramme de Venn

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

Modèles de données en action (1)

Données collégiales dans des modèles, diagramme de Venn

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

Récupérer des données à partir des modèles

  • Récupérer des données détaillées sur les étudiantes et étudiants en référant à l'entité hub et à son satellite :
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Introduction à la modélisation des données dans Snowflake

Récupérer des données à partir des modèles (1)

  • LEFT JOIN ON : clause SQL qui combine toutes les lignes de l'entité de gauche avec les lignes correspondantes de la table de droite, selon la clé indiquée après ON.
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
Introduction à la modélisation des données dans Snowflake

Récupérer des données à partir des modèles (2)

  • COUNT : fonction d'agrégation SQL qui retourne le nombre d'éléments d'un groupe.
  • GROUP BY : clause SQL qui regroupe les données ayant les mêmes valeurs.
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment AS le ON hs.student_key = le.student_key
GROUP BY hs.student_key, 
    ss.student_name
Introduction à la modélisation des données dans Snowflake

Récupérer des données à partir des modèles (3)

  • MAX : fonction d'agrégation SQL qui trouve la plus grande valeur d'un ensemble pour un attribut.
SELECT
    hs.student_key,
    ss.student_name,
    COUNT(le.class_key) AS NumberOfEnrollments
    MAX(sc.load_date) AS MostRecentEnrollmentDate
FROM hub_students hs
    JOIN sat_student ss ON hs.student_key = ss.student_key
    LEFT JOIN link_enrollment le ON hs.student_key = le.student_key
    LEFT JOIN sat_class sc ON le.class_key = sc.class_key
GROUP BY hs.student_key, 
    ss.student_name;
Introduction à la modélisation des données dans Snowflake

Aperçu des fonctions

  • SELECT FROM : commande SQL pour extraire des colonnes d'une entité
  • JOIN ON : clause SQL qui combine des lignes d'entités selon un attribut lié
  • LEFT JOIN ON : clause SQL qui combine toutes les lignes de l'entité de gauche avec celles correspondantes de la table de droite, selon une clé. S'il n'y a pas de correspondance, les lignes de gauche s'affichent quand même avec des valeurs vides pour les attributs de droite
  • COUNT : fonction d'agrégation SQL qui retourne le nombre d'éléments d'un groupe
  • MAX : fonction d'agrégation SQL qui trouve la plus grande valeur d'un ensemble pour un attribut
  • GROUP BY : clause SQL qui regroupe les données ayant les mêmes valeurs
Introduction à la modélisation des données dans Snowflake

Aperçu des fonctions

SELECT column_name, 
    COUNT(another_column) AS alias_name,
    MAX(other_column) AS alias_name
FROM table_name table_alias
    -- Fusionner des entités selon leurs clés
    JOIN other_table AS other_alias 
    ON table_alias.FK = other_alias.PK
    LEFT JOIN another_table AS another_alias 
    ON table_alias.FK = other_alias.PK
-- Regrouper les données par colonnes précises
GROUP BY column_name;
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...