Alegerea abordării potrivite

Introducere în modelarea datelor în Snowflake

Nuno Rocha

Director of Engineering

Cazuri de utilizare pentru fiecare tehnică de modelare

Cazuri de utilizare pentru modelele Entitate-Relație (ER)

Introducere în modelarea datelor în Snowflake

Cazuri de utilizare pentru fiecare tehnică de modelare (1)

Cazuri de utilizare pentru modelele dimensionale

Introducere în modelarea datelor în Snowflake

Cazuri de utilizare pentru fiecare tehnică de modelare (2)

Cazuri de utilizare pentru modelarea Data Vault

Introducere în modelarea datelor în Snowflake

Considerații tehnice

Avantaje și dezavantaje ale modelului ER

Introducere în modelarea datelor în Snowflake

Considerații tehnice (1)

Avantaje și dezavantaje ale modelului dimensional

Introducere în modelarea datelor în Snowflake

Considerații tehnice (2)

Avantaje și dezavantaje ale Data Vault

Introducere în modelarea datelor în Snowflake

Modele de date în practică

Modele în diagrama Venn

Introducere în modelarea datelor în Snowflake

Modele de date în practică (1)

Date despre facultate în modele din diagrama Venn

Introducere în modelarea datelor în Snowflake

Preluarea datelor din modele

  • Preluați date detaliate despre studenți referențiind entitatea hub și satelitul acesteia:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Introducere în modelarea datelor în Snowflake

Preluarea datelor din modele (1)

  • LEFT JOIN ON: clauză SQL care combină toate rândurile din entitatea stângă cu rândurile corespunzătoare din tabelul drept, pe baza ON unei chei
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
Introducere în modelarea datelor în Snowflake

Preluarea datelor din modele (2)

  • COUNT: funcție agregat SQL care returnează numărul de elemente dintr-un grup.
  • GROUP BY: clauză SQL pentru agregarea datelor cu valori identice.
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
Introducere în modelarea datelor în Snowflake

Preluarea datelor din modele (3)

  • MAX: funcție agregat SQL care găsește valoarea maximă dintr-un set de valori pentru un atribut.
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;
Introducere în modelarea datelor în Snowflake

Prezentare generală a funcțiilor

  • SELECT FROM: comandă SQL pentru a extrage coloane dintr-o entitate
  • JOIN ON: clauză SQL care combină rânduri din entități pe baza unui atribut comun
  • LEFT JOIN ON: clauză SQL care combină toate rândurile din entitatea stângă cu rândurile corespunzătoare din tabelul drept, pe baza ON unei chei. Dacă nu există o potrivire, rândurile din entitatea stângă sunt afișate cu valori goale pentru atributele din dreapta
  • COUNT: funcție agregat SQL care returnează numărul de elemente dintr-un grup
  • MAX: funcție agregat SQL care găsește valoarea maximă dintr-un set de valori pentru un atribut
  • GROUP BY: clauză SQL pentru agregarea datelor cu valori identice
Introducere în modelarea datelor în Snowflake

Prezentare generală a funcțiilor

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;
Introducere în modelarea datelor în Snowflake

Să exersăm!

Introducere în modelarea datelor în Snowflake

Preparing Video For Download...