ctc_poc2026/POC-TSG匹配测试用例_DMK库表清单(1).md

22 KiB
Raw Blame History

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,保留 yearmonth
GIS 存储 原始/接口字段使用 *_wkt,数据库生成 *_geom 空间列
坐标系 EPSG:4326
分区建议 数据量大的 tm_*_m 表按 year_month 做月分区或冷热分层
字段命名 优先沿用 PRD 和接口清单中的 provincecodecitycoderegionidx_offset_20operator_namenetwork_classrsrpcountavgrsrp 等字段

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_periodtd_regiontd_dict_itemtd_metric_definitiontd_layer_configtd_layer_metrictd_layer_legendtm_export_task。该域不参与大规模指标计算,主要支撑通用筛选、口径说明、图层配置、导出任务。

td_layer_config 通过 layer_role 区分基础图层、视图层或发布层,通过 geom_column 明确 GeoServer 发布时实际使用的几何列名;若服务侧采用视图输出,则可统一别名为 geom

4.2 区域栅格域

核心表为 td_gridtm_grid_coverage_mtm_region_coverage_mtm_grid_coverage_m 保留栅格 WKT 和主要覆盖指标,便于 GeoServer 直接发布图层;tm_region_coverage_m 按省/市/区县提前聚合,用于概览卡片、覆盖统计和 OTT 地市报表,避免每次从栅格明细实时聚合。

4.3 楼宇域

核心表为 td_buildingtd_building_grid_mtd_building_cell_mtm_building_coverage_mtm_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_4guser_market_share_4guser_count_5guser_market_share_5g。楼宇-栅格和楼宇-小区桥接表分别支撑楼宇图层与楼宇小区关系查询WiFi 指标独立成表,避免在网络制式维度下大量重复 WiFi 字段。

4.4 重点场景域

核心表为 td_scenetm_scene_grid_coverage_mtm_scene_coverage_m。场景覆盖指标表回填场景类型、场景名称、AOI WKT、区域字段、用户统计字段和覆盖扩展字段满足场景搜索、概览、用户分析、单场景详情、图层配置、场景级报表场景-栅格桥接表支撑 /api/scenes/layer

4.5 工参与小区覆盖域

核心表为 td_cell_param_mtm_cell_grid_coverage_m。工参维度按月保留,避免工参随账期变化导致历史查询不一致;小区覆盖栅格表按小区与栅格关系展开,支撑单小区覆盖栅格、栅格 TOP 小区、栅格-小区连线和小区覆盖扩展指标。工参字段保留在 td_cell_param_m,覆盖统计字段统一落在 tm_cell_grid_coverage_m。入库时 WKT 需先校验类型、SRID=4326ST_IsValid;若来源是 GeoJSON/BBox先在 ETL/服务侧转换成 WKT 再入库。

4.6 聚类与质差域

