ctc_poc2026/target_table_skills/tm_region_coverage_m.md

2.7 KiB
Raw Permalink Blame History

Skill: tm_region_coverage_m 行政区域覆盖聚合月表计算指导 (严谨矩阵版)

1. 实现目标

按省、市、区县、全国行政层级汇总覆盖统计指标,支撑多维管理报表。

2. 计算拓扑 (Topology)

  • 计算执行环境HiveSQL
  • 基本架构采用分层聚合District -> City -> Province -> Nation后执行 UNION ALL
  • 数据流向 (二级聚合)
    1. 输入 Atm_grid_coverage_m * (提供基础栅格指标)。
    2. 输入 Btd_region # (提供行政编码回填映射)。

3. 字段映射矩阵 (The Matrix)

目标字段 类型 OTT 分支逻辑 (indoor_flag = -1) MR 分支逻辑 (indoor_flag = 0/1) 备注
region_level VARCHAR 根据聚合分支固定: nation/province/city/district 同 OTT 分支 -
region_code BIGINT 关联回填:根据当前层级关联 td_region.region_code 关联回填:根据当前层级关联 td_region.region_code 见原语说明
indoor_flag SMALLINT 固定值 -1 原始值 (0 或 1) -
user_cnt BIGINT approx_count_distinct(device_id_list) 0 必须跨栅格去重
avgrsrp DECIMAL SUM(totalrsrp) / SUM(rsrpcount) SUM(totalrsrp) / SUM(rsrpcount) 基于栅格累加
grid_count BIGINT COUNT(DISTINCT regionid) COUNT(DISTINCT regionid) 总栅格数等同于采样栅格数
mr_grid_count BIGINT COUNT(DISTINCT regionid) 有采样栅格总数 (作为达标率的分母)
covered_grid_count_105 BIGINT SUM(is_covered_105) 达标栅格总数 (作为 105 达标率的分子)
covered_grid_count_110 BIGINT SUM(is_covered_110) 达标栅格总数 (作为 110 达标率的分子)
grid_cover_rate_105 DECIMAL covered_grid_count_105 / mr_grid_count 行政区域级栅格达标率 (-105)
grid_cover_rate_110 DECIMAL covered_grid_count_110 / mr_grid_count 行政区域级栅格达标率 (-110)

4. 关键计算原语 (Primitives)

  • 编码动态回填逻辑
    • 区县级聚合时:JOIN td_region ON grid.districtcode = td_region.districtcode
    • 地市级聚合时:JOIN td_region ON grid.citycode = td_region.citycode AND region_level = 'city'
    • 省级聚合时:JOIN td_region ON grid.provincecode = td_region.provincecode AND region_level = 'province'
  • 去重原语:在任何非栅格粒度上统计用户数,必须显式调用 approx_count_distinct

5. 存储与优化规范

  • 计算完成后同步入库 PG tm_region_coverage_m
  • 必须确保 td_region # 已入库且处于有效状态。