Choisir la bonne approche

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

Nuno Rocha

Director of Engineering

Cas d'usage de chaque technique de modélisation

Cas d'usage des modèles Entité-Association (ER)

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

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

Cas d'usage des modèles dimensionnels

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

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

Cas d'usage du Data Vault Modeling

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

Considérations techniques

Avantages et limites du modèle ER

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

Considérations techniques (1)

Avantages et limites du modèle dimensionnel

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

Considérations techniques (2)

Avantages et limites 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 d'université dans des modèles (diagramme de Venn)

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

Récupérer des données depuis les modèles

  • Récupérer des données détaillées sur les étudiants en reliant 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 depuis les 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 depuis les modèles (2)

  • COUNT : fonction d'agrégation SQL qui renvoie le nombre d'éléments d'un groupe.
  • GROUP BY : clause SQL pour regrouper 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 depuis les modèles (3)

  • MAX : fonction d'agrégation SQL qui renvoie la valeur la plus élevée 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 les lignes correspondantes de la table de droite, selon une clé. Sans correspondance, les lignes de gauche restent avec des valeurs vides pour les attributs de droite
  • COUNT : fonction d'agrégation SQL qui renvoie le nombre d'éléments d'un groupe
  • MAX : fonction d'agrégation SQL qui renvoie la valeur la plus élevée d'un ensemble pour un attribut
  • GROUP BY : clause SQL pour regrouper des 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
    -- Merge entities based on their keys
    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
-- Aggregate data by specific columns
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...