核心表为 td_cluster_thresholdtm_cluster_area_mtm_cluster_feedbacktm_poor_region_metric_mtm_poor_scene_list_mtm_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_mtm_region_coverage_mtm_building_coverage_mtm_scene_coverage_mtm_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 / rsrpcountmr_cover_rate_110 = rsrpgoodcount_110 / rsrpcount;回填 grid_count(范围内总栅格数)、mr_grid_count(有 MR 采样点的栅格数)、covered_grid_count_105/110;通过 network_class 区分 4G/5G_SAoperator_name 区分运营商
ods.4G_MR_GRID_SCELL td_cell_param_mtm_cell_grid_coverage_mtm_building_coverage_mtm_scene_coverage_mtm_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_mtm_cell_grid_coverage_mtm_building_coverage_mtm_scene_coverage_mtm_cluster_area_m 工参字段同 4G 入库 td_cell_param_m;覆盖指标使用 ssrsrpcount, avg_rsrp, avg_sinr, weak_cover_mr_nums, mod30interfer_* 等字段5G MOD30 干扰字段按 mod30interfer_* 解释;注意 5G 字段命名差异(ssrsrpcount vs rsrpcountavg_rsrp vs avgrsrp
楼宇基础/AOI 数据 td_buildingtd_building_grid_mtd_building_cell_mtm_building_coverage_m 统一 building_idbuilding_typebuilding_areaaoi_wktbbox、人口密度
场景 AOI 数据 td_scenetm_scene_grid_coverage_mtm_scene_coverage_mtm_poor_scene_list_m 统一 scene_idscene_typeaoi_wkt、场景搜索字段
用户统计补充表 tm_region_coverage_mtm_building_coverage_mtm_scene_coverage_mtm_cluster_area_m 回填用户数、4G/5G_SA 用户数、市场份额;楼宇侧回填 user_count_4guser_market_share_4guser_count_5guser_market_share_5g
WiFi 统计补充表 tm_building_user_wifi_m 回填楼宇 WiFi 用户数、WiFi 市场份额、WiFi 信号强度
聚类算法结果 tm_cluster_area_m 回填加权得分、五维权重、区域 WKT、TOP 档位排序字段
质差识别结果 tm_poor_region_metric_mtm_poor_scene_list_mtm_poor_cell_list_m 生成概览卡片、趋势、地图、排名、清单导出所需指标

5.3 字段命名差异说明

差异点 4G 字段 5G 字段 目标表统一字段
MR 总数 rsrpcount ssrsrpcount rsrpcount4G 直接用5G 映射)
平均 RSRP avgrsrp avg_rsrp avgrsrp4G 直接用5G 映射为 avgrsrp
弱覆盖数 weakcover_mrcount weak_cover_mr_nums weakcover_mrcount4G 直接用5G 映射)
MOD 干扰 mod3interfer_* mod30interfer_* mod_interference_*(通用字段,按 network_class 解释为 MOD3 或 MOD30
平均 SINR avg_sinr avg_sinr avg_sinr

6. 接口到表映射

接口组 主要读取表
通用基础接口 td_account_periodtd_regiontd_dict_itemtd_metric_definitiontd_layer_metrictm_export_task
楼宇覆盖与 3D 图层 td_buildingtd_building_grid_mtd_building_cell_mtm_building_coverage_mtm_building_user_wifi_mtd_layer_configtd_layer_legendtd_cell_param_m
图层、工参与自定义图例 td_layer_configtd_layer_metrictd_layer_legendtd_cell_param_mtm_cell_grid_coverage_mtm_scene_grid_coverage_m
区域栅格 tm_region_coverage_mtm_grid_coverage_mtm_cell_grid_coverage_mtd_custom_region
重点场景 td_scenetm_scene_grid_coverage_mtm_scene_coverage_mtd_layer_configtd_layer_legend
聚类栅格与加权得分 td_cluster_thresholdtm_cluster_area_mtm_cluster_feedbacktm_export_task
质差场景概览 tm_poor_region_metric_mtm_poor_scene_list_mtm_poor_cell_list_mtm_export_task
OTT 报表检索 tm_region_coverage_mtm_scene_coverage_mtm_building_coverage_mtm_export_task

7. 覆盖扩展字段清单

7.1 通用覆盖扩展字段

以下字段用于承接模型修正表中“需要扩展字段”的覆盖呈现要求;同一条记录仍通过 operator_namenetwork_classfreqindoor_flag 区分运营商、4G/5G_SA、频段与室内外不新增 4G/5G_SA 成对物理字段。

字段 类型 含义 适用表
rsrpcount bigint RSRP/MR 采样点数 各覆盖指标表既有或新增
avgrsrp / avg_rsrp numeric(10,4) 平均 RSRPdBm tm_building_coverage_mtm_scene_coverage_mtm_cell_grid_coverage_mtm_cluster_area_m
avgsinr / avg_sinr numeric(10,4) 平均 SINRdB tm_building_coverage_mtm_scene_coverage_mtm_cell_grid_coverage_mtm_cluster_area_m
weakcover_mrcount bigint 弱覆盖采样数 tm_building_coverage_mtm_scene_coverage_mtm_cell_grid_coverage_mtm_cluster_area_m
overlap_mrcount bigint 重叠覆盖采样数 同上
overlap_total_value numeric(20,4) 重叠覆盖总值 同上
overlap_rate numeric(12,6) 重叠覆盖率 同上
overlap_avgrsrp numeric(10,4) 重叠覆盖平均 RSRPdBm 同上
overshoot_mrcount bigint 过覆盖采样数 同上
overshoot_total_value numeric(20,4) 过覆盖总值 同上
overshoot_rate numeric(12,6) 过覆盖率 同上
overshoot_avgrsrp numeric(10,4) 过覆盖平均 RSRPdBm 同上
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 干扰平均 RSRPdBm4G 按 MOD3、5G 按 MOD30 解释 同上
mod_interference_ratio numeric(12,6) MOD 干扰占比4G 按 MOD3、5G 按 MOD30 解释 同上

7.2 分表补充字段

表名 本次补充字段 说明
tm_building_coverage_m avgrsrq、通用覆盖扩展字段、user_count_4guser_count_5guser_market_share_4guser_market_share_5g 支撑楼宇室内 4G/5G_SA 无线覆盖、竞对无线网络覆盖和“无线市场份额”替换指标。
tm_scene_coverage_m 通用覆盖扩展字段 支撑单场景详情中的覆盖相关指标;用户数、市场份额和 5G 驻留比沿用既有字段。
tm_cell_grid_coverage_m totalsinrrsrpgoodcount_105rsrpgoodcount_110mr_cover_rate_105mr_cover_rate_110、通用覆盖扩展字段中该表原缺失字段 支撑小区维度和栅格小区维度的覆盖详情;avg_sinr 维持既有命名。
tm_cluster_area_m rsrpcount、通用覆盖扩展字段 支撑聚类栅格详情的覆盖指标;weak_grid_count/weak_grid_ratio 继续表示弱覆盖栅格数/占比,不替代弱覆盖采样数。
tm_building_user_wifi_m 删除 total_user_countuser_countmarket_share,保留 wifi_total_user_countwifi_user_countwifi_market_sharewifi_signal_strength 楼宇无线用户数和市场份额迁移到 tm_building_coverage_m 的 4G/5G 拆分字段;该表仅承载 WiFi 指标。

8. 索引建议

表类型 索引策略
月粒度指标表 组合索引以 year_month 起始,追加区域、运营商、网络制式、频段、室内外等高频筛选字段
列表/排名表 weighted_scorerank_nogrid_cover_ratemr_cover_rate 等排序字段建立局部或组合索引
GIS 表 *_geom 生成列建立 GiST 索引;保留 bbox 供接口快速返回地图视野
模糊搜索 场景名、楼宇名可按实际 PostgreSQL 扩展情况补充 pg_trgm GIN 索引
写入配置表 account_idlayer_typemetric_codecluster_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_countgrid_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_4gavgrsrp_5ggrid_cover_rate_4ggrid_cover_rate_5g 等成对物理字段。
  • RSRP低于-105/-110采样点 可由 rsrpcount - rsrpgoodcount_105/110 派生,不在指标表中重复存储。
  • 楼宇无线市场份额不再作为单一核心指标,替换为 tm_building_coverage_m.user_count_4guser_market_share_4guser_count_5guser_market_share_5g;楼宇 WiFi 用户与 WiFi 市场份额仍保留在 tm_building_user_wifi_m
  • operator_5g_reside_rateuser_market_share_*tm_building_coverage_m.total_user_count 来自用户统计补充表,不从 OTT 栅格表硬推导;其中 total_user_count 直接支撑 /api/ott/building-report 楼宇总用户数字段。楼宇侧 5G 驻留比按 CSV 标记不再作为新增核心字段,区域和场景侧继续保留。
  • 覆盖扩展字段中的 mod_interference_* 为通用 MOD 干扰字段4G 展示为 MOD35G 展示为 MOD30。
  • CSV 标记“可废弃”的指标不作为本次新增核心字段;既有字段如 grid_cover_rate_105/110 因区域、场景、图层和报表仍使用而保留。
  • cql_filter 由 Java 服务基于白名单字段拼装;表中提供生成过滤条件所需的基础字段,不存储用户原始输入拼接结果。
  • WKT 入库前需做类型、SRID=4326ST_IsValid 校验GeoJSON/BBox 等来源统一先转换为 WKT 再写入,失败记录应返回明确的入库错误。