Scegliere l’approccio giusto

Introduzione al Data Modeling in Snowflake

Nuno Rocha

Director of Engineering

Casi d’uso per ogni tecnica di modellazione

Casi d’uso per i modelli Entità‑Relazioni (ER)

Introduzione al Data Modeling in Snowflake

Casi d’uso per ogni tecnica di modellazione (1)

Casi d’uso per i modelli dimensionali

Introduzione al Data Modeling in Snowflake

Casi d’uso per ogni tecnica di modellazione (2)

Casi d’uso per il Data Vault Modeling

Introduzione al Data Modeling in Snowflake

Considerazioni tecniche

Pro e contro del modello ER

Introduzione al Data Modeling in Snowflake

Considerazioni tecniche (1)

Pro e contro del modello dimensionale

Introduzione al Data Modeling in Snowflake

Considerazioni tecniche (2)

Pro e contro del Data Vault

Introduzione al Data Modeling in Snowflake

Modelli dati in azione

Modelli in un diagramma di Venn

Introduzione al Data Modeling in Snowflake

Modelli dati in azione (1)

Dati universitari nei modelli in un diagramma di Venn

Introduzione al Data Modeling in Snowflake

Recuperare dati dai modelli

  • Recupera i dettagli degli studenti riferendoti all’hub e al suo 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;
Introduzione al Data Modeling in Snowflake

Recuperare dati dai modelli (1)

  • LEFT JOIN ON: clausola SQL che unisce tutte le righe dell’entità a sinistra con le corrispondenti della tabella a destra, basandosi su una chiave con 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
Introduzione al Data Modeling in Snowflake

Recuperare dati dai modelli (2)

  • COUNT: funzione aggregata SQL che restituisce il numero di elementi in un gruppo.
  • GROUP BY: clausola SQL per aggregare dati con gli stessi valori.
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
Introduzione al Data Modeling in Snowflake

Recuperare dati dai modelli (3)

  • MAX: funzione aggregata SQL che trova il valore più alto di un attributo.
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;
Introduzione al Data Modeling in Snowflake

Panoramica funzioni

  • SELECT FROM: comando SQL per estrarre colonne da un’entità
  • JOIN ON: clausola SQL che unisce righe tra entità in base a un attributo correlato
  • LEFT JOIN ON: unisce tutte le righe dell’entità a sinistra con le corrispondenti della tabella a destra, basandosi su una chiave. Se non c’è corrispondenza, mostra comunque le righe di sinistra con valori vuoti a destra
  • COUNT: funzione aggregata SQL che restituisce il numero di elementi in un gruppo
  • MAX: funzione aggregata SQL che trova il valore più alto per un attributo
  • GROUP BY: clausola SQL per aggregare dati con gli stessi valori
Introduzione al Data Modeling in Snowflake

Panoramica funzioni

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;
Introduzione al Data Modeling in Snowflake

Passiamo alla pratica !

Introduzione al Data Modeling in Snowflake

Preparing Video For Download...