Knowledge hub công nghệ ứng dụng thực chiến tại Việt Nam Weekly digest · Đăng ký →
Data-driven business

Dimension (Các dạng lưu trữ bảng chiều) trong Data Warehouse

Bảng chiều dimension cung cấp thông tin, ngữ cảnh cho bảng fact. Dù có quy mô nhỏ hơn fact nhiều lần, nhưng dimension là trọng tâm của…

TThủy Tiên
Theo dõi

Bảng chiều dimension cung cấp thông tin, ngữ cảnh cho bảng fact. Dù có quy mô nhỏ hơn fact nhiều lần, nhưng dimension là trọng tâm của Data Warehouse, vì nếu thiếu nó, các số liệu trong fact sẽ không mang lại nhiều ý nghĩa cho người dùng.

Khi có sự thay đổi trong một bản ghi của dimension, Data Warehouse phải cập nhật sự thay đổi đó.

Data warehouse example. What is a data warehouse? Hurree.

Type 0: Retain Original

Đây là phương thức thụ động. Khi có sự tứ thay đổi trên dimension, không có hành động nào xảy ra trên Data Warehouse. Giá trị chiều được giữ nguyên như tại thời thời điểm bản ghi được thêm vào lần đầu tiên.

Loại bảng chiều này hiếm khi được sử dụng.

Type 1: Overwrite

Ghi đè dữ liệu cũ, không theo dõi dữ liệu lịch sử. Ví dụ:

Supplier_Key Supplier_Code Supplier_Name Supplier_State
123 ABC Inda Co HCM

Khi Nhà cung cấp đổi địa điểm (Hồ Chí Minh -> Hà Nội). Dữ liệu được cập nhật như sau:

Supplier_Key Supplier_Code Supplier_Name Supplier_State
123 ABC Inda Co HN

Ưu điểm: Dễ bảo trì.

Nhược điểm: Không kiểm tra được dữ liệu lịch sử.

Type 2: Add new row

Theo dõi  dữ liệu lịch sử bằng cách tạo nhiều bản ghi cho một khoá tự nhiên trong bản chiều (phân biệt bằng khoá tự nhiên hoặc số phiên bản)

Ưu điểm: Lưu trữ giá trị lịch sử không giới hạn.

  • Dùng versions
Supplier_Key Supplier_Code Supplier_Name Supplier_State Version.
123 ABC Inda Co HCM 0
124 ABC Inda Co HN 1
  • Dùng effective_date
Supplier_Key Supplier_Code Supplier_Name Supplier_State Start_Date End_Date
123 ABC Inda Co HCM 2000-01-01 2005-01-02
124 ABC Acme Supply Co HN 2005-01-02 9999-12-31
  • Dùng effective_date, flag
Supplier_Key Supplier_Code Supplier_Name Supplier_State Effective_Date Current_Flag
123 ABC Inda Co CA 2000-01-01 N
124 ABC Inda Co IL 2005-01-02 Y

Type 3: Add new attribute

Phương pháp này theo dõi sự thay đổi bằng cách sử dụng các cột riêng biệt.

Lưu trữ giá trị lịch sự một cách giới hạn vì giới hạn ở số cột lưu trữ dữ liệu lịch sử.

Supplier_Key Supplier_Code Supplier_Name Original_Supplier_State Effective_Date Current_Supplier_State
123 ABC Inda Co HCM 2005-01-02 HN

Bản ghi chứa 1 cột cho giá trị ban đầu, và một cột cho giá trị hiện tại –> Không thể theo dõi lịch sử biến đổi nếu có nhiều lần thay đổi.

Type 4: Add history table

Phương pháp này sử dụng các bảng lịch sử history table. Bao gồm:

  • Một bảng lưu trữ giá trị hiện tại
  • Một bảng lữu trữ tất cả thay đổi

Surrogate Key trên 2 bảng này đều được tham chiếu tới fact để tăng cường hiệu quả truy vấn.

Supplier_key Supplier_Code Supplier_Name Supplier_State
124 ABC Inda Co HN

Bảng lịch sử:

Supplier_key Supplier_Code Supplier_Name Supplier_State Create_Date
123 ABC Inda Co HCM 2000-01-01
124 ABC Inda Co HN 2015-01-02

Type 6: Hybrid

Kết hợp cách tiếp cận từ loại 1,2,3 (6=1+2+3)

Khi bản ghi lần đầu tiên được thêm vào. Giá trị lich sử và giá trị hiện tại giống nhau.

Supplier_Key Row_Key Supplier_Code Supplier_Name Current_State Historical_State Start_Date End_Date Current_Flag
123 1 ABC Inda Co HCM HCM 2000-01-01 9999-12-31 Y

Khi Supplier State thay đổi:

  • Ghi đề current_flag của row 1 (Type 1)
  • Tạo bản ghi mới để theo dõi sự thay đổi (Type 2)
  • Lưu trữ giá trị lịch sử trong cột historical_state (Type 3)
Supplier_Key Row_Key Supplier_Code Supplier_Name Current_State Historical_State Start_Date End_Date Current_Flag
123 1 ABC Inda Co HCM HCM 2001 2005-01-02 N
123 2 ABC Inda Co HN HCM 2005-01-02 9999-12-31 Y

 

>> Xây dựng kiến thức nền tảng vững chắc về data warehouse, ETL với 2 khóa học data analyst và data engineer Cole, nếu bạn chưa biết công việc về dữ liệu nào sẽ phù hợp với bạn, liên hệ để được Cole tư vấn định hướng học tập miễn phí nhé. Xem chi tiết 2 khóa học:

T
Tác giả Cole Blog

Thủy Tiên

Viết về công nghệ, dữ liệu và định hướng nghề thực chiến.

Tác giả trên Cole Blog, phụ trách các bài viết giúp người đi làm học nhanh hơn, hiểu rõ hơn và áp dụng công nghệ vào công việc hiệu quả hơn.

18bài viết12.4kfollowers96klượt đọc

Bài viết khác từ tác giả này

Thảo luận

Đăng nhập để bình luận
Gửi bình luận
C
Cole BlogGợi ý thảo luận

Anh có thể đặt câu hỏi, góp ý hoặc lưu lại insight quan trọng sau khi đọc bài.