Mô hình dữ liệu chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Nuno Rocha

Director of Engineering

Giới thiệu mô hình dữ liệu chiều

  • Mô hình hóa dữ liệu chiều: Kỹ thuật cấu trúc dữ liệu tách số đo (fact) khỏi thông tin mô tả (dimension), tối ưu cho báo cáo và phân tích.

Mô hình chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Giới thiệu mô hình dữ liệu chiều (1)

  • Dimensions: Thực thể chứa dữ liệu phân loại trong mô hình chiều.
  • Facts: Thực thể ghi nhận và định lượng hoạt động trong các danh mục của dimensions.

Mô hình đại học theo chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Sơ đồ mô hình sao theo chiều

Mô hình sao theo chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Sơ đồ mô hình sao theo chiều

  • Snowflake Data Warehouse: Dịch vụ lưu trữ và phân tích trên đám mây.
  • Snowflake Schema: Cách tổ chức dữ liệu trong mô hình chiều, gồm các phân chiều (sub-dimensions).

Snowflake, kho dữ liệu vs mô hình chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Sơ đồ mô hình bông tuyết theo chiều

Mô hình bông tuyết theo chiều

Nhập môn Mô hình dữ liệu trong Snowflake

Định nghĩa các chiều

  • Đổi tên thực thể thành dim_EntityName để rõ ràng, theo các chiều trong mô hình:
ALTER TABLE students RENAME TO dim_students;
ALTER TABLE classes RENAME TO dim_classes;
ALTER TABLE schools RENAME TO dim_schools;
Nhập môn Mô hình dữ liệu trong Snowflake

Định nghĩa chiều ngày

  • Tạo bảng dim_date để lưu các ngày cố định liên quan đến ghi danh của sinh viên:
CREATE OR REPLACE TABLE dim_date (
    date_id NUMBER(10,0) PRIMARY KEY,
    year NUMBER(4,0),
    semester VARCHAR(255)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Định nghĩa fact ghi danh

  • Tạo bảng fact chứa tham chiếu đến tất cả các chiều:
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)
);
Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ các chiều

Mô hình dữ liệu chiều của đại học

Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ các chiều (1)

SELECT name, 
    class_name
FROM fact_enrollments
    JOIN dim_students -- Tham gia để lấy tên sinh viên
    ON fact_enrollments.student_id = dim_students.student_id
    JOIN dim_classes -- Tham gia để lấy tên lớp
    ON fact_enrollments.class_id = dim_classes.class_id
    JOIN dim_schools -- Tham gia để lọc theo trường 'Science'
    ON dim_classes.school_id = dim_schools.school_id
    JOIN dim_date -- Tham gia để giới hạn năm 2023
    ON fact_enrollments.date_id = dim_date.date_id
WHERE dim_schools.school_name = 'Science' 
    AND dim_date.year = 2023;
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan thuật ngữ và chức năng

  • Mô hình hóa dữ liệu chiều: Kỹ thuật cấu trúc tách số đo (fact) khỏi thông tin mô tả (dimension), tối ưu cho báo cáo và phân tích
  • Dimensions: Thực thể chứa dữ liệu phân loại trong mô hình chiều
  • Facts: Thực thể ghi nhận và định lượng hoạt động trong các danh mục của dimensions
  • ALTER TABLE: Lệnh SQL để sửa cấu trúc thực thể hiện có
  • RENAME TO: Lệnh SQL, dùng với ALTER TABLE, để đổi tên thực thể
  • JOIN ON: Mệnh đề SQL để kết hợp hàng giữa các bảng dựa ON một cột liên quan
  • WHERE: Mệnh đề SQL lọc bản ghi theo điều kiện
  • AND: Toán tử logic dùng với WHERE để kết hợp nhiều điều kiện
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan chức năng

-- Sửa đổi một thực thể
ALTER TABLE table_name 
RENAME TO new_name;
-- Truy vấn dữ liệu từ các thực thể đã JOIN, lọc theo điều kiện
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;
Nhập môn Mô hình dữ liệu trong Snowflake

Ayo berlatih!

Nhập môn Mô hình dữ liệu trong Snowflake

Preparing Video For Download...