ctc_poc2026/target_table_skills/tm_grid_coverage_m.md

2.7 KiB
Raw Blame History

Skill: tm_grid_coverage_m 栅格级覆盖指标月表计算指导 (严谨矩阵版)

1. 实现目标

计算 20m 栅格粒度的综合覆盖指标,整合 OTT 全网大盘与 MR 本网明细数据。

2. 计算拓扑 (Topology)

  • 计算执行环境HiveSQL
  • 基本架构:采用 MR 分支 (indoor_flag ∈ {0, 1}) UNION ALL OTT 分支 (indoor_flag = -1)

3. 维度缺省值规范

  • 对于不具备小区级信息的 OTT 分支,cellkeypci 统一填充 -1
  • 对于 OTT 不具备的频段信息,freq 填充 'all'

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

目标字段 类型 OTT 分支逻辑 (indoor_flag = -1) MR 分支逻辑 (indoor_flag = 0/1) 缺省处理
year_month VARCHAR 原始字段 原始字段 -
data_type INTEGER 原始值 (1:数准, 2:腾讯) 固定值 -1 -
regionid BIGINT 原始字段 原始字段 -
operator_name VARCHAR 固定值 'telecom' (需先过滤 OTT 原始数据) 固定值 'telecom' -
network_class VARCHAR 原始字段 依据表源判定 ('4G' 或 '5G_SA') -
freq VARCHAR 原始字段 原始字段 'all'
indoor_flag SMALLINT 固定值 -1 原始值 (0 或 1) -
rsrpcount BIGINT SUM(rsrpcount) 4G: SUM(rsrpcount)
5G: SUM(ssrsrpcount)
严禁混淆 4/5G 采样点字段
mr_cover_rate_105 DECIMAL rsrpgoodcount_105 / rsrpcount 栅格内采样点达标率
mr_cover_rate_110 DECIMAL rsrpgoodcount_110 / rsrpcount 栅格内采样点达标率
is_covered_105 SMALLINT CASE WHEN (rsrpgoodcount_105 / rsrpcount) >= 0.9 THEN 1 ELSE 0 END 栅格达标标记 (105口径)
is_covered_110 SMALLINT CASE WHEN (rsrpgoodcount_110 / rsrpcount) >= 0.9 THEN 1 ELSE 0 END 栅格达标标记 (110口径)
totalrsrp DECIMAL SUM(totalrsrp) SUM(totalrsrp) -
avgrsrp DECIMAL SUM(totalrsrp) / SUM(rsrpcount) SUM(totalrsrp) / SUM(rsrpcount) -
top1_cellkey VARCHAR NULL FIRST_VALUE(cellkey) OVER (PARTITION BY regionid ORDER BY rsrpcount DESC) -
overlap_mrcount BIGINT 0 SUM(overlap_mrcount) -

5. 关键计算原语 (Primitives)

  • 聚合方式必须基于原始累加值total和计数count进行聚合严禁直接对均值字段执行 AVG()
  • 空值污染防护:非本源支持的指标(如 OTT 分支的网络质差项)必须硬编码为 NULL0

6. 特殊业务过滤

  • 依据 openspec.md忽略所有市场份额、驻留比、高价值、VIP 相关字段,脚本中直接置空。