数据库表结构与指标口径设计

技术设计
2026年8月6日10 min read1,954 words

Updated 2026年8月6日

数据库表结构与指标口径设计

状态:可进入客户口径确认和后端实现评审;初始化 DDL 只能经评审后对空库手工执行。
数据库:MySQL 8;业务时区:Asia/Shanghai;设计日期:2026-07-17。
配套 DDL:V1__initial_schema_and_seed.sql

1. 证据优先级、范围与不建设项

1.1 证据优先级

发生冲突时按以下顺序处理,低优先级证据不得覆盖高优先级规则:

  1. docs/需求建设详细方案V2.0.md:唯一业务规则来源。
  2. docs/性能表_0608.csvdocs/干扰表_0609.csv:仅验证真实列、值域、空值、精度、时间覆盖和关联事实。
  3. docs/性能表结构.txtdocs/干扰表结构.txt:仅解释源字段语义及 ClickHouse 字段名,不复制其类型或未交付字段。
  4. V1__initial_schema_and_seed.sqlapplication.ymlScheduledJob.java:现有 MySQL、时区和兼容边界。
  5. frontend/src/pages/**AppRoutes.tsx:只表示页面展示意图和字段需求。
  6. mockApi.ts:随机值、硬编码阈值、状态、日期、排名、基线和前端计算全部视为演示占位,不作为业务证据。

1.2 本轮范围

  • 只设计导入、校验、有效小时事实、发布、日/月聚合、阈值、动态基线、模型/训练/回测/预测、告警/证据/动作、调度和审计。
  • 只使用真实 CSV 50 个列出现次(性能 28 列、干扰 22 列)以及需求和页面确有消费者的计算字段。
  • 复用并扩展 tb_schedule_jobtb_schedule_instancetb_audit_logtb_audit_log.request_id 就是同一动作链的 traceId,不新增同义 trace_id 列。
  • 空库初始化 DDL 和稳定种子数据只在 backend/src/main/resources/db/migration/V1__initial_schema_and_seed.sql 维护;应用启动不得自动迁移,已有业务库不得重复执行该初始化脚本。

1.3 明确不建设

  • 不建设管道/业务体验、15 分钟、GIS/孪生、自动根因、自动参数下发、PDF 报告、客户主数据、浏览器 CSV 上传。
  • 不接收 ClickHouse 原结构中 CSV 未提供的 PRB0~272、MAC/RLC/切片/设备等数百字段。
  • 不为单张图建表;箱线、排行、矩阵摘要和画像共用 tb_metric_stat_result
  • 不预先分库分表,不创建未被当前导入、调度或页面查询使用的索引。
  • 不发布跨小区比例均值、dBm 均值排行、SLA 达成率、雷达归一化或“RRC 连接总数”等未确认结论。
  • 不实现 Controller、Service、Repository、算法或前端改动。

2. 数据画像与独立复核

2.1 结构化解析方式

使用 PowerShell Import-Csv -Encoding UTF8 解析 CSV 引号、空字段和列名,没有按行或逗号拆分字符串。时间使用 ParseExact('yyyy-MM-dd HH:mm:ss', InvariantCulture),数值使用 Decimal.TryParse(..., InvariantCulture);幂等键由解析后的 cgidatatime 构成。

核心复核命令(实际执行):

[Console]::InputEncoding = [System.Text.UTF8Encoding]::new($false)
[Console]::OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$OutputEncoding = [System.Text.UTF8Encoding]::new($false)
$perf = @(Import-Csv -LiteralPath 'docs/性能表_0608.csv' -Encoding UTF8)
$intf = @(Import-Csv -LiteralPath 'docs/干扰表_0609.csv' -Encoding UTF8)
$perfKeys = [Collections.Generic.HashSet[string]]::new([StringComparer]::Ordinal)
$intfKeys = [Collections.Generic.HashSet[string]]::new([StringComparer]::Ordinal)
$perf | ForEach-Object { [void]$perfKeys.Add($_.cgi + [char]31 + $_.datatime) }
$intf | ForEach-Object { [void]$intfKeys.Add($_.cgi + [char]31 + $_.datatime) }
$common = [Collections.Generic.HashSet[string]]::new($perfKeys, [StringComparer]::Ordinal)
$common.IntersectWith($intfKeys)
# 行列数、时间、空值和数值范围均在已导入对象上统计。

2.2 基准结果

校验项 期望 实际 结论
性能表行数 / 列数 47,352 / 28 47,352 / 28 通过
性能表 CGI 数 20 20 通过
性能表时间范围 2026-03-01 00:00:00 ~ 2026-06-08 15:00:00 相同 通过
性能 (cgi, datatime) 重复数 0 0;唯一键 47,352 通过
干扰表行数 / 列数 44,092 / 22 44,092 / 22 通过
干扰表 CGI 数 20 20 通过
干扰表时间范围 2026-03-01 00:00:00 ~ 2026-06-08 23:00:00 相同 通过
干扰 (cgi, datatime) 重复数 0 0;唯一键 44,092 通过
共同关联键 43,780 43,780 通过
仅性能 / 仅干扰键 未给定 3,572 / 312 事实补充
性能上行 / 下行 PRB 空值 各 2,630 各 2,630 通过
切换成功率 >1 32,最大 2 32,最大 2 通过
干扰下行 / 上行频点为 0 各 44,092 各 44,092 通过
共同键共享维度冲突 应为 0 18 个共享字段逐列均为 0 通过
时间解析失败 / 主键空值 应为 0 两表均为 0 通过

补充画像:性能出现 2,373 个小时点,文件范围内缺 19 个自然小时;干扰出现 2,211 个小时点,缺 189 个自然小时。这只是文件覆盖事实,应收计划未确认,不能称为完整率、及时率或 SLA。

2.3 类型、精度和质量事实

字段组 真实值域 / 精度 MySQL 选择 处理
三类成功/掉线比例、PRB 比例源值;最大小数位 8~10 DECIMAL(12,10) 存 0~1,展示乘 100;空值为 N/A,越界原值不截断
切换成功率 0.00118017~2,小数位最多 10 原始区字符串;事实 DECIMAL(12,10) 32 条 >1 只在原始区/错误表留痕,事实和发布值为空
RRC 连接最大数 0~224,源值含 .0 DECIMAL(20,6) 不转整数,不冒充当前连接数
PDCP PDU 字节数 0~38,813,556,小数位最多 6 DECIMAL(30,6) 不因“字节”语义擅自取整;是否应为整数待确认
NCI 10,579,931,147~10,835,296,272 BIGINT UNSIGNED 作为标识,不做算术聚合
带宽 60 或 100 DECIMAL(8,3) MHz 保留将来非整数输入能力,不从字符串截断
平均底噪 -117.063156~-96.076730,6 位小数 DECIMAL(10,6) dBm 观测范围不是业务有效范围;有效范围待确认
上/下行频点 44,092 条均为 0.0 原始区字符串;事实 DECIMAL(15,3) NULL 原值 0 留痕,事实置空并标 NA_INVALID_ZERO,不进入频点分析

当前最长字符串:cgi 17、nci 11、cell_name/omc_cell_name 31、omc_gnodeb_name 29。DDL 留出受控余量,但未使用无界 TEXT 代替可索引标识。

3. 完整源字段映射

3.1 两表共有 19 列(每列在每个数据集恰好一条映射,共 38 个列出现次)

CSV 列 ClickHouse 含义字段 性能原始 → 事实 干扰原始 → 事实 校验规则
datatime datatime raw_datatimebusiness_time DATETIME(0) 同左 必须精确到整点,格式 yyyy-MM-dd HH:mm:ss
province province raw_provinceprovince_name VARCHAR(128) 同左 非空,去首尾空白但不改内容
city_id city_id raw_city_idcity_id VARCHAR(64) 同左 非空标识,不转数值
city_name city_name raw_city_namecity_name VARCHAR(128) 同左 非空
area_id area_id raw_area_idarea_id VARCHAR(64) 同左 非空标识;0 是合法标识,不补写其他值
area_name area_name raw_area_namearea_name VARCHAR(128) 同左 非空
verdor verdor raw_vendorvendor_name VARCHAR(128) 同左 保留源拼写映射,目标统一命名
cgi cgi raw_cgicgi VARCHAR(64) 同左 非空;与业务时间共同幂等
nci nci raw_ncinci BIGINT UNSIGNED 同左 十进制非负整数且不溢出
cell_name cell_name raw_cell_namecell_name VARCHAR(256) 同左 非空
omc_cell_name omc_cell_name raw_omc_cell_nameomc_cell_name VARCHAR(256) 同左 非空
omc_gnodeb_name omc_gnodeb_name raw_gnodeb_namegnodeb_name VARCHAR(256) 同左 非空
cover_type cover_type raw_cover_typecover_type VARCHAR(32) 同左 非空;枚举未确认,不擅自限制
region_level region_level raw_region_levelregion_level VARCHAR(32) 同左 非空;枚举未确认,不擅自限制
first_scene_name first_scene_name raw_first_scene_name → 同名 VARCHAR(128) 同左 非空
second_scene_name second_scene_name raw_second_scene_name → 同名 VARCHAR(128) 同左 非空
network_standard network_standard raw_network_standard → 同名 VARCHAR(32) 同左 非空;当前为 NR,不以样本唯一值固化 CHECK
band band raw_bandband VARCHAR(32) 同左 非空;当前为 2.6G,不以样本唯一值固化 CHECK
bandwidth_down bandwidth_down raw_bandwidth_downbandwidth_down_mhz DECIMAL(8,3) 同左 数值且 >0,单位 MHz

3.2 性能专有 9 列

CSV 列 ClickHouse 对应 原始列 → 有效事实列 发布 metric_code 校验 / 降级
无线接通率 wirelesssuccconnrate raw_wireless_access_ratewireless_access_rate DECIMAL(12,10) WIRELESS_ACCESS_RATE 0~1;否则只留痕并发布无值 N/A
无线掉线率(小区级) wirelessdroprate_celllevel raw_wireless_drop_ratewireless_drop_rate DECIMAL(12,10) WIRELESS_DROP_RATE 0~1;无分子分母,禁止跨小区/跨时间均值
RRC连接建立成功率 rrcsuccconnrate raw_rrc_setup_success_raterrc_setup_success_rate DECIMAL(12,10) RRC_SETUP_SUCCESS_RATE 0~1;低值劣化动态基线与预测
RRC连接最大数 rrc_connmax raw_rrc_connection_maxrrc_connection_max DECIMAL(20,6) RRC_CONNECTION_MAX 非负;保留小数;不是当前连接总数
上行业务信息PRB占用率 dtchprbassnrateul raw_prb_ul_usage_rateprb_ul_usage_rate DECIMAL(12,10) PRB_UL_USAGE_RATE 空值保持空;有效值 0~1
下行业务信息PRB占用率 dtchprbassnratedl raw_prb_dl_usage_rateprb_dl_usage_rate DECIMAL(12,10) PRB_DL_USAGE_RATE 空值保持空;有效值 0~1
切换成功率 hosuccoutrate raw_handover_success_ratehandover_success_rate DECIMAL(12,10) HANDOVER_SUCCESS_RATE 0~1;32 条越界值不进入事实值和任何计算
小区用户面上行PDCP PDU字节数 pdcp_upoctul `raw_…69406 tokens truncated…本数的描述性对比。
  • 同一小时底噪与性能指标同时变化只能作为候选证据,不得表述为因果关系或已确认干扰根因。
  • 选择底噪时间点时提供"查看同时段性能",跳转无线性能分析并继承小区、时间范围和选中时间点。
  • 热力图单元格点击 → 阶梯折线图切换至该小区时序 + 柱状图高亮该小区;散点图点击异常点 → 弹出关联小区列表(可跳转至无线性能分析页),联动逻辑由前端驱动。

4.4 服务端输出、降级与可访问性

  1. 监控查询响应至少携带 traceId、发布运行号、可用性状态、时效性状态、证据完整性状态、最新发布时间、源值、源单位和 N/A 原因;需要判断的指标同时返回静态阈值、动态中心/上下限及各自状态。
  2. 服务端分别提供页面状态、矩阵/排行、趋势/周期、同小时关联证据和分页明细;不得要求前端下载全量记录后自行聚合。
  3. 证据为部分数据时以当前可用的单表发布结果为主;旧的完整证据只能作为独立的“最后完整证据”展示并标明原查询快照和时间,不得替代当前单表结果。证据为无数据时显示当前查询空状态,不显示旧结果。
  4. 可用性为离线、时效性为延迟或查询失败时可保留最后一次成功发布结果,并在结果上方分别显示三个状态轴、更新时间和可复制 traceId;最后成功结果必须绑定其原始查询快照,新查询条件失败时不得将旧结果显示在新条件下,旧结果也不得伪装为实时数据。
  5. 关键值、状态和阈值不依赖悬浮提示;状态同时使用文字和颜色。移动端将宽矩阵降级为异常优先列表,通过筛选抽屉和详情抽屉保留同一分析路径。
  6. 所有 N/A 保持缺失语义,不参与补点、插值、均值或异常判断。服务端返回稳定排序键、顺序和 N/A 排位;前端只提交排序条件并展示服务端结果。

5. 告警与候选诊断

5.1 动态基线

动态基线使用 Median/MAD,不使用固定的全网统一底噪值。按 (cgi, metric_code, hour_of_day) 汇总近 30 个自然日的健康有效小时样本:

center = median(x)
scale = max(1.4826 * MAD(x), floor)
规则 要求
启动条件 至少 14 个健康有效日;数据完整率满足已发布要求;告警时间片不进入健康样本
低值劣化指标 无线接通率、切换成功率、RRC 连接建立成功率的动态下限为 max(0, center - k * scale)
高值劣化指标 无线掉线率、平均底噪、RRC 连接最大数、上/下行 PRB 占用率、上/下行 PDCP PDU 字节数的动态上限为 center + k * scale
样本不足 不生成或复用新基线,页面显示“基线数据不足”;不因缺少基线自动判定正常或异常
结果留痕 保存中心值、尺度、上下限、样本数、有效日期范围、参数版本、计算时间和发布运行号

kfloor 在首次上线时按版本发布。每个版本必须完整包含当前生产矩阵的十项指标;不能发布仅含预测 KPI 的局部版本,否则会导致其余动态基线配置被整版替代。首次生产版发布后配置域永久锁定,应用接口、页面、调度和脚本只读,后续变更只能经负责人批准后使用带审计和 X-Trace-Id 的手工 SQL 创建新版本。有结果引用的历史版本继续保留追溯。配置版本的创建、校验、发布时间和同链路审计时间统一使用应用 Asia/Shanghai 时钟,数据库连接固定 +08:00,不得在同一生命周期混用数据库 CURRENT_TIMESTAMP。静态合同阈值与动态基线越界必须分别标识,不能混为同一告警证据。

5.1.1 生产启用配置

当前生产启用版统一使用:historyWindowDays=30minTrainingDays=30minCompletenessRate=0.95forecastHorizonHours=48riskLookaheadHours=12warningConsecutivePoints=2highRiskConsecutivePoints=4primaryModelType=XGBOOSTfallbackModelType=HOLT_WINTERS。训练参数固定为候选刷新 24h、离线验证 168h、树深 4、学习率 0.05、行/列采样率 0.8、最小子节点权重 5、最大轮数 300、早停 30、Holt-Winters 季节周期 24h 并启用阻尼趋势。

下表数值均为数据库存储单位,WAPE 使用比例值;十项配置必须位于同一个启用版本:

指标编码 动态方向 k floor 最小有效日 MAE 上限 RMSE 上限 WAPE 上限
HANDOVER_SUCCESS_RATE LOW 3 0.003 14 0.0087166585 0.0255039558 0.0087775645
MEAN_NOISE_DBM HIGH 3 0 14 0.9291622768 2.2516559464 0.0079947593
PDCP_DL_BYTES HIGH 3 0 14 534773.7654053480 1172014.0470620925 0.3555818894
PDCP_UL_BYTES HIGH 3 0 14 761498.6124863969 1677571.7265469353 0.5321733280
PRB_DL_USAGE_RATE HIGH 3 0.003 14 0.0054490440 0.0096011808 0.3487552312
PRB_UL_USAGE_RATE HIGH 3 0.003 14 0.0447775278 0.0897051538 0.5752517943
RRC_CONNECTION_MAX HIGH 3 0 14 4.0260416667 6.7582511298 0.1738250506
RRC_SETUP_SUCCESS_RATE LOW 3 0.003 14 0.0103950115 0.0177432682 0.0104884654
WIRELESS_ACCESS_RATE LOW 3 0.0025 21 0.00258 0.015 0.003
WIRELESS_DROP_RATE HIGH 3 0.001 21 0.0008 0.004 1.8

5.2 48 小时趋势预测

预测以无线接通率、无线掉线率两个核心 KPI 的 (cgi, metric_code) 小时序列为目标运行,不为其余配置指标单独生成预测。当前可用特征为小时、星期、1/2/24/168 小时滞后值、RRC 连接最大数、上下行 PRB 占用率、上下行 PDCP PDU 字节数和已发布动态基线。

规则 要求
主模型 XGBoost,用于捕捉多变量、非线性和日/周周期特征
兜底模型 Holt-Winters,仅在 XGBoost 因数据或验证不满足发布条件时使用
训练与发布 至少 30 天连续历史数据,近 30 天完整率不低于 95%,离线验证通过后才能发布未来 48 小时结果
单一结果 同一 (cgi, metric_code, target_time, publish_run) 只发布一个 model_type 的预测结果;候选模型不得各自发告警
预测告警 已发布预测在未来 12 小时内连续两个点跨越已发布动态基线时,生成预测性告警并附预计劣化时间与核查窗口
降级 基线不足时显示“基线数据不足”;基线可用但预测不可用时只显示实际值和基线,明确显示“预测数据不足”或“模型验证未通过”

5.2.1 预测结果与风险排序

每个已发布预测点必须保存:实际历史截止时间、目标时间、预测值、关联基线上下限、是否越界、连续越界点数、预计劣化时间、model_type、模型版本、特征版本、验证状态和发布运行号。

预测风险分析使用小区和核心 KPI 对应的已发布风险摘要作为预测主图的辅助证据,不重新计算模型结果。风险级别由配置决定,最小规则如下:

风险状态 触发条件 页面呈现
正常 预测窗口内未跨越动态基线 显示最后预测时间和模型状态
关注 未来 12 小时连续 2 个预测点跨越动态基线 黄色预测性告警、预计劣化时间、核查窗口
高风险 连续越界点数达到配置的升级阈值,或预测同时跨越动态基线和静态合同阈值 红色风险标识、关联告警、优先处置排序
不可用 基线不足、训练数据不足或模型验证未通过 明确不可用原因,不生成风险等级或告警

风险排行按严重度、预计劣化时间、连续越界点数和影响指标数排序。系统不得输出未经计算的“置信度百分比”;仅展示已保存的验证状态、回测误差和数据完整率。

5.2.2 模型运行、回测与发布

阶段 规则 可见结果
特征检查 校验小时/星期、滞后值、RRC、PRB、PDCP 流量和基线特征是否齐全 特征覆盖率、缺失字段、可训练/不可训练原因
训练 以训练截止时间之前的数据训练候选模型,不覆盖已发布版本 模型类型、训练范围、训练截止时间、模型版本
回测 使用训练后已到达实际值的时间片计算 MAERMSEWAPE;分母为 0 时 WAPE 标记 N/A 指标误差、样本数、验证状态、失败原因
发布 只有通过当前指标配置的验证阈值的候选模型可发布;同一对象/指标仅一个生效版本 发布运行号、生效模型、发布时间、回滚目标
回滚 运行失败、验证失效或管理员停用时,停止新预测发布,保留上一个已发布版本和审计记录 当前状态、原因、最后成功版本

模型配置的验证阈值、升级阈值、最小训练天数和完整率要求均版本化。生产首次发布后管理员只读查看配置,普通用户只读模型状态和预测结果;后续配置变更仅允许经审批的手工 SQL。

5.3 阈值与基线告警

阈值在首次上线时以版本方式发布,生产发布后配置域永久锁定,应用接口、页面、调度和脚本只读。JOB_RULE_ALARM 创建 tb_publish_run 时必须原子固化当时的 threshold_version_id,本次运行的评估、告警和证据 SQL 只能按该快照读取规则,不得在执行中重新查询当前 PUBLISHED 阈值版;至少支持:

指标 劣化方向 用途
无线接通率 低于阈值 接通质量告警
无线掉线率 高于阈值 掉线质量告警
切换成功率 低于阈值 切换质量告警
RRC 连接最大数 高于阈值 负荷风险证据
上/下行 PRB 占用率 高于阈值 负荷风险证据
平均底噪 高于阈值 干扰风险证据

没有已发布静态阈值的指标只展示原始趋势;基线已发布时仍可生成“趋势异常”。没有静态阈值且基线数据不足时不生成告警。

5.4 可解释候选诊断规则

规则 条件 输出
干扰风险候选 接通率或掉线率发生静态阈值或动态基线越界,且同一 (cgi, datatime) 的平均底噪越过静态阈值或动态上限 “上行噪声或干扰风险待核验”,展示指标值、阈值/基线和样本状态
负荷/容量风险候选 RRC 连接最大数及上、下行 PRB 占用率在同一时间片均超过静态阈值或动态上限 “负荷/容量风险待核验”,展示 RRC、PRB、流量和阈值/基线证据
切换性能异常候选 切换成功率低于静态阈值或动态下限 “切换性能异常待核验”,展示当前值和阈值/基线
预测风险候选 已发布预测在未来 12 小时连续两个点越过动态基线 “性能劣化风险待核验”,展示预计劣化时间、预测值、基线和核查窗口
证据不足 关联记录缺失、字段为空或仅一个证据满足 “待观察或人工补充证据”,不得输出具体根因

规则输出只能是候选原因和核查建议,不得显示为“已确认根因”。所有参数调整类建议必须标记“需审批”,系统不提供下发入口。

5.5 告警生命周期

状态固定为:新建 -> 已认领 -> 处理中 -> 待验证 -> 已关闭。验证失败可回到处理中;同一对象、指标、告警类型在生效去重窗口内合并。预测性告警在实际值到达后追加“预测命中/未命中”验证记录,不因预测窗口结束自动关闭。只有管理员可执行最终关闭和重开。

6. 调度、权限与审计

6.1 预置任务

顺序 任务编码 任务名称 成功输出
1 JOB_IMPORT_PERF 性能 CSV 定时导入 性能原始记录、导入批次
2 JOB_IMPORT_INTERFERENCE 干扰 CSV 定时导入 干扰原始记录、导入批次
3 JOB_METRIC_PUBLISH 无线指标结果发布 前端可读性能/干扰关联结果
4 JOB_BASELINE 动态基线计算 已发布基线或“样本不足”运行结果
5 JOB_PREDICTION 48 小时趋势预测 已发布预测或“预测数据不足/验证未通过”运行结果
6 JOB_FORECAST_EVALUATION 预测回测与模型状态更新 回测误差、验证状态、模型运行记录
7 JOB_RULE_ALARM 阈值/趋势异常/预测性告警与候选诊断 告警、诊断快照、通知任务

下游任务仅消费上游成功且已发布的运行号。任务失败、停止或未发布时,不产生半成品告警。

6.2 角色

能力 ROLE_USER ROLE_ADMIN
查询性能、干扰、告警和诊断
查询基线和预测
认领、处置、提交验证、申请关闭
最终关闭/重开告警
调度启停、手动执行、停止
阈值与告警策略发布 否(生产固化,变更走审批 SQL)
基线配置发布 否(生产固化,变更走审批 SQL)
模型发布与回滚
审计查询与导出

前端菜单可见性不构成权限控制,所有接口由后端校验角色、对象状态和版本。

6.3 Trace 与中文日志

每个 HTTP 请求携带 X-Trace-Id。同一用户操作链在前端日志、后端日志、错误响应、调度实例和审计 request_id 中使用同一个值。

新增或变更接口必须有中文日志和中文说明,说明业务目的、触发条件、处理原因和结果;不得只记录“成功”或“失败”。日志和响应不得包含密码、token、密钥、完整 CSV 内容、SQL 或内部堆栈。

7. 验收标准

验收项 最小通过标准
CSV 导入 性能和干扰表头样例及完整时序校验文件可分别导入;字段缺失、重复记录和错误时间格式被拒绝并记录原因
数据语义校验 比例越界、无效频点及其他违反已发布数据字典的值可在受控原始区留痕,但不得被截断、补零或进入发布、基线、告警和诊断结果
数据关联 同一 cgi + datatime 的性能、干扰数据可关联;只有单表结果时仍可查看源指标,但页面明确提示关联证据不足且不产生跨表候选原因
数据状态 页面分别展示性能最新时间、干扰最新时间、最新共同证据时间、性能/干扰各自的收到记录数和缺失字段数、无法关联记录数;可用性、时效性、证据完整性三个状态轴与后端发布状态一致,未确认应收计划时时效性只能为未知;无数据时不显示旧结果
无线性能态势 能按基站/小区和 KPI 展示最新值,并分别展示静态阈值状态/越界小时数和动态基线状态/越界小时数;选择矩阵单元格后趋势、证据和明细同步到同一对象、指标和时间
性能趋势与周期 日期-小时矩阵、实际值、静态阈值、动态基线及前一小时/前一天同小时/前一周同小时值均与服务端发布结果一致,前端不自行计算结论
负荷与流量联动 质量 KPI、RRC/PRB 和 PDCP 使用共享时间轴分别展示;任一 PRB 为 N/A 时不输出完整负荷候选证据
干扰态势与周期 能展示小区-小时或日期-小时状态矩阵、24 小时动态中心/上限、实际底噪、样本数和数据不足状态;不使用全网统一底噪均值替代小区小时槽基线
性能/干扰联动 性能和底噪页面可按同一 cgi + datatime 双向跳转并恢复共享 URL 参数;性能跳转后默认进入干扰态势,干扰页点击分面散点后按该点性能指标进入无线性能分析;关联数据缺失时显示证据不足,不输出因果或已确认根因
查询粒度与矩阵 HOURDAYMONTH 选项与服务端已发布粒度一致;干扰态势的 HOUR 范围不超过 24 小时时展示小区-小时矩阵,超过 24 小时时要求选择小区并展示日期-小时矩阵;性能异常态势保持小区-KPI 矩阵
频点降级 当前校验文件的频点 0 在口径确认前展示 N/A 并隐藏频点筛选、排行和时频图;生产频点是否有效以已发布数据字典为准
指标展示 三项无线 KPI、RRC 连接建立成功率、RRC 连接最大数、PRB、PDCP PDU 字节数、平均底噪和有效频点按源值、源单位、小时粒度展示;空值为 N/A
页面降级与可访问性 部分数据时当前单表结果优先,旧完整证据独立标记;无数据时只显示当前空状态;离线、延迟或查询失败时保留的最后成功结果绑定原查询快照,新条件失败时不得显示旧条件结果;状态同时使用文字和颜色,移动端可通过异常列表完成同一分析路径
动态基线 少于 14 个健康有效日时显示“基线数据不足”;满足条件的验收数据按 Median/MAD 公式生成中心、尺度和上下限
趋势预测 少于 30 天或完整率低于 95% 时不发布预测;满足条件的验收数据由 XGBoost 或验证通过的 Holt-Winters 发布未来 48 小时结果,且同一目标时间仅一个模型结果
风险驾驶舱 风险排行、预计劣化时间、连续越界点数和预测告警与同一发布运行号的预测结果一致;不可用模型明确呈现原因
模型回测与治理 能查询特征覆盖、训练范围、MAE/RMSE/WAPE、验证状态和发布版本;验证失败不发布,回滚后保留历史与审计
阈值/趋势异常 有效静态阈值或已发布基线按正确方向触发相应告警;无静态阈值且基线不足时不发告警
候选诊断 干扰、负荷、切换和证据不足四类规则输出正确证据与候选文案,不自动确认根因
告警闭环 认领、处置、验证、关闭/重开操作按角色和状态校验,并保留动作历史
调度与发布 上游失败时下游跳过;前端只看到最后成功的发布结果
生产配置固化 阈值与告警策略、基线与预测配置首次发布后,页面和接口均只读;ALARM 发布运行的 threshold_version_id 非空且评估 SQL 只按该快照读规则;十项分析参数与第 5.1.1 节矩阵完全一致;配置生命周期与审计使用同一应用时钟
Trace 与审计 一次接口请求能以同一 X-Trace-Id 串联前端日志、响应、后端日志和审计记录

8. 后续能力的启用条件

以下不是本期需求。只有满足条件后,才另行评审并形成新版本需求:

能力 必要前提
15 分钟分析 外部稳定交付 15 分钟数据,并定义迟到数据与聚合规则
频点分析 上、下行频点稳定提供符合已发布数据字典的有效值,数据字典明确平均底噪对应的频点方向、单位和关联口径
管道/业务分析 提供实体标识、指标目录、单位、时延/体验字段及与小区的关联关系
数字孪生 定义实体关系、状态口径和展示目标;若需要空间视图,还需坐标或离线平面图
月度报告 连续完整的跨月数据、报告统计口径、权限范围和签发模板

本版本不以样例数据不足为由伪造算法结果或预测告警。后续能力启用后,必须重新补充数据契约、接口、验收用例和页面需求。