Modelowanie wymiarowe

Wprowadzenie do modelowania danych w Snowflake

Nuno Rocha

Director of Engineering

Wprowadzenie do wymiarowego modelu danych

  • Modelowanie wymiarowe: Technika strukturyzowania danych oddzielająca miary (fakty) od danych opisowych (wymiary), zoptymalizowana pod kątem raportowania i analizy.

Model wymiarowy

Wprowadzenie do modelowania danych w Snowflake

Wprowadzenie do wymiarowego modelu danych (1)

  • Wymiary: Encje z danymi kategorycznymi w modelu wymiarowym.
  • Fakty: Encje rejestrujące i mierzące działania w kategoriach wymiarów.

Wymiarowy model uczelni

Wprowadzenie do modelowania danych w Snowflake

Schemat gwiazdowego modelu wymiarowego

Gwiazdowy model wymiarowy

Wprowadzenie do modelowania danych w Snowflake

Schemat gwiazdowego modelu wymiarowego

  • Snowflake Data Warehouse: Chmurowa usługa przechowywania i analizy danych.
  • Schemat płatka śniegu: Metoda organizacji danych w modelu wymiarowym obejmująca pod-wymiary.

Snowflake: hurtownia danych a model wymiarowy

Wprowadzenie do modelowania danych w Snowflake

Schemat wymiarowego modelu płatka śniegu

Wymiarowy model płatka śniegu

Wprowadzenie do modelowania danych w Snowflake

Definiowanie wymiarów

  • Zmień nazwy encji na dim_NazwaEncji, aby oznaczyć wymiary w modelu:
ALTER TABLE students RENAME TO dim_students;
ALTER TABLE classes RENAME TO dim_classes;
ALTER TABLE schools RENAME TO dim_schools;
Wprowadzenie do modelowania danych w Snowflake

Definiowanie wymiaru dat

  • Tworzenie tabeli dim_date do przechowywania kluczowych dat związanych z zapisami uczniów do szkół:
CREATE OR REPLACE TABLE dim_date (
    date_id NUMBER(10,0) PRIMARY KEY,
    year NUMBER(4,0),
    semester VARCHAR(255)
);
Wprowadzenie do modelowania danych w Snowflake

Definiowanie faktu zapisów

  • Utwórz encję faktów zawierającą odwołania do wszystkich wymiarów:
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)
);
Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z wymiarów

Wymiarowy model danych uczelni

Wprowadzenie do modelowania danych w Snowflake

Pobieranie danych z wymiarów (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- Joining to get student names
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- Joining to get class names
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- Joining to filter for the 'Science' school
    ON dim_classes.school_id = dim_schools.school_id
    JOIN dim_date -- Joining to restrict data to the year 2023
    ON fact_enrollments.date_id = dim_date.date_id
WHERE dim_schools.school_name = 'Science' 
    AND dim_date.year = 2023;
Wprowadzenie do modelowania danych w Snowflake

Przegląd terminologii i funkcji

  • Modelowanie wymiarowe: Technika strukturyzowania danych oddzielająca miary (fakty) od danych opisowych (wymiary), zoptymalizowana pod kątem raportowania i analizy
  • Wymiary: Encje z danymi kategorycznymi w modelu wymiarowym
  • Fakty: Encje rejestrujące i mierzące działania w kategoriach wymiarów
  • ALTER TABLE: Polecenie SQL służące do modyfikacji struktury istniejącej encji
  • RENAME TO: Polecenie SQL używane z ALTER TABLE do zmiany nazwy encji
  • JOIN ON: Klauzula SQL łącząca wiersze z tabel na podstawie powiązanej kolumny
  • WHERE: Klauzula SQL filtrująca rekordy według określonego warunku
  • AND: Operator logiczny używany z klauzulą WHERE do łączenia wielu warunków
Wprowadzenie do modelowania danych w Snowflake

Przegląd funkcji

-- Modifying a entity
ALTER TABLE table_name 
RENAME TO new_name;
-- Querying data from merged entities filtered by specific conditions
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;
Wprowadzenie do modelowania danych w Snowflake

Czas na ćwiczenia!

Wprowadzenie do modelowania danych w Snowflake

Preparing Video For Download...