50 lines
1.8 KiB
Markdown
50 lines
1.8 KiB
Markdown
|
|
# td_building_cell_m 执行说明
|
|||
|
|
|
|||
|
|
## 表说明
|
|||
|
|
楼宇小区桥接月表,建立电信小区与楼宇实体的业务归属关系,支撑楼宇维度的Top小区分析。
|
|||
|
|
|
|||
|
|
## 执行步骤
|
|||
|
|
|
|||
|
|
### 1. 前置依赖
|
|||
|
|
**必须先执行以下表**:
|
|||
|
|
- `td_building_grid_m`(必须已同步回Hive,提供楼宇-栅格映射)
|
|||
|
|
|
|||
|
|
### 2. 在Hive中执行计算
|
|||
|
|
```bash
|
|||
|
|
hive -hivevar:year_month=2026-05 -f src/td_building_cell_m/compute.sql
|
|||
|
|
```
|
|||
|
|
或直接在Hive CLI中执行 `src/td_building_cell_m/compute.sql` 中的SQL
|
|||
|
|
|
|||
|
|
### 3. 执行同步脚本
|
|||
|
|
```bash
|
|||
|
|
bash src/td_building_cell_m/sync.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 4. 验证数据
|
|||
|
|
在PG中执行:
|
|||
|
|
```sql
|
|||
|
|
SELECT COUNT(*) FROM dmk.td_building_cell_m; -- 应大于0
|
|||
|
|
SELECT year_month, building_id, cellkey, indoor_flag, rsrpcount
|
|||
|
|
FROM dmk.td_building_cell_m LIMIT 10; -- 检查多口径关联结果
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 计算侧与持久化
|
|||
|
|
- **计算侧**:HiveSQL(默认侧)
|
|||
|
|
- **持久化侧**:PostgreSQL
|
|||
|
|
- **双侧冗余**:本表需在Hive和PG双侧保留
|
|||
|
|
|
|||
|
|
## 关键计算逻辑
|
|||
|
|
1. **多口径关联**:
|
|||
|
|
- 明细映射(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)
|
|||
|
|
2. **运营商过滤**:只提取 operator_name = 'telecom' 的记录
|
|||
|
|
3. **4G/5G采样点字段**:4G用rsrpcount,5G用ssrsrpcount(严禁混淆)
|
|||
|
|
4. **聚合分组**:按 building_id, cellkey, indoor_flag 分组,SUM(rsrpcount)
|
|||
|
|
5. **全量保留**:有采样的小区映射全保留,不进行Top N截断
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
1. 必须确保 td_building_grid_m 已同步回Hive
|
|||
|
|
2. 4G/5G采样点字段严禁混淆
|
|||
|
|
3. cell_geom由GENERATED列自动生成(当cell_wkt或cell_lon/cell_lat存在时)
|
|||
|
|
4. 同步脚本中的数据库连接参数需根据实际情况修改
|