45 lines
2.3 KiB
Markdown
45 lines
2.3 KiB
Markdown
|
|
# Skill: tm_scene_coverage_m 重点场景覆盖指标月表计算指导 (非 ODS 版)
|
|||
|
|
|
|||
|
|
## 1. 实现目标
|
|||
|
|
按场景粒度汇总覆盖、干扰、用户指标。通过关联桥接表与一级事实表,实现 100% 不直接读取 ODS 层。
|
|||
|
|
|
|||
|
|
## 2. 计算拓扑 (Topology)
|
|||
|
|
- **计算执行环境**:**HiveSQL**。
|
|||
|
|
- **基本架构**:基于桥接表 (`tm_scene_grid_coverage_m`) 与一级事实表 (`tm_grid_coverage_m`) 的空间关联聚合。
|
|||
|
|
- **数据流向**:
|
|||
|
|
1. 输入 A:`tm_scene_grid_coverage_m *` (提供场景-栅格对应关系)。
|
|||
|
|
2. 输入 B:`tm_grid_coverage_m *` (提供栅格指标及用户列表)。
|
|||
|
|
3. 输入 C:`td_scene #` (提供场景维表属性)。
|
|||
|
|
|
|||
|
|
## 3. 字段映射矩阵 (The Matrix)
|
|||
|
|
|
|||
|
|
| 目标字段 | 类型 | 取值逻辑 | 备注 |
|
|||
|
|
| :--- | :--- | :--- | :--- |
|
|||
|
|
| **`total_user_count`** | BIGINT | `approx_count_distinct(exploded_id)` | **跨栅格去重**,详见原语说明 |
|
|||
|
|
| **`rsrpcount`** | BIGINT | `SUM(g.rsrpcount)` | - |
|
|||
|
|
| **`avgrsrp`** | DECIMAL | `SUM(g.totalrsrp) / SUM(g.rsrpcount)` | 基于事实表累加值聚合 |
|
|||
|
|
| **`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) |
|
|||
|
|
| **`total_grid_count`** | BIGINT | `COUNT(DISTINCT regionid)` | 场景内总栅格数 |
|
|||
|
|
| **市场份额/VIP/高价值等** | - | **置空处理** | 严格遵循 `openspec.md` |
|
|||
|
|
|
|||
|
|
## 4. 关键计算原语 (Primitives)
|
|||
|
|
|
|||
|
|
- **无 ODS 用户数聚合原语**:
|
|||
|
|
```sql
|
|||
|
|
-- Step: 场景级用户数去重计算
|
|||
|
|
SELECT scene_id, approx_count_distinct(id)
|
|||
|
|
FROM tm_scene_grid_coverage_m s
|
|||
|
|
JOIN tm_grid_coverage_m g ON s.regionid = g.regionid AND s.indoor_flag = g.indoor_flag
|
|||
|
|
LATERAL VIEW EXPLODE(g.device_id_list) e AS id
|
|||
|
|
WHERE g.operator_name = 'telecom'
|
|||
|
|
GROUP BY scene_id
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 5. 存储与优化规范
|
|||
|
|
- 最终结果存入 PG `tm_scene_coverage_m`。
|
|||
|
|
- 严禁在脚本中出现任何 `ODS_` 开头的表名。
|