ctc_poc2026/docs/audit/level_3_audit_report.md

2.8 KiB
Raw Blame History

DMK 项目第三阶段代码生成审计报告 (Level 3 Audit)

本报告针对第三阶段(区域、场景及空间聚类汇总层)四张表进行审计。

1. 总体审计结论 (Executive Summary)

Caution

审计结论:不通过 (FAIL) 发现致命逻辑缺陷,场景表无法关联数据,聚类表存在 SQL 语法错误。

检查项 状态 主要发现
数据关联性 致命 tm_scene_coverage_m 漏掉核心桥接表,无法产出数据。
执行可靠性 失败 tm_cluster_area_m 存在 SQL 别名不一致,运行时报错。
指标准确性 错误 grid_count 统计口径错误(仅统计有数栅格)。
业务完整性 缺失 未实现 build_type_specs.md 要求的楼宇分类逻辑。

2. 详细审计详情 (Detailed Findings)

2.1 tm_building_coverage_m (楼宇覆盖月表)

  • compute.sql:
    • 口径错误: grid_count 仅统计了 tm_grid_coverage_m 中出现的栅格,未包含无采样的空白栅格,导致楼宇覆盖率计算结果虚高。
    • 业务缺失: 忽略了 Skill 中强制要求的 specs\build_type_specs.md 判定逻辑。

2.2 tm_region_coverage_m (行政区域覆盖月表)

  • compute.sql:
    • 去重失效: 用户数统计OTT直接置为 NULL未按照 Skill 要求进行跨栅格的 approx_count_distinct 去重统计。
    • 口径错误: 行政区域总栅格数统计口径错误。

2.3 tm_scene_coverage_m (场景覆盖月表)

  • compute.sql:
    • 核心桥接缺失: 场景表 td_scene 必须通过 td_scene_grid_m 才能关联到栅格数据。代码中直接 JOIN tm_grid_coverage_m 导致关联键失效scene 表无 regionid
    • 统计源错误: 用户数去重必须读取 ODS OTT 原始 ID代码错误地读取了已经过聚合的栅格事实表。

2.4 tm_cluster_area_m (聚类区域月表)

  • compute.sql:
    • SQL 语法错误: INSERT 语句中 FROM tmp_cluster_metrics trm 定义了别名 trm,但在字段选择中大量使用了 cm.xxx,会导致 PG 执行报错。
    • 空间函数疑云: ST_ClusterWithinWin 非 PostGIS 标准函数,建议检查环境是否支持或改用 ST_ClusterDBSCAN

3. 改进建议 (Action Items)

  1. 引入桥接表: 在场景计算逻辑中强制加入 td_scene_grid_m
  2. 重构去重逻辑: 汇总表的 user_cnt 必须回到 ODS 层级通过 device_id 进行聚合,不能从事实表二次聚合。
  3. 对齐分类算法: 严格按照 build_type_specs.md 实现 CASE WHEN 逻辑。
  4. 修复 SQL 语法: 修正别名冲突,并改用 PostGIS 标准聚类函数。

审计人: Antigravity 日期: 2026-05-03