Blog

[Nhập môn Data Warehouse] Các dạng lưu trữ bảng chiều (Dimension)

Trong DW, 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 DW, 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, DW phải cập nhật sự thay đổi đó.

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 DW. 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_KeySupplier_CodeSupplier_NameSupplier_State
123ABCFadiTek CoHCM

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_KeySupplier_CodeSupplier_NameSupplier_State
123ABCFadiTek CoHN

Ư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_KeySupplier_CodeSupplier_NameSupplier_StateVersion.
123ABCFadiTek CoHCM0
124ABCFadiTek CoHN1
  • Dùng effective_date
Supplier_KeySupplier_CodeSupplier_NameSupplier_StateStart_DateEnd_Date
123ABCFadiTek CoHCM2000-01-012005-01-02
124ABCAcme Supply CoHN2005-01-029999-12-31
  • Dùng effective_date, flag
Supplier_KeySupplier_CodeSupplier_NameSupplier_StateEffective_DateCurrent_Flag
123ABCFadiTek CoCA2000-01-01N
124ABCFadiTek CoIL2005-01-02Y

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_KeySupplier_CodeSupplier_NameOriginal_Supplier_StateEffective_DateCurrent_Supplier_State
123ABCFadiTek CoHCM2005-01-02HN

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_keySupplier_CodeSupplier_NameSupplier_State
124ABCFadiTek CoHN

Bảng lịch sử:

Supplier_keySupplier_CodeSupplier_NameSupplier_StateCreate_Date
123ABCFadiTek CoHCM2000-01-01
124ABCFadiTek CoHN2015-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_KeyRow_KeySupplier_CodeSupplier_NameCurrent_StateHistorical_StateStart_DateEnd_DateCurrent_Flag
1231ABCFadiTek CoHCMHCM2000-01-019999-12-31Y

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_KeyRow_KeySupplier_CodeSupplier_NameCurrent_StateHistorical_StateStart_DateEnd_DateCurrent_Flag
1231ABCFadiTek CoHCMHCM20012005-01-02N
1232ABCFadiTek CoHNHCM2005-01-029999-12-31Y

>> Đọc thêm:

KHOÁ HỌC TRUY VẤN VÀ THAO TÁC DỮ LIỆU SQL TỪ CƠ BẢN ĐẾN NÂNG CAO

KHÓA HỌC DATA WAREHOUSE : TỔNG HỢP, CHUẨN HÓA VÀ XÂY DỰNG KHO DỮ LIỆU TRONG DOANH NGHIỆP

KHÓA HỌC DATA MODEL – THIẾT KẾ MÔ HÌNH DỮ LIỆU TRONG DOANH NGHIỆP

LỘ TRÌNH TRỞ THÀNH DATA ENGINEER CHO NGƯỜI MỚI BẮT ĐẦU

DATA ENGINEER LÀ GÌ? CÔNG VIỆC CHÍNH CỦA DATA ENGINEER? CÁC KỸ NĂNG CẦN THIẾT

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *