Chọn cách tiếp cận phù hợp

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

Nuno Rocha

Director of Engineering

Trường hợp sử dụng cho từng kỹ thuật mô hình hóa

Trường hợp sử dụng cho Mô hình Thực thể - Quan hệ (ER)

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

Trường hợp sử dụng cho từng kỹ thuật mô hình hóa (1)

Trường hợp sử dụng cho Mô hình Chiều

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

Trường hợp sử dụng cho từng kỹ thuật mô hình hóa (2)

Trường hợp sử dụng cho Mô hình Data Vault

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

Xem xét kỹ thuật

Ưu và nhược điểm của mô hình ER

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

Xem xét kỹ thuật (1)

Ưu và nhược điểm của mô hình chiều

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

Xem xét kỹ thuật (2)

Ưu và nhược điểm của Data Vault

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

Mô hình dữ liệu trong thực tế

Mô hình trong sơ đồ Venn

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

Mô hình dữ liệu trong thực tế (1)

Dữ liệu đại học vào các mô hình trong sơ đồ Venn

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

Truy xuất dữ liệu từ mô hình

  • Truy xuất dữ liệu chi tiết về sinh viên bằng cách tham chiếu hub và satellite:
SELECT
    hs.student_key,
    ss.student_name
FROM hub_students AS hs
    JOIN sat_student AS ss ON hs.student_key = ss.student_key;
Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình (1)

  • LEFT JOIN ON: Mệnh đề SQL kết hợp mọi hàng từ bảng bên trái với các hàng khớp từ bảng bên phải, dựa ON một khóa
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
Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình (2)

  • COUNT: Hàm tổng hợp SQL trả về số mục trong một nhóm.
  • GROUP BY: Mệnh đề SQL để nhóm các bản ghi có cùng giá trị.
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
Nhập môn Mô hình dữ liệu trong Snowflake

Truy xuất dữ liệu từ mô hình (3)

  • MAX: Hàm tổng hợp SQL tìm giá trị lớn nhất của một thuộc tính.
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;
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan hàm

  • SELECT FROM: Lệnh SQL để lấy cột từ một bảng
  • JOIN ON: Mệnh đề SQL kết hợp các hàng dựa trên thuộc tính liên quan
  • LEFT JOIN ON: Mệnh đề SQL kết hợp mọi hàng từ bảng bên trái với các hàng khớp từ bảng bên phải, dựa ON một khóa. Nếu không khớp, vẫn giữ hàng bên trái với giá trị rỗng cho thuộc tính bên phải
  • COUNT: Hàm tổng hợp SQL trả về số mục trong một nhóm
  • MAX: Hàm tổng hợp SQL tìm giá trị lớn nhất của một thuộc tính
  • GROUP BY: Mệnh đề SQL để nhóm các bản ghi có cùng giá trị
Nhập môn Mô hình dữ liệu trong Snowflake

Tổng quan hàm

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;
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...