# 审计记录:删除 DWD 层 dwd_settlement_head_ex.settle_list 冗余列 ## 溯源 - 日期:2026-02-14(Asia/Shanghai) - Prompt-ID:P20260214-040000 - Prompt 原文:文件保存触发(database/migrations/20260214_drop_dwd_settle_list.sql)— 删除 DWD 层 settle_list 列的迁移脚本 ## 直接原因 `settle_list` JSONB 列存储结算明细 JSON,与 ODS 层 `payload` 中的 `settleList` 对象完全重复。ODS 层 `settlelist` 列已在同日迁移中删除,DWD 层该列同步清理。DWD 加载映射已移除对该列的写入。 ## Changed | 文件/对象 | 变更类型 | 说明 | |-----------|----------|------| | `database/migrations/20260214_drop_dwd_settle_list.sql` | 新增 | 迁移脚本:DROP COLUMN settle_list | | `billiards_dwd.dwd_settlement_head_ex` | DDL | 删除 `settle_list` JSONB 列(31→30 列) | | `tasks/dwd/dwd_load_task.py` | 已修改 | FACT_MAPPINGS 中 `dwd_settlement_head_ex` 的 `settle_list` 映射已移除 | | `docs/bd_manual/DWD/20260214_drop_dwd_settle_list.md` | 新增 | BD 手册 DWD 层变更记录 | ## Risk / Verify - 风险:若 DWD 加载映射未移除 `settle_list`,装载时将报列不存在错误 → 已确认映射已移除 - 风险:若有下游查询直接引用 `dwd_settlement_head_ex.settle_list`,将报错 → DWS 层不消费该列 - 验证:`information_schema.columns` 确认 `settle_list` 列不存在 - 验证:DWD 表列数 = 30 - 验证:ODS `payload->'settleList'` 仍可按需提取 - 回滚:`ALTER TABLE ... ADD COLUMN settle_list JSONB` + 从 ODS payload 回填