Výběr správného přístupu

Úvod do datového modelování ve Snowflake

Nuno Rocha

Director of Engineering

Případy použití jednotlivých technik modelování

Případy použití ER modelů (entitně-vztahových modelů)

Úvod do datového modelování ve Snowflake

Případy použití jednotlivých technik modelování (1)

Případy použití dimenzionálních modelů

Úvod do datového modelování ve Snowflake

Případy použití jednotlivých technik modelování (2)

Případy použití modelování data vaultu

Úvod do datového modelování ve Snowflake

Technická hlediska

Výhody a nevýhody ER modelu

Úvod do datového modelování ve Snowflake

Technická hlediska (1)

Výhody a nevýhody dimenzionálního modelu

Úvod do datového modelování ve Snowflake

Technická hlediska (2)

Výhody a nevýhody data vaultu

Úvod do datového modelování ve Snowflake

Datové modely v praxi

Modely ve Vennově diagramu

Úvod do datového modelování ve Snowflake

Datové modely v praxi (1)

Data o studentech ve Vennově diagramu modelů

Úvod do datového modelování ve Snowflake

Načítání dat z modelů

  • Načtení podrobných dat o studentech pomocí odkazů na hub entitu a její satelit:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Úvod do datového modelování ve Snowflake

Načítání dat z modelů (1)

  • LEFT JOIN ON: Klauzule SQL, která kombinuje všechny řádky z levé entity s odpovídajícími řádky z pravé tabulky na základě klíče (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
Úvod do datového modelování ve Snowflake

Načítání dat z modelů (2)

  • COUNT: Agregační funkce SQL, která vrací počet položek ve skupině.
  • GROUP BY: Klauzule SQL pro agregaci dat se stejnými hodnotami.
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
Úvod do datového modelování ve Snowflake

Načítání dat z modelů (3)

  • MAX: Agregační funkce SQL, která nalezne nejvyšší hodnotu atributu v sadě hodnot.
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;
Úvod do datového modelování ve Snowflake

Přehled funkcí

  • SELECT FROM: Příkaz SQL pro načtení sloupců z entity
  • JOIN ON: Klauzule SQL kombinující řádky z entit na základě společného atributu
  • LEFT JOIN ON: Klauzule SQL kombinující všechny řádky z levé entity s odpovídajícími řádky z pravé tabulky na základě klíče (ON). Pokud neexistuje shoda, zobrazí se řádky levé entity s prázdnými hodnotami pro pravé atributy
  • COUNT: Agregační funkce SQL, která vrací počet položek ve skupině
  • MAX: Agregační funkce SQL, která nalezne nejvyšší hodnotu atributu v sadě hodnot
  • GROUP BY: Klauzule SQL pro agregaci dat se stejnými hodnotami
Úvod do datového modelování ve Snowflake

Přehled funkcí

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;
Úvod do datového modelování ve Snowflake

Pojďme si procvičit!

Úvod do datového modelování ve Snowflake

Preparing Video For Download...