ソースを参照

docs(kb/93): ADR-09 补 dwd 历史可变可接受论据

dwd 是 ods 可重建派生非历史唯一存储; ods 跨dt多版本是真源,
dwd 任何时点可从 ods 回放重建(全量 backfill 2h 跑通已实证),
故 N=30 滚动致 dwd 历史可变可接受,不可变性靠 ods 不靠 dwd。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
tianyu.chu 1 週間 前
コミット
f197af613f
1 ファイル変更1 行追加1 行削除
  1. 1 1
      kb/93-架构决策.md

+ 1 - 1
kb/93-架构决策.md

@@ -396,7 +396,7 @@
   - 每天全量(实测 2 小时)太重,不可每天跑
   - 滚动 N=30 是"覆盖退款窗 + 成本可控"的平衡点
 
-- **临时性**:N=30 滚动仍是"快照口径"(每天重算反映当前状态),非纯事件表。**目标态见 ADR-12**:支付事件(不筛 status,收全部 `payment_success_time IS NOT NULL`)+ 退款事件独立表,净值 = 支付 LEFT JOIN 退款 —— 届时支付事件不可变、无需回算窗,退款独立 append
+- **临时性 + dwd 历史可变可接受**:N=30 滚动是"快照口径"——每天重算最近 30 天,dwd 历史分区在滚动窗内随状态变化(如退款)而变,不满足"历史不可变"。**但这可接受**:dwd 是 ods 的可重建派生,不是历史的唯一存储;ods 跨 dt 保留同 id 多版本 = 历史真源,dwd 任何时点都能从 ods 回放重建(本次全量 backfill 从 ods 重建整个 dwd 2 小时跑通,已实证)。即"不可变性"靠上游 ods 保证、不靠 dwd —— dwd 历史怎么变都不丢数据。**目标态见 ADR-12**:支付事件(不筛 status,收全部 `payment_success_time IS NOT NULL`)+ 退款独立表,净值 = 支付 LEFT JOIN 退款,届时支付事件不可变、无需回算窗。演进时同样从 ods 回放拆建(路径已由本次全量 backfill 验证)
 
 - **后果**: