| 字段 | 代理键、业务键、属性、start_date、end_date、is_current |
|---|---|
| 变化处理 | 旧行关链、新增一行 |
| 事实关联 | 写入时取当时生效的代理键 |
| 支持 | 按历史属性回溯分析 |
两段式维护(关链加新增)
两段式维护(关链加新增)
-- 1) 关闭发生变化的当前版本
UPDATE dim_user SET end_date = DATE '2026-10-11', is_current = false
WHERE user_id IN (SELECT user_id FROM stg_user_changed) AND is_current = true;
-- 2) 插入新版本
INSERT INTO dim_user (user_sk, user_id, user_name, city, level, start_date, end_date, is_current)
SELECT seq_user_sk.NEXTVAL, user_id, user_name, city, level,
DATE '2026-10-11', DATE '9999-12-31', true
FROM stg_user_changed;事实表写入时要按事件时间匹配生效中的维度版本,而不是简单取 is_current = true,否则补历史数据会取到新版本。