Моделювання вимірів

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

Nuno Rocha

Director of Engineering

Вступ до моделі даних із вимірами

  • Моделювання вимірів: техніка структурування даних, що відокремлює вимірювання (факти) від описових відомостей (виміри) та оптимізована для звітності й аналізу.

Модель вимірів

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

Вступ до моделі даних із вимірами (1)

  • Виміри: сутності з категоріальними даними у моделі вимірів.
  • Факти: сутності, що фіксують і кількісно описують дії в категоріях вимірів.

Коледж: модель вимірів

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

Схема «зоряної» моделі вимірів

Зоряна модель вимірів

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

Схема «зоряної» моделі вимірів

  • Snowflake Data Warehouse: хмарний сервіс зберігання та аналітики.
  • Схема Snowflake: спосіб організації даних у моделі вимірів із підвимірами.

Snowflake: сховище даних vs модель вимірів

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

Схема «сніжинкової» моделі вимірів

Сніжинкова модель вимірів

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

Визначення вимірів

  • Перейменуйте сутності на dim_EntityName для ясності, позначаючи виміри у моделі:
ALTER TABLE students RENAME TO dim_students;
ALTER TABLE classes RENAME TO dim_classes;
ALTER TABLE schools RENAME TO dim_schools;
Вступ до моделювання даних у Snowflake

Визначення виміру дати

  • Створення таблиці dim_date для ключових фіксованих дат, пов'язаних із зарахуванням студентів:
CREATE OR REPLACE TABLE dim_date (
    date_id NUMBER(10,0) PRIMARY KEY,
    year NUMBER(4,0),
    semester VARCHAR(255)
);
Вступ до моделювання даних у Snowflake

Визначення факту зарахувань

  • Створіть факт із посиланнями на всі виміри:
CREATE OR REPLACE TABLE fact_enrollments (
    enrollment_id NUMBER(10,0) PRIMARY KEY,
    student_id NUMBER(10,0),
    class_id NUMBER(10,0),
    date_id NUMBER(10,0),
    FOREIGN KEY (student_id) REFERENCES dim_students(student_id),
    FOREIGN KEY (class_id) REFERENCES dim_classes(class_id),
    FOREIGN KEY (date_id) REFERENCES dim_date(date_id)
);
Вступ до моделювання даних у Snowflake

Отримання даних з вимірів

Коледж: модель даних із вимірами

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

Отримання даних з вимірів (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- Об'єднання, щоб отримати імена студентів
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- Об'єднання, щоб отримати назви занять
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- Об'єднання, щоб відфільтрувати школу 'Science'
    ON dim_classes.school_id = dim_schools.school_id
    JOIN dim_date -- Об'єднання для обмеження даних 2023 роком
    ON fact_enrollments.date_id = dim_date.date_id
WHERE dim_schools.school_name = 'Science' 
    AND dim_date.year = 2023;
Вступ до моделювання даних у Snowflake

Огляд термінів і функцій

  • Моделювання вимірів: техніка структурування даних, що відокремлює вимірювання (факти) від описових відомостей (виміри), оптимізована для звітності й аналізу
  • Виміри: сутності з категоріальними даними у моделі вимірів
  • Факти: сутності, що фіксують і кількісно описують дії в категоріях вимірів
  • ALTER TABLE: команда SQL для зміни структури наявної сутності
  • RENAME TO: команда SQL разом із ALTER TABLE для перейменування сутності
  • JOIN ON: оператор SQL для об'єднання рядків таблиць на основі пов'язаного стовпця
  • WHERE: оператор SQL для фільтрування записів за умовою
  • AND: логічний оператор у WHERE для поєднання кількох умов
Вступ до моделювання даних у Snowflake

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

-- Зміна сутності
ALTER TABLE table_name 
RENAME TO new_name;
-- Запит даних з об'єднаних сутностей із фільтром за умовами
SELECT 
    table_name.column_name,
    other_name.*
FROM table_name
    JOIN other_table 
    ON table_name.FK = other_table.PK
WHERE column_name  condition  value
    AND column_name  condition  value;
Вступ до моделювання даних у Snowflake

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

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

Preparing Video For Download...