在准备环境前提交次全部更改。

This commit is contained in:
Neo
2026-02-19 08:35:13 +08:00
parent ded6dfb9d8
commit 4eac07da47
1387 changed files with 6107191 additions and 33002 deletions

View File

@@ -0,0 +1,36 @@
# 审计记录:删除 ODS 层 settlelist 冗余列
## 溯源
- 日期2026-02-14Asia/Shanghai
- Prompt-IDP20260214-023000
- Prompt 原文:删除 ODS 层 settlement_records / recharge_settlements 的 settlelist jsonb 列settlelist 与 payload 列数据重复)
## 直接原因
`settlelist` jsonb 列与 `payload` jsonb 列存储内容重复。`payload` 存储完整 API 响应 JSON已包含 `settleList` 对象),`settlelist` 是入库时额外提取的副本。DWD 加载逻辑已改为从 `payload` 提取,`settlelist` 列不再被消费,属于冗余存储。
## Changed
| 文件/对象 | 变更类型 | 说明 |
|-----------|----------|------|
| `database/migrations/20260214_drop_ods_settlelist.sql` | 新增 | 迁移脚本DROP COLUMN settlelist2 张表) |
| `billiards_ods.settlement_records` | DDL | 删除 `settlelist` jsonb 列 |
| `billiards_ods.recharge_settlements` | DDL | 删除 `settlelist` jsonb 列 |
| `tasks/dwd/dwd_load_task.py` | 修改 | FACT_MAPPINGS 中 `dwd_settlement_head_ex.settle_list` 改为从 `payload->'settleList'` 提取 |
| `scripts/ods_columns.json` | 修改 | 移除两表的 `settlelist` 列 |
| `scripts/run_compare_v3_fixed.py` | 修改 | 移除 `classify_ods_only``settlelist` 的特殊分类 |
| `docs/reports/api_ods_comparison_v3_fixed.md` | 自动生成 | 重新生成比对报告ODS 独有 49→47完全对齐 7→9 |
| `docs/bd_manual/ODS/20260214_drop_ods_settlelist.md` | 新增 | BD 手册变更记录 |
| `docs/README.md` | 修改 | 子目录索引新增 ai_audit/、api-reference/、bd_manual/ODS/test-json-doc/ 标记废弃 |
| `database/README.md` | 修改 | 迁移脚本列表新增 20260214_drop_ods_settlelist.sql |
## Risk / Verify
- 风险:若 DWD 加载逻辑尚未改为从 `payload` 提取 settleList删列后 DWD 装载将失败 → 已修复(`dwd_load_task.py` 映射改为 `payload->'settleList'`
- 风险:历史数据中 `payload IS NULL` 的行将永久丢失 settleList 信息
- 验证:迁移已执行,`information_schema.columns` 确认 `settlelist` 列不存在0 行返回)
- 验证:两表各 71 列66 业务 + 5 meta符合预期
- 验证:`payload->'settleList'` 可正常提取settlement_records: 54937 行recharge_settlements: 3259 行)
- 验证比对报告重新生成ODS 独有从 49 降至 47settlement_records 和 recharge_settlements 均完全对齐
- 回滚:`ALTER TABLE ... ADD COLUMN settlelist jsonb` + `UPDATE ... SET settlelist = payload->'settleList'`