202 lines
22 KiB
Markdown
202 lines
22 KiB
Markdown
|
|
# POC-TSG匹配测试用例 DMK 库表清单
|
|||
|
|
|
|||
|
|
## 1. 设计结论
|
|||
|
|
|
|||
|
|
本次查询服务建议建设 `dmk` 模式下的两类表:`td_` 维度/配置表和 `tm_` 月粒度业务指标表。设计不采用“一个业务一两张超宽表”的方式,而是按楼宇、区域栅格、重点场景、聚类质差、报表导出五个查询主题拆分指标表;在各 `tm_` 表中回填高频筛选、排序、列表展示字段,减少 Java 查询时的运行时关联。
|
|||
|
|
|
|||
|
|
业界实践可提炼为三点:
|
|||
|
|
|
|||
|
|
- 查询服务层优先围绕接口查询模式做反范式宽表,冗余常用维度字段,避免高频 Join。
|
|||
|
|
- 维度表仍需保留,作为枚举、区域、楼宇、场景、图层口径的统一治理来源,避免不同指标表语义漂移。
|
|||
|
|
- GIS 字段以 WKT 文本作为接口和数据交换口径,同时在 PostgreSQL/PostGIS 中使用生成列转换为 `geometry`,并建立 GiST 空间索引,兼顾 WKT 呈现和空间过滤性能;GeoServer 图层可按 `geom_column` 直接发布,也可在视图中统一别名为 `geom`。
|
|||
|
|
|
|||
|
|
## 2. 命名和建模约定
|
|||
|
|
|
|||
|
|
| 项 | 约定 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 数据库 | PostgreSQL + PostGIS |
|
|||
|
|
| Schema | `dmk` |
|
|||
|
|
| 维度/配置表 | `td_` 开头 |
|
|||
|
|
| 指标/业务表 | `tm_` 开头 |
|
|||
|
|
| 时间粒度 | 月账期,统一字段 `year_month`,保留 `year`、`month` |
|
|||
|
|
| GIS 存储 | 原始/接口字段使用 `*_wkt`,数据库生成 `*_geom` 空间列 |
|
|||
|
|
| 坐标系 | EPSG:4326 |
|
|||
|
|
| 分区建议 | 数据量大的 `tm_*_m` 表按 `year_month` 做月分区或冷热分层 |
|
|||
|
|
| 字段命名 | 优先沿用 PRD 和接口清单中的 `provincecode`、`citycode`、`regionid`、`x_offset_20`、`operator_name`、`network_class`、`rsrpcount`、`avgrsrp` 等字段 |
|
|||
|
|
|
|||
|
|
## 3. 库表总览
|
|||
|
|
|
|||
|
|
### 3.1 维度/配置表
|
|||
|
|
|
|||
|
|
| 表名 | 粒度 | 主要用途 | 支撑接口/场景 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `td_account_period` | 数据来源 + 月账期 | 可查询账期 | `/api/common/account-periods` |
|
|||
|
|
| `td_region` | 行政区域 | 省/市/区县树、分权分域、GIS 钻取 | `/api/common/region-tree`、质差地图 |
|
|||
|
|
| `td_dict_item` | 字典类型 + 字典值 | 枚举统一管理 | `/api/common/dict`、`/api/common/dict/types` |
|
|||
|
|
| `td_metric_definition` | 模块 + 指标 + 阈值 | 指标口径、算法说明 | `/api/common/metric-definitions`、报表口径弹窗 |
|
|||
|
|
| `td_layer_config` | 图层类型 + 图层角色 + 渲染模式 | GeoServer 图层基础配置 | 楼宇/栅格/场景/工参/聚类/质差 WMS 图层 |
|
|||
|
|
| `td_layer_metric` | 图层类型 + 指标 | 图层指标白名单和默认样式 | `/api/common/layer-metrics` |
|
|||
|
|
| `td_layer_legend` | 账号 + 图层 + 指标 | 自定义图例配置 | `/api/layers/legends/*` |
|
|||
|
|
| `td_grid` | 栅格 | 栅格空间维度和中心点 | 栅格详情、空间关联、GeoServer 发布 |
|
|||
|
|
| `td_cell_param_m` | 月账期 + 小区 + 网络制式 | 工参基础信息 | `/api/layers/cells`、`/api/layers/cells/detail` |
|
|||
|
|
| `td_building` | 楼宇 | 楼宇基础属性、AOI、楼宇类型 | `/api/buildings/*`、`/api/ott/building-report` |
|
|||
|
|
| `td_building_grid_m` | 月账期 + 楼宇 + 栅格 + 运营商 + 网络制式 + 频段 + 室内外 | 楼宇-栅格桥接、楼宇图层 | `/api/buildings/layer` |
|
|||
|
|
| `td_building_cell_m` | 月账期 + 楼宇 + 小区 + 运营商 + 网络制式 + 频段 + 室内外 | 楼宇-小区桥接、楼宇小区关系 | `/api/buildings/cells` |
|
|||
|
|
| `td_scene` | 重点场景 | 场景基础属性、AOI、场景类型 | `/api/scenes/*`、`/api/ott/scene-report` |
|
|||
|
|
| `td_cluster_threshold` | 账号 + 聚类类型 + 网络制式 | 在线调整聚类阈值 | `/api/clusters/thresholds/*` |
|
|||
|
|
| `td_custom_region` | 用户自定义区域 | GIS 绘制区域持久化和复查 | `/api/grids/custom-region` |
|
|||
|
|
|
|||
|
|
### 3.2 业务指标表
|
|||
|
|
|
|||
|
|
| 表名 | 粒度 | 主要用途 | 支撑接口/场景 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `tm_grid_coverage_m` | 月账期 + 栅格 + 运营商 + 网络制式 + 频段 + 室内外 | 栅格级覆盖指标、GIS 渲染、单栅格详情 | `/api/grids/layer`、`/api/grids/detail`、区域/场景栅格聚合 |
|
|||
|
|
| `tm_region_coverage_m` | 月账期 + 行政区域 + 运营商 + 网络制式 + 频段 + 室内外 | 区域概览、覆盖统计、地市级 OTT 报表 | `/api/grids/overview`、`/api/grids/coverage-stats`、`/api/ott/city-report` |
|
|||
|
|
| `tm_building_coverage_m` | 月账期 + 楼宇 + 运营商 + 网络制式 + 频段 + 室内外 | 楼宇图层、概览、室内无线覆盖、竞对对比、4G/5G_SA 用户与市场份额、报表 | `/api/buildings/overview`、`/api/buildings/layer`、`/api/buildings/compare`、`/api/buildings/report` |
|
|||
|
|
| `tm_scene_grid_coverage_m` | 月账期 + 场景 + 栅格 + 运营商 + 网络制式 + 频段 + 室内外 | 场景栅格图层、场景-栅格覆盖 | `/api/scenes/layer` |
|
|||
|
|
| `tm_building_user_wifi_m` | 月账期 + 楼宇 + 运营商 | 楼宇 WiFi 用户、WiFi 市场份额和 WiFi 信号强度 | `/api/buildings/detail` |
|
|||
|
|
| `tm_scene_coverage_m` | 月账期 + 场景 + 运营商 + 网络制式 + 频段 + 室内外 | 重点场景概览、用户分析、单场景覆盖扩展、对比、报表 | `/api/scenes/overview`、`/api/scenes/user-analysis`、`/api/scenes/detail`、`/api/ott/scene-report` |
|
|||
|
|
| `tm_cell_grid_coverage_m` | 月账期 + 数据来源 + 运营商 + 网络制式 + 频段 + 室内外 + 小区 + 覆盖栅格 | 小区详情、覆盖扩展指标、单小区覆盖栅格、栅格与小区连线 | `/api/layers/cells/detail`、`/api/layers/cells/cover-grid`、`/api/grids/detail` |
|
|||
|
|
| `tm_cluster_area_m` | 月账期 + 聚类区域 | 聚类清单、覆盖扩展指标、加权得分、多维分析、聚类 WMS | `/api/clusters/overview`、`/api/clusters/list`、`/api/clusters/detail`、`/api/clusters/score` |
|
|||
|
|
| `tm_cluster_feedback` | 反馈记录 | 质差区域问题根因和解决措施 | `/api/clusters/feedback/*` |
|
|||
|
|
| `tm_poor_region_metric_m` | 月账期 + 区域 + 统计页签 + 质差类型 + 指标分组 + 场景类型 + 网络制式 + 指标 | 质差场景概览、趋势、地图、排名 | `/api/poor-scenes/summary`、`/api/poor-scenes/trend`、`/api/poor-scenes/map`、`/api/poor-scenes/ranking` |
|
|||
|
|
| `tm_poor_scene_list_m` | 月账期 + 质差场景记录 | 质差场景清单和导出 | `/api/poor-scenes/list`、`/api/poor-scenes/export` |
|
|||
|
|
| `tm_poor_cell_list_m` | 月账期 + 质差/超忙小区记录 | 质差小区、超忙小区清单和导出 | `/api/poor-scenes/cells`、`/api/poor-scenes/export` |
|
|||
|
|
| `tm_export_task` | 导出任务 | 异步导出任务状态、下载、取消 | `/api/common/export-tasks/*`、各导出接口 |
|
|||
|
|
|
|||
|
|
## 4. 主题域设计说明
|
|||
|
|
|
|||
|
|
### 4.1 通用配置域
|
|||
|
|
|
|||
|
|
包含 `td_account_period`、`td_region`、`td_dict_item`、`td_metric_definition`、`td_layer_config`、`td_layer_metric`、`td_layer_legend`、`tm_export_task`。该域不参与大规模指标计算,主要支撑通用筛选、口径说明、图层配置、导出任务。
|
|||
|
|
|
|||
|
|
`td_layer_config` 通过 `layer_role` 区分基础图层、视图层或发布层,通过 `geom_column` 明确 GeoServer 发布时实际使用的几何列名;若服务侧采用视图输出,则可统一别名为 `geom`。
|
|||
|
|
|
|||
|
|
### 4.2 区域栅格域
|
|||
|
|
|
|||
|
|
核心表为 `td_grid`、`tm_grid_coverage_m`、`tm_region_coverage_m`。`tm_grid_coverage_m` 保留栅格 WKT 和主要覆盖指标,便于 GeoServer 直接发布图层;`tm_region_coverage_m` 按省/市/区县提前聚合,用于概览卡片、覆盖统计和 OTT 地市报表,避免每次从栅格明细实时聚合。
|
|||
|
|
|
|||
|
|
### 4.3 楼宇域
|
|||
|
|
|
|||
|
|
核心表为 `td_building`、`td_building_grid_m`、`td_building_cell_m`、`tm_building_coverage_m`、`tm_building_user_wifi_m`。楼宇指标表回填楼宇类型、区域、中心点、楼宇面积、AOI WKT 等高频字段,支撑 2D/3D 图层、竞对对比、楼宇报表;室内 4G/5G_SA 无线覆盖通过 `tm_building_coverage_m.network_class='4G'/'5G_SA'` 与 `indoor_flag=1` 表达,并补充弱覆盖、重叠覆盖、过覆盖、MOD 干扰等覆盖扩展字段;楼宇无线市场份额不再作为单一核心指标,替换为 `user_count_4g`、`user_market_share_4g`、`user_count_5g`、`user_market_share_5g`。楼宇-栅格和楼宇-小区桥接表分别支撑楼宇图层与楼宇小区关系查询;WiFi 指标独立成表,避免在网络制式维度下大量重复 WiFi 字段。
|
|||
|
|
|
|||
|
|
### 4.4 重点场景域
|
|||
|
|
|
|||
|
|
核心表为 `td_scene`、`tm_scene_grid_coverage_m`、`tm_scene_coverage_m`。场景覆盖指标表回填场景类型、场景名称、AOI WKT、区域字段、用户统计字段和覆盖扩展字段,满足场景搜索、概览、用户分析、单场景详情、图层配置、场景级报表;场景-栅格桥接表支撑 `/api/scenes/layer`。
|
|||
|
|
|
|||
|
|
### 4.5 工参与小区覆盖域
|
|||
|
|
|
|||
|
|
核心表为 `td_cell_param_m`、`tm_cell_grid_coverage_m`。工参维度按月保留,避免工参随账期变化导致历史查询不一致;小区覆盖栅格表按小区与栅格关系展开,支撑单小区覆盖栅格、栅格 TOP 小区、栅格-小区连线和小区覆盖扩展指标。工参字段保留在 `td_cell_param_m`,覆盖统计字段统一落在 `tm_cell_grid_coverage_m`。入库时 WKT 需先校验类型、`SRID=4326` 与 `ST_IsValid`;若来源是 GeoJSON/BBox,先在 ETL/服务侧转换成 WKT 再入库。
|
|||
|
|
|
|||
|
|
### 4.6 聚类与质差域
|
|||
|
|
|
|||
|
|
核心表为 `td_cluster_threshold`、`tm_cluster_area_m`、`tm_cluster_feedback`、`tm_poor_region_metric_m`、`tm_poor_scene_list_m`、`tm_poor_cell_list_m`。聚类区域与质差概览分表,避免将聚类评分、质差趋势、清单导出全部塞入单张大表;`tm_cluster_area_m` 同时保留聚类区域覆盖扩展字段,用于聚类栅格详情和加权得分展示;清单表内回填排序、筛选和导出所需的区域、场景、小区字段。
|
|||
|
|
|
|||
|
|
## 5. 原始数据到 DMK 表映射
|
|||
|
|
|
|||
|
|
### 5.1 基础数据源说明
|
|||
|
|
|
|||
|
|
本项目所有计算依赖以下三张 ODS 基础表:
|
|||
|
|
|
|||
|
|
| ODS 表名 | 数据内容 | 主要字段 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `ods.OTT_GRID` | OTT 栅格级覆盖数据 | `year_month`, `provincecode`, `citycode`, `districtcode`, `operator_name`, `network_class`, `regionid`, `x_offset_20`, `y_offset_20`, `center_lon`, `center_lat`, `earfcn`, `freq`, `rsrpcount`, `totalrsrp`, `totalsinr`, `totalrsrq`, `avgrsrp`, `avgsinr`, `avgrsrq`, `rsrpgoodcount_105`, `rsrpgoodcount_110`, `sinrgoodcount`, `rsrqgoodcount`, `compgoodcount_105_3`, `compgoodcount_110_3` 及 RSRP/SINR/RSRQ 分级统计字段 |
|
|||
|
|
| `ods.4G_MR_GRID_SCELL` | 4G 小区-栅格 MR 数据 | `provincecode`, `citycode`, `districtcode`, `cellkey`, `cell_name`, `cell_lon`, `cell_lat`, `cell_regionid`, `pci`, `indoor_flag`, `azimuth`, `freq`, `vendor`, `antenna_height`, `rspower`, `regionid`, `x_offset_20`, `y_offset_20`, `grid_lon`, `grid_lat`, `rsrpcount`, `totalrsrp`, `avgrsrp`, `weakcover_mrcount`, `overlap_mrcount`, `overlap_totalrsrp`, `overlap_avgrsrp`, `overshoot_mrcount`, `overshoot_totalrsrp`, `overshoot_avgrsrp`, `mod3interfer_mrcount`, `mod3interfer_totalrsrp`, `mod3interfer_avgrsrp`, `avg_sinr`, `is_highrail_grid`, `is_highway_grid`, `is_build_grid`, `is_road_grid` 及 RSRP 5级分段统计字段 |
|
|||
|
|
| `ods.5G_MR_GRID_SCELL` | 5G 小区-栅格 MR 数据 | `provincecode`, `citycode`, `districtcode`, `cellkey`, `cell_name`, `cell_lon`, `cell_lat`, `cell_regionid`, `pci`, `indoor_flag`, `azimuth`, `freq`, `vendor`, `antenna_height`, `rspower`, `regionid`, `x_offset_20`, `y_offset_20`, `grid_lon`, `grid_lat`, `ssrsrpcount`, `totalrsrp`, `avg_rsrp`, `weak_cover_mr_nums`, `overlap_mrcount`, `overlap_totalrsrp`, `overlap_avgrsrp`, `overshoot_mrcount`, `overshoot_totalrsrp`, `overshoot_avgrsrp`, `mod30interfer_mrcount`, `mod30interfer_totalrsrp`, `mod30interfer_avgrsrp`, `avg_sinr`, `is_highrail_grid`, `is_highway_grid`, `is_build_grid`, `is_road_grid` 及 RSRP 10级分段统计字段 |
|
|||
|
|
|
|||
|
|
### 5.2 映射规则
|
|||
|
|
|
|||
|
|
| 原始/补充数据 | 入库目标 | 处理说明 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `ods.OTT_GRID` | `tm_grid_coverage_m`、`tm_region_coverage_m`、`tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_scene_grid_coverage_m` | 从 OTT_GRID 提取 `rsrpcount`, `totalrsrp`, `totalsinr`, `totalrsrq`, `avgrsrp`, `avgsinr`, `avgrsrq`, `rsrpgoodcount_105`, `rsrpgoodcount_110`, `sinrgoodcount`, `rsrqgoodcount`, `compgoodcount_105_3`, `compgoodcount_110_3` 及分级统计字段;计算 `mr_cover_rate_105 = rsrpgoodcount_105 / rsrpcount`、`mr_cover_rate_110 = rsrpgoodcount_110 / rsrpcount`;回填 `grid_count`(范围内总栅格数)、`mr_grid_count`(有 MR 采样点的栅格数)、`covered_grid_count_105/110`;通过 `network_class` 区分 4G/5G_SA;`operator_name` 区分运营商 |
|
|||
|
|
| `ods.4G_MR_GRID_SCELL` | `td_cell_param_m`、`tm_cell_grid_coverage_m`、`tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cluster_area_m` | 工参字段(`cellkey`, `cell_name`, `cell_lon`, `cell_lat`, `pci`, `indoor_flag`, `azimuth`, `freq`, `vendor`, `antenna_height`, `rspower`)入库 `td_cell_param_m`;覆盖指标(`rsrpcount`, `avgrsrp`, `avg_sinr`, `weakcover_mrcount`, `overlap_mrcount`, `overlap_totalrsrp`, `overlap_avgrsrp`, `overshoot_mrcount`, `overshoot_totalrsrp`, `overshoot_avgrsrp`, `mod3interfer_mrcount`, `mod3interfer_totalrsrp`, `mod3interfer_avgrsrp`)标准化到各指标表;4G MOD3 干扰字段按 `mod3interfer_*` 解释 |
|
|||
|
|
| `ods.5G_MR_GRID_SCELL` | `td_cell_param_m`、`tm_cell_grid_coverage_m`、`tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cluster_area_m` | 工参字段同 4G 入库 `td_cell_param_m`;覆盖指标使用 `ssrsrpcount`, `avg_rsrp`, `avg_sinr`, `weak_cover_mr_nums`, `mod30interfer_*` 等字段;5G MOD30 干扰字段按 `mod30interfer_*` 解释;注意 5G 字段命名差异(`ssrsrpcount` vs `rsrpcount`,`avg_rsrp` vs `avgrsrp`) |
|
|||
|
|
| 楼宇基础/AOI 数据 | `td_building`、`td_building_grid_m`、`td_building_cell_m`、`tm_building_coverage_m` | 统一 `building_id`、`building_type`、`building_area`、`aoi_wkt`、`bbox`、人口密度 |
|
|||
|
|
| 场景 AOI 数据 | `td_scene`、`tm_scene_grid_coverage_m`、`tm_scene_coverage_m`、`tm_poor_scene_list_m` | 统一 `scene_id`、`scene_type`、`aoi_wkt`、场景搜索字段 |
|
|||
|
|
| 用户统计补充表 | `tm_region_coverage_m`、`tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cluster_area_m` | 回填用户数、4G/5G_SA 用户数、市场份额;楼宇侧回填 `user_count_4g`、`user_market_share_4g`、`user_count_5g`、`user_market_share_5g` |
|
|||
|
|
| WiFi 统计补充表 | `tm_building_user_wifi_m` | 回填楼宇 WiFi 用户数、WiFi 市场份额、WiFi 信号强度 |
|
|||
|
|
| 聚类算法结果 | `tm_cluster_area_m` | 回填加权得分、五维权重、区域 WKT、TOP 档位排序字段 |
|
|||
|
|
| 质差识别结果 | `tm_poor_region_metric_m`、`tm_poor_scene_list_m`、`tm_poor_cell_list_m` | 生成概览卡片、趋势、地图、排名、清单导出所需指标 |
|
|||
|
|
|
|||
|
|
### 5.3 字段命名差异说明
|
|||
|
|
|
|||
|
|
| 差异点 | 4G 字段 | 5G 字段 | 目标表统一字段 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| MR 总数 | `rsrpcount` | `ssrsrpcount` | `rsrpcount`(4G 直接用,5G 映射) |
|
|||
|
|
| 平均 RSRP | `avgrsrp` | `avg_rsrp` | `avgrsrp`(4G 直接用,5G 映射为 `avgrsrp`) |
|
|||
|
|
| 弱覆盖数 | `weakcover_mrcount` | `weak_cover_mr_nums` | `weakcover_mrcount`(4G 直接用,5G 映射) |
|
|||
|
|
| MOD 干扰 | `mod3interfer_*` | `mod30interfer_*` | `mod_interference_*`(通用字段,按 `network_class` 解释为 MOD3 或 MOD30) |
|
|||
|
|
| 平均 SINR | `avg_sinr` | `avg_sinr` | `avg_sinr` |
|
|||
|
|
|
|||
|
|
## 6. 接口到表映射
|
|||
|
|
|
|||
|
|
| 接口组 | 主要读取表 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 通用基础接口 | `td_account_period`、`td_region`、`td_dict_item`、`td_metric_definition`、`td_layer_metric`、`tm_export_task` |
|
|||
|
|
| 楼宇覆盖与 3D 图层 | `td_building`、`td_building_grid_m`、`td_building_cell_m`、`tm_building_coverage_m`、`tm_building_user_wifi_m`、`td_layer_config`、`td_layer_legend`、`td_cell_param_m` |
|
|||
|
|
| 图层、工参与自定义图例 | `td_layer_config`、`td_layer_metric`、`td_layer_legend`、`td_cell_param_m`、`tm_cell_grid_coverage_m`、`tm_scene_grid_coverage_m` |
|
|||
|
|
| 区域栅格 | `tm_region_coverage_m`、`tm_grid_coverage_m`、`tm_cell_grid_coverage_m`、`td_custom_region` |
|
|||
|
|
| 重点场景 | `td_scene`、`tm_scene_grid_coverage_m`、`tm_scene_coverage_m`、`td_layer_config`、`td_layer_legend` |
|
|||
|
|
| 聚类栅格与加权得分 | `td_cluster_threshold`、`tm_cluster_area_m`、`tm_cluster_feedback`、`tm_export_task` |
|
|||
|
|
| 质差场景概览 | `tm_poor_region_metric_m`、`tm_poor_scene_list_m`、`tm_poor_cell_list_m`、`tm_export_task` |
|
|||
|
|
| OTT 报表检索 | `tm_region_coverage_m`、`tm_scene_coverage_m`、`tm_building_coverage_m`、`tm_export_task` |
|
|||
|
|
|
|||
|
|
## 7. 覆盖扩展字段清单
|
|||
|
|
|
|||
|
|
### 7.1 通用覆盖扩展字段
|
|||
|
|
|
|||
|
|
以下字段用于承接模型修正表中“需要扩展字段”的覆盖呈现要求;同一条记录仍通过 `operator_name`、`network_class`、`freq`、`indoor_flag` 区分运营商、4G/5G_SA、频段与室内外,不新增 4G/5G_SA 成对物理字段。
|
|||
|
|
|
|||
|
|
| 字段 | 类型 | 含义 | 适用表 |
|
|||
|
|
| --- | --- | --- | --- |
|
|||
|
|
| `rsrpcount` | `bigint` | RSRP/MR 采样点数 | 各覆盖指标表既有或新增 |
|
|||
|
|
| `avgrsrp` / `avg_rsrp` | `numeric(10,4)` | 平均 RSRP(dBm) | `tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cell_grid_coverage_m`、`tm_cluster_area_m` |
|
|||
|
|
| `avgsinr` / `avg_sinr` | `numeric(10,4)` | 平均 SINR(dB) | `tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cell_grid_coverage_m`、`tm_cluster_area_m` |
|
|||
|
|
| `weakcover_mrcount` | `bigint` | 弱覆盖采样数 | `tm_building_coverage_m`、`tm_scene_coverage_m`、`tm_cell_grid_coverage_m`、`tm_cluster_area_m` |
|
|||
|
|
| `overlap_mrcount` | `bigint` | 重叠覆盖采样数 | 同上 |
|
|||
|
|
| `overlap_total_value` | `numeric(20,4)` | 重叠覆盖总值 | 同上 |
|
|||
|
|
| `overlap_rate` | `numeric(12,6)` | 重叠覆盖率 | 同上 |
|
|||
|
|
| `overlap_avgrsrp` | `numeric(10,4)` | 重叠覆盖平均 RSRP(dBm) | 同上 |
|
|||
|
|
| `overshoot_mrcount` | `bigint` | 过覆盖采样数 | 同上 |
|
|||
|
|
| `overshoot_total_value` | `numeric(20,4)` | 过覆盖总值 | 同上 |
|
|||
|
|
| `overshoot_rate` | `numeric(12,6)` | 过覆盖率 | 同上 |
|
|||
|
|
| `overshoot_avgrsrp` | `numeric(10,4)` | 过覆盖平均 RSRP(dBm) | 同上 |
|
|||
|
|
| `mod_interference_mrcount` | `bigint` | MOD 干扰采样数;4G 按 MOD3、5G 按 MOD30 解释 | 同上 |
|
|||
|
|
| `mod_interference_total_value` | `numeric(20,4)` | MOD 干扰采样点总值;4G 按 MOD3、5G 按 MOD30 解释 | 同上 |
|
|||
|
|
| `mod_interference_avgrsrp` | `numeric(10,4)` | MOD 干扰平均 RSRP(dBm);4G 按 MOD3、5G 按 MOD30 解释 | 同上 |
|
|||
|
|
| `mod_interference_ratio` | `numeric(12,6)` | MOD 干扰占比;4G 按 MOD3、5G 按 MOD30 解释 | 同上 |
|
|||
|
|
|
|||
|
|
### 7.2 分表补充字段
|
|||
|
|
|
|||
|
|
| 表名 | 本次补充字段 | 说明 |
|
|||
|
|
| --- | --- | --- |
|
|||
|
|
| `tm_building_coverage_m` | `avgrsrq`、通用覆盖扩展字段、`user_count_4g`、`user_count_5g`、`user_market_share_4g`、`user_market_share_5g` | 支撑楼宇室内 4G/5G_SA 无线覆盖、竞对无线网络覆盖和“无线市场份额”替换指标。 |
|
|||
|
|
| `tm_scene_coverage_m` | 通用覆盖扩展字段 | 支撑单场景详情中的覆盖相关指标;用户数、市场份额和 5G 驻留比沿用既有字段。 |
|
|||
|
|
| `tm_cell_grid_coverage_m` | `totalsinr`、`rsrpgoodcount_105`、`rsrpgoodcount_110`、`mr_cover_rate_105`、`mr_cover_rate_110`、通用覆盖扩展字段中该表原缺失字段 | 支撑小区维度和栅格小区维度的覆盖详情;`avg_sinr` 维持既有命名。 |
|
|||
|
|
| `tm_cluster_area_m` | `rsrpcount`、通用覆盖扩展字段 | 支撑聚类栅格详情的覆盖指标;`weak_grid_count`/`weak_grid_ratio` 继续表示弱覆盖栅格数/占比,不替代弱覆盖采样数。 |
|
|||
|
|
| `tm_building_user_wifi_m` | 删除 `total_user_count`、`user_count`、`market_share`,保留 `wifi_total_user_count`、`wifi_user_count`、`wifi_market_share`、`wifi_signal_strength` | 楼宇无线用户数和市场份额迁移到 `tm_building_coverage_m` 的 4G/5G 拆分字段;该表仅承载 WiFi 指标。 |
|
|||
|
|
|
|||
|
|
## 8. 索引建议
|
|||
|
|
|
|||
|
|
| 表类型 | 索引策略 |
|
|||
|
|
| --- | --- |
|
|||
|
|
| 月粒度指标表 | 组合索引以 `year_month` 起始,追加区域、运营商、网络制式、频段、室内外等高频筛选字段 |
|
|||
|
|
| 列表/排名表 | 对 `weighted_score`、`rank_no`、`grid_cover_rate`、`mr_cover_rate` 等排序字段建立局部或组合索引 |
|
|||
|
|
| GIS 表 | 对 `*_geom` 生成列建立 GiST 索引;保留 `bbox` 供接口快速返回地图视野 |
|
|||
|
|
| 模糊搜索 | 场景名、楼宇名可按实际 PostgreSQL 扩展情况补充 `pg_trgm` GIN 索引 |
|
|||
|
|
| 写入配置表 | 按 `account_id`、`layer_type`、`metric_code`、`cluster_type` 建唯一或普通索引 |
|
|||
|
|
|
|||
|
|
## 9. 口径约束
|
|||
|
|
|
|||
|
|
- `mr_cover_rate_105 = sum(rsrpgoodcount_105) / sum(rsrpcount)`,主要支撑 FUNC-065 口径。
|
|||
|
|
- `mr_cover_rate_110 = sum(rsrpgoodcount_110) / sum(rsrpcount)`,主要支撑 FUNC-014、FUNC-016 口径。
|
|||
|
|
- `grid_cover_rate_105 = covered_grid_count_105 / mr_grid_count`、`grid_cover_rate_110 = covered_grid_count_110 / mr_grid_count`,即 MR 覆盖率达到 -105/-110 阈值的栅格数除以有 MR 采样点的栅格数(`rsrpcount > 0` 的栅格数);`grid_count` 表示该范围内的总栅格数,仅作分母参考,不直接用于栅格覆盖率计算。
|
|||
|
|
- 4G/5G_SA 指标拆分优先通过 `network_class='4G'/'5G_SA'` 表达,不新增 `avgrsrp_4g`、`avgrsrp_5g`、`grid_cover_rate_4g`、`grid_cover_rate_5g` 等成对物理字段。
|
|||
|
|
- `RSRP低于-105/-110采样点` 可由 `rsrpcount - rsrpgoodcount_105/110` 派生,不在指标表中重复存储。
|
|||
|
|
- 楼宇无线市场份额不再作为单一核心指标,替换为 `tm_building_coverage_m.user_count_4g`、`user_market_share_4g`、`user_count_5g`、`user_market_share_5g`;楼宇 WiFi 用户与 WiFi 市场份额仍保留在 `tm_building_user_wifi_m`。
|
|||
|
|
- `operator_5g_reside_rate`、`user_market_share_*`、`tm_building_coverage_m.total_user_count` 来自用户统计补充表,不从 OTT 栅格表硬推导;其中 `total_user_count` 直接支撑 `/api/ott/building-report` 楼宇总用户数字段。楼宇侧 5G 驻留比按 CSV 标记不再作为新增核心字段,区域和场景侧继续保留。
|
|||
|
|
- 覆盖扩展字段中的 `mod_interference_*` 为通用 MOD 干扰字段,4G 展示为 MOD3,5G 展示为 MOD30。
|
|||
|
|
- CSV 标记“可废弃”的指标不作为本次新增核心字段;既有字段如 `grid_cover_rate_105/110` 因区域、场景、图层和报表仍使用而保留。
|
|||
|
|
- `cql_filter` 由 Java 服务基于白名单字段拼装;表中提供生成过滤条件所需的基础字段,不存储用户原始输入拼接结果。
|
|||
|
|
- WKT 入库前需做类型、`SRID=4326`、`ST_IsValid` 校验;GeoJSON/BBox 等来源统一先转换为 WKT 再写入,失败记录应返回明确的入库错误。
|