3.8 KiB
3.8 KiB
审计记录:API vs ODS 比对 v3-fixed
基本信息
- 日期:2026-02-14(Asia/Shanghai)
- Prompt-ID:P20260214-003000
- 原始原因:用户 Prompt — "还是不准,比如assistant_accounts_master(助教账号主数据)的last_update_name,命名Json里就有,再仔细比对下"
- 直接原因:v3 比对仅从 JSON 样本提取字段,JSON 样本是单条记录快照,可能缺少条件性返回的字段(如
last_update_name),导致误报为"ODS独有"。需改用 API 参考文档(.md)的"响应字段详解"章节作为主要字段来源。
修改方案
完全重写 scripts/run_compare_v3_fixed.py:
- 从 .md 文档"四、响应字段详解"章节精确提取字段(排除请求参数、跨表关联等章节)
- JSON 样本作为补充来源(union)
- 对 settlement_records / recharge_settlements 的 siteProfile 子字段不提取(ODS 中存为 siteprofile jsonb 单列)
- 对 table_fee_discount_records 的 tableProfile/siteProfile 展开字段正确分类
- 对 stock_goods_category_tree 的 categoryBoxes 正确识别为 ODS jsonb 列
- 对所有 ODS 独有字段进行详细分类说明
Changed
| 文件 | 变更类型 | 说明 |
|---|---|---|
scripts/run_compare_v3_fixed.py |
重写 | 完全重写字段提取和比对逻辑 |
docs/reports/api_ods_comparison_v3_fixed.json |
新建 | JSON 格式比对结果 |
docs/reports/api_ods_comparison_v3_fixed.md |
新建 | Markdown 格式比对报告 |
docs/ai_audit/prompt_log.md |
追加 | 新增 P20260214-003000 条目 |
比对结论
- 22 张 ODS 表全部比对
- API 独有字段:0(所有 API 文档中的响应字段在 ODS 中都有对应列)
- ODS 独有字段:51 列,分类如下:
- API 后续版本新增字段:38 列(文档快照未覆盖,但 ODS 已通过 ETL 动态发现并入库)
- tableProfile/siteProfile 嵌套对象展开字段:8 列(table_fee_discount_records)
- ODS 额外添加的 tenant_id:2 列(assistant_cancellation_records、payment_transactions)
- ODS jsonb 列(settlelist):2 列(settlement_records、recharge_settlements)
- ODS 后续版本新增字段:1 列(site_tables_master.order_id)
- 完全对齐表:7 张(assistant_accounts_master、refund_transactions、platform_coupon_redemption_records、stock_goods_category_tree、goods_stock_movements、goods_stock_summary、site_tables_master 除 order_id 外)
- 无需 ALTER TABLE
Risk / Verify
- 风险:纯分析脚本和报告,无运行时影响,不修改数据库或 ETL 逻辑
- 验证:
- 确认
assistant_accounts_master的last_update_name被正确识别为匹配字段(62:62 完全对齐) - 确认 API 独有字段总数为 0
- 确认 ODS 独有字段全部有分类说明
- 确认
Change Impact Review
- 判定:无逻辑改动
- 本次变更为纯分析脚本(一次性工具)和报告文档,不涉及 ETL Connector、业务规则、数据处理逻辑、API 行为或数据库 schema
- 文档同步评估:
product.md— 无需更新(产品功能未变)tech.md— 无需更新(技术栈未变)structure.md— 无需更新(目录结构未变,临时分析脚本不列入)README.md— 无需更新(运行方式未变)docs/bd_manual/— 无需更新(无表结构变更)gui/README.md/scripts//tasks//database//tests/— 均无需更新
- 回归范围:无(纯分析产出,不影响任何运行时代码路径)
- 建议验证:
python scripts/run_compare_v3_fixed.py确认输出 API独有=0