| 更新 | MERGE / 分区重写 |
|---|---|
| 约束 | 时间戳单调 |
| 风险 | 重复更新竞态 |
MERGE 更新
MERGE 更新
MERGE INTO fact_order_flow t
USING stg_order_flow s ON t.order_id = s.order_id
WHEN MATCHED THEN UPDATE SET
t.pay_ts = coalesce(t.pay_ts, s.pay_ts),
t.ship_ts = coalesce(t.ship_ts, s.ship_ts)
WHEN NOT MATCHED THEN INSERT VALUES (s.order_id, s.create_ts, s.pay_ts, s.ship_ts);用 coalesce 保留首次到达的里程碑时间,避免补数回退已完成节点。