SCD2, SCD4A, Fact Append, Fact Snapshot¶
🔴 Rất quan trọng · Data Platform
SCD2 (Slowly Changing Dimension Type 2)¶
Mục đích: Lưu lại toàn bộ lịch sử thay đổi của dimension.
Cách hoạt động: Khi giá trị thay đổi, không UPDATE bản ghi cũ mà thêm bản ghi mới.
| customer_id | name | city | eff_dt | end_dt | rec_st |
|---|---|---|---|---|---|
| 101 | Nguyễn Văn A | Hà Nội | 2024-01-01 | 2025-06-30 | 0 |
| 101 | Nguyễn Văn A | HCM | 2025-07-01 | 9999-12-31 | 1 |
Trong Delta Lake: dùng MERGE với WHEN MATCHED → close record + INSERT new record.
👉 Xem chi tiết: SCD2 Compare-based – Chi tiết các bước
SCD4A (History Table)¶
Mục đích: Tách bảng hiện tại và bảng lịch sử riêng.
- Bảng current: Chỉ giữ bản mới nhất, UPDATE trực tiếp → query nhanh
- Bảng history: Mỗi thay đổi INSERT thêm → phục vụ audit
Lợi thế: Bảng current nhỏ gọn. Bảng history chỉ dùng khi cần audit/phân tích.
Fact Append¶
Mục đích: Chỉ thêm dữ liệu mới, không bao giờ sửa dữ liệu cũ.
Ví dụ: Bảng giao dịch (transactions). Mỗi giao dịch mới được INSERT, không ai sửa giao dịch đã xảy ra.
Đặc điểm: Append-only, không cần MERGE. Đơn giản và nhanh nhất.
Fact Snapshot¶
Mục đích: Chụp lại toàn bộ trạng thái của dữ liệu tại một thời điểm.
Ví dụ: Mỗi ngày chụp lại toàn bộ số dư tài khoản. Nhờ đó, ta biết số dư của KH X vào ngày bất kỳ.
Đặc điểm: Dữ liệu lớn (mỗi ngày = 1 bản sao), nhưng rất hữu ích cho phân tích xu hướng, so sánh theo thời gian.