# Skill: td_building_cell_m 楼宇小区桥接表计算指导 (严谨矩阵版) ## 1. 实现目标 建立电信小区与楼宇实体的业务归属关系,支撑楼宇维度的 Top 小区分析。 ## 2. 计算拓扑 (Topology) - **计算执行环境**:**HiveSQL**。 - **基本架构**:采用基于 `indoor_flag` 的三重口径聚合(室内、室外、全量)。 - **数据流向**: 1. 输入 A:`td_building_grid_m *` (提供楼宇-栅格映射)。 2. 输入 B:`ODS_MR_GRID_SCELL` (提供小区-栅格采样指标)。 ## 3. 字段映射矩阵 (The Matrix) | 目标字段 | 类型 | 取值逻辑 | 备注 | | :--- | :--- | :--- | :--- | | **`building_id`** | BIGINT | 来自 `td_building_grid_m` | - | | **`cellkey`** | VARCHAR | 映射 ODS 原始字段 | 电信小区唯一标识 | | **`indoor_flag`** | SMALLINT | **对齐 Join**:`td_building_grid_m.indoor_flag` | 包含 -1, 0, 1 | | **`rsrpcount`** | BIGINT | 4G: `SUM(rsrpcount)`
5G: `SUM(ssrsrpcount)` | **严禁混淆字段** | ## 4. 关键计算原语 (Primitives) - **多口径关联**: - **明细映射 (0/1)**:`ON a.regionid = b.regionid AND a.indoor_flag = b.indoor_flag`。 - **全量映射 (-1)**:`ON a.regionid = b.regionid AND a.indoor_flag = -1` (此时不检查 MR 侧的 flag,进行全量累加)。 - **权重计算**:按 `building_id`, `cellkey`, `indoor_flag` 分组聚合,计算总采样点数。 - **运营商过滤 (强制)**:只提取 `operator_name = 'telecom'` 的记录。 ## 5. 约束 - 全量保留有采样的小区映射,不进行 Top N 截断,保留数据完整性。 - 必须确保 `td_building_grid_m` 已同步回 Hive。