Вибір належного підходу

Вступ до моделювання даних у Snowflake

Nuno Rocha

Director of Engineering

Випадки використання кожної техніки моделювання

Використання моделей «сутність–зв'язок» (ER)

Вступ до моделювання даних у Snowflake

Випадки використання кожної техніки моделювання (1)

Використання вимірних моделей

Вступ до моделювання даних у Snowflake

Випадки використання кожної техніки моделювання (2)

Використання моделювання Data Vault

Вступ до моделювання даних у Snowflake

Технічні аспекти

Плюси й мінуси ER‑моделі

Вступ до моделювання даних у Snowflake

Технічні аспекти (1)

Плюси й мінуси вимірної моделі

Вступ до моделювання даних у Snowflake

Технічні аспекти (2)

Плюси й мінуси Data Vault

Вступ до моделювання даних у Snowflake

Дані й моделі в дії

Моделі на діаграмі Венна

Вступ до моделювання даних у Snowflake

Дані й моделі в дії (1)

Дані коледжу у моделях на діаграмі Венна

Вступ до моделювання даних у Snowflake

Отримання даних із моделей

  • Отримайте деталізовані дані про студентів, звернувшись до вузлової сутності та її супутника:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Вступ до моделювання даних у Snowflake

Отримання даних із моделей (1)

  • LEFT JOIN ON: конструкція SQL, що поєднує всі рядки з лівої сутності з відповідними рядками з правої таблиці на основі ключа 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
Вступ до моделювання даних у Snowflake

Отримання даних із моделей (2)

  • COUNT: агрегатна функція SQL, що повертає кількість елементів у групі.
  • GROUP BY: оператор SQL для агрегування даних з однаковими значеннями.
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
Вступ до моделювання даних у Snowflake

Отримання даних із моделей (3)

  • MAX: агрегатна функція SQL, що знаходить найбільше значення атрибута в наборі.
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;
Вступ до моделювання даних у Snowflake

Огляд функцій

  • SELECT FROM: команда SQL для вибірки стовпців із сутності
  • JOIN ON: оператор SQL для поєднання рядків сутностей на основі пов'язаного атрибута
  • LEFT JOIN ON: поєднує всі рядки з лівої сутності з відповідними з правої на ключі ON. Якщо відповідності немає, у результаті залишаються рядки лівої сутності з порожніми значеннями правих атрибутів
  • COUNT: агрегатна функція SQL, що повертає кількість елементів у групі
  • MAX: агрегатна функція SQL, що знаходить найбільше значення атрибута в наборі
  • GROUP BY: оператор SQL для агрегування даних з однаковими значеннями
Вступ до моделювання даних у Snowflake

Огляд функцій

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;
Вступ до моделювання даних у Snowflake

Давайте потренуємось!

Вступ до моделювання даних у Snowflake

Preparing Video For Download...