2.4 KiB
2.4 KiB
Skill: tm_building_coverage_m 楼宇覆盖指标月表计算指导 (严谨矩阵版)
1. 实现目标
计算楼宇实体的综合覆盖质量与业务分类标签。
2. 计算拓扑 (Topology)
- 计算执行环境:HiveSQL。
- 基本架构:采用基于
indoor_flag的三重口径聚合。 - 数据流向 (二级聚合):
- 输入 A:
tm_grid_coverage_m *(基础事实表)。 - 输入 B:
td_building_grid_m *(同步自 PG 的冗余桥接表)。 - 注意:本表不直接读取 ODS,以确保栅格与楼宇指标的一致性。
- 输入 A:
3. 字段映射矩阵 (The Matrix)
| 目标字段 | 类型 | OTT 分支逻辑 (indoor_flag = -1) | MR 分支逻辑 (indoor_flag = 0/1) | 缺省处理 |
|---|---|---|---|---|
building_id |
BIGINT | 来自桥接表 | 来自桥接表 | - |
data_type |
INTEGER | 原始值 (1/2) | 固定值 -1 | - |
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) |
- |
building_type |
VARCHAR | 根据 specs\build_type_specs.md 判定 | NULL | 映射至标准 Key |
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) | |
top1_cellkey |
VARCHAR | 关联 td_building_cell_m 获取 |
关联 td_building_cell_m 获取 |
- |
4. 关键计算原语 (Primitives)
- 等值关联:
ON a.regionid = b.regionid AND a.indoor_flag = b.indoor_flag AND a.data_type = b.data_type。 - 楼宇分类逻辑:智能体需实现全套
CASE WHEN判别逻辑。 - 指标聚合:严格基于原始累加值(total)进行 SUM 聚合。
5. 存储与优化规范
- 将计算结果同步入库 PG
tm_building_coverage_m。 - 忽略市场份额、高价值、VIP 字段。