Wybór odpowiedniego podejścia

Wprowadzenie do modelowania danych w Snowflake

Nuno Rocha

Director of Engineering

Zastosowania poszczególnych technik modelowania

Przypadki użycia modeli Entity-Relationship (ER)

Wprowadzenie do modelowania danych w Snowflake

Zastosowania poszczególnych technik modelowania (1)

Przypadki użycia modeli wymiarowych

Wprowadzenie do modelowania danych w Snowflake

Zastosowania poszczególnych technik modelowania (2)

Przypadki użycia modelowania Data Vault

Wprowadzenie do modelowania danych w Snowflake

Kwestie techniczne

Zalety i wady modelu ER

Wprowadzenie do modelowania danych w Snowflake

Kwestie techniczne (1)

Zalety i wady modelu wymiarowego

Wprowadzenie do modelowania danych w Snowflake

Kwestie techniczne (2)

Zalety i wady modelu Data Vault

Wprowadzenie do modelowania danych w Snowflake

Modele danych w praktyce

Modele na diagramie Venna

Wprowadzenie do modelowania danych w Snowflake

Modele danych w praktyce (1)

Dane uczelni w modelach na diagramie Venna

Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z modeli

  • Pobieranie szczegółowych danych studentów przez odwołanie do encji hub i jej satelity:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z modeli (1)

  • LEFT JOIN ON: klauzula SQL łącząca wszystkie wiersze z lewej encji z pasującymi wierszami z prawej tabeli na podstawie klucza podanego po 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
Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z modeli (2)

  • COUNT: funkcja agregująca SQL zwracająca liczbę elementów w grupie.
  • GROUP BY: klauzula SQL do agregowania danych o tych samych wartościach.
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
Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z modeli (3)

  • MAX: funkcja agregująca SQL zwracająca najwyższą wartość atrybutu w zbiorze.
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;
Wprowadzenie do modelowania danych w Snowflake

Przegląd funkcji

  • SELECT FROM: polecenie SQL pobierające kolumny z encji
  • JOIN ON: klauzula SQL łącząca wiersze encji na podstawie powiązanego atrybutu
  • LEFT JOIN ON: klauzula SQL łącząca wszystkie wiersze z lewej encji z pasującymi wierszami z prawej tabeli na podstawie klucza podanego po ON. Jeśli nie ma dopasowania, wynik zawiera wiersze lewej encji z pustymi wartościami prawych atrybutów
  • COUNT: funkcja agregująca SQL zwracająca liczbę elementów w grupie
  • MAX: funkcja agregująca SQL zwracająca najwyższą wartość atrybutu w zbiorze
  • GROUP BY: klauzula SQL do agregowania danych o tych samych wartościach
Wprowadzenie do modelowania danych w Snowflake

Przegląd funkcji

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;
Wprowadzenie do modelowania danych w Snowflake

Czas na ćwiczenia!

Wprowadzenie do modelowania danych w Snowflake

Preparing Video For Download...