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 đó.
Mục lục
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_Key | Supplier_Code | Supplier_Name | Supplier_State |
---|---|---|---|
123 | ABC | FadiTek 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 | FadiTek 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 | FadiTek Co | HCM | 0 |
124 | ABC | FadiTek Co | HN | 1 |
- Dùng effective_date
Supplier_Key | Supplier_Code | Supplier_Name | Supplier_State | Start_Date | End_Date |
---|---|---|---|---|---|
123 | ABC | FadiTek 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 | FadiTek Co | CA | 2000-01-01 | N |
124 | ABC | FadiTek 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 | FadiTek 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 | FadiTek Co | HN |
Bảng lịch sử:
Supplier_key | Supplier_Code | Supplier_Name | Supplier_State | Create_Date |
---|---|---|---|---|
123 | ABC | FadiTek Co | HCM | 2000-01-01 |
124 | ABC | FadiTek 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 | FadiTek 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 | FadiTek Co | HCM | HCM | 2001 | 2005-01-02 | N |
123 | 2 | ABC | FadiTek Co | HN | HCM | 2005-01-02 | 9999-12-31 | Y |