2.8 KiB
2.8 KiB
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去重统计。 - ❌ 口径错误: 行政区域总栅格数统计口径错误。
- ❌ 去重失效: 用户数统计(OTT)直接置为 NULL,未按照 Skill 要求进行跨栅格的
2.3 tm_scene_coverage_m (场景覆盖月表)
- compute.sql:
- ❌ 核心桥接缺失: 场景表
td_scene必须通过td_scene_grid_m才能关联到栅格数据。代码中直接 JOINtm_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。
- ❌ SQL 语法错误:
3. 改进建议 (Action Items)
- 引入桥接表: 在场景计算逻辑中强制加入
td_scene_grid_m。 - 重构去重逻辑: 汇总表的
user_cnt必须回到 ODS 层级通过device_id进行聚合,不能从事实表二次聚合。 - 对齐分类算法: 严格按照
build_type_specs.md实现CASE WHEN逻辑。 - 修复 SQL 语法: 修正别名冲突,并改用 PostGIS 标准聚类函数。
审计人: Antigravity 日期: 2026-05-03