tools: refine add-data batch design spec
This commit is contained in:
@@ -38,6 +38,12 @@
|
||||
- 写入方式是“按时间戳步长生成整段数据”,不是定时常驻写库。
|
||||
- 重复补数时采用“跳过已存在数据”策略。
|
||||
- 前端方案需要和后端接口一起设计。
|
||||
- 分表时间轴规则已确认:
|
||||
- `data_flicker` 固定每 `10` 分钟写一组
|
||||
- `data_fluc` 固定每 `10` 分钟写一组
|
||||
- `data_plt` 固定每 `2` 小时写一组
|
||||
- 其余 `10` 张表按前端选择的 `1`、`3`、`5`、`10` 分钟步长写入
|
||||
- 所有时间点都按自然时间槽对齐,采用整点整分方式生成,不按传入开始时间顺延
|
||||
- 展示字段需要覆盖:
|
||||
- `电能质量参数名称`
|
||||
- `相别`
|
||||
@@ -213,6 +219,13 @@
|
||||
- 每张表预估写入条数
|
||||
- 总预估条数
|
||||
|
||||
说明:
|
||||
|
||||
- 预估逻辑必须按分表时间轴分别计算。
|
||||
- `intervalMinutes` 只影响 `data_harmphasic_i`、`data_harmphasic_v`、`data_harmpower_p`、`data_harmpower_q`、`data_harmpower_s`、`data_harmrate_i`、`data_harmrate_v`、`data_i`、`data_inharm_i`、`data_v` 这 `10` 张表。
|
||||
- `data_flicker`、`data_fluc` 固定按 `10` 分钟时间槽计算。
|
||||
- `data_plt` 固定按 `2` 小时时间槽计算。
|
||||
|
||||
### 8.2 创建任务接口
|
||||
|
||||
接口:
|
||||
@@ -240,6 +253,8 @@
|
||||
- 前端默认提交单个 `lineId`
|
||||
- 多监测点时前端直接提交多个 `lineIds`
|
||||
- 不单独拆分“单点接口”和“多点接口”
|
||||
- `intervalMinutes` 仅作为 `10` 张基础实时类表的生成步长
|
||||
- 固定频率表仍按各自时间轴生成,不跟随 `intervalMinutes`
|
||||
|
||||
### 8.3 任务状态接口
|
||||
|
||||
@@ -412,17 +427,185 @@
|
||||
|
||||
首版不引入复杂公式配置,不让前端传计算表达式。数据生成规则由后端内置。
|
||||
|
||||
### 11.2 生成方式
|
||||
### 11.2 分表时间轴规则
|
||||
|
||||
建议采用“基准值 + 受控扰动 + 派生字段回填”的方式生成数据:
|
||||
本次补数不采用“全部表共用同一时间轴”的方式,而是拆成三类时间轴:
|
||||
|
||||
- 主值字段按基准值和随机扰动生成
|
||||
- 最大值字段不小于平均值
|
||||
- 最小值字段不大于平均值
|
||||
1. 固定 `10` 分钟时间轴
|
||||
2. 固定 `2` 小时时间轴
|
||||
3. 用户步长时间轴
|
||||
|
||||
具体规则如下:
|
||||
|
||||
- `data_flicker`
|
||||
- 固定每 `10` 分钟一组
|
||||
- 按自然时间槽对齐,例如 `10:00`、`10:10`、`10:20`
|
||||
- `data_fluc`
|
||||
- 固定每 `10` 分钟一组
|
||||
- 按自然时间槽对齐
|
||||
- `data_plt`
|
||||
- 固定每 `2` 小时一组
|
||||
- 按自然时间槽对齐,例如 `00:00`、`02:00`、`04:00`
|
||||
- 其余 `10` 张表
|
||||
- 按前端传入的 `intervalMinutes` 生成
|
||||
- 允许值仅为 `1`、`3`、`5`、`10`
|
||||
- 同样按自然时间槽对齐
|
||||
|
||||
如果前端传入 `startTime=10:07`:
|
||||
|
||||
- `10` 分钟表应从 `10:10` 开始
|
||||
- `2` 小时表应从 `12:00` 或下一个符合槽位的时刻开始
|
||||
- 用户步长表应从不小于 `startTime` 的下一个对应槽位开始
|
||||
|
||||
### 11.3 统一生成方式
|
||||
|
||||
建议采用“基础状态生成 + 派生字段回填 + 分表时间轴裁切”的方式:
|
||||
|
||||
- 先按 `(lineId, timeId)` 生成基础电气状态
|
||||
- 再从基础状态派生电压、电流、谐波、功率、闪变
|
||||
- 最后按各表自己的时间轴决定是否落库
|
||||
|
||||
统一原则如下:
|
||||
|
||||
- 同一时间点的 13 张表数据必须同源,不允许各表独立随机
|
||||
- 主值字段按基准值和受控扰动生成
|
||||
- 最大值字段不小于主值
|
||||
- 最小值字段不大于主值
|
||||
- `95%概率大值` 对应 `CP95` 字段
|
||||
- 宽表中的谐波分量和派生列按统一规则回填
|
||||
- 同一输入参数应尽量生成可复现的结果,不建议使用完全无约束随机数
|
||||
|
||||
### 11.3 质量标识
|
||||
### 11.4 逐表生成规律
|
||||
|
||||
#### 11.4.1 基础源表
|
||||
|
||||
`data_v` 作为电压源表,优先生成:
|
||||
|
||||
- 先生成 `FREQ`
|
||||
- 再生成 `RMS`
|
||||
- 再派生 `RMSAB`、`RMSBC`、`RMSCA`
|
||||
- 再派生 `VU_DEV`、`VL_DEV`、`FREQ_DEV`
|
||||
- 再派生 `V_POS`、`V_NEG`、`V_ZERO`、`V_UNBALANCE`
|
||||
- 最后生成 `V_1 ~ V_50`
|
||||
- `V_THD` 由 `V_2 ~ V_50` 与 `V_1` 计算
|
||||
|
||||
`data_i` 作为电流源表,与 `data_v` 保持同源:
|
||||
|
||||
- 先生成 `RMS`
|
||||
- 再生成 `I_POS`、`I_NEG`、`I_ZERO`、`I_UNBALANCE`
|
||||
- 再生成 `I_1 ~ I_50`
|
||||
- `I_THD` 由 `I_2 ~ I_50` 与 `I_1` 计算
|
||||
|
||||
对这两张源表:
|
||||
|
||||
- `RMS_MAX`、`RMS_MIN`、`RMS_CP95`
|
||||
- `FREQ_MAX`、`FREQ_MIN`、`FREQ_CP95`
|
||||
- `V_THD_MAX`、`V_THD_MIN`、`V_THD_CP95`
|
||||
- `I_THD_MAX`、`I_THD_MIN`、`I_THD_CP95`
|
||||
|
||||
均必须由主值派生,不单独随机。
|
||||
|
||||
#### 11.4.2 谐波幅值表
|
||||
|
||||
`data_harmphasic_v`:
|
||||
|
||||
- 直接复用 `data_v` 中的 `V_1 ~ V_50`
|
||||
- 各次谐波的 `MAX`、`MIN`、`CP95` 与 `data_v` 同源派生
|
||||
|
||||
`data_harmphasic_i`:
|
||||
|
||||
- 直接复用 `data_i` 中的 `I_1 ~ I_50`
|
||||
- 各次谐波的 `MAX`、`MIN`、`CP95` 与 `data_i` 同源派生
|
||||
|
||||
#### 11.4.3 谐波占比表
|
||||
|
||||
`data_harmrate_v`:
|
||||
|
||||
- 从 `data_harmphasic_v` 派生
|
||||
- 建议按 `V_n / V_1 * 100` 计算 `V_1 ~ V_50` 对应占比值
|
||||
- `MAX`、`MIN`、`CP95` 也按同样比例换算
|
||||
|
||||
`data_harmrate_i`:
|
||||
|
||||
- 从 `data_harmphasic_i` 派生
|
||||
- 建议按 `I_n / I_1 * 100` 计算 `I_1 ~ I_50` 对应占比值
|
||||
- `MAX`、`MIN`、`CP95` 也按同样比例换算
|
||||
|
||||
#### 11.4.4 间谐波电流表
|
||||
|
||||
`data_inharm_i`:
|
||||
|
||||
- 作为电流间谐波表生成
|
||||
- 各阶值应明显小于对应整数次谐波值
|
||||
- 建议按“整数次谐波值乘以小比例系数”生成
|
||||
- `MAX`、`MIN`、`CP95` 继续由主值派生
|
||||
|
||||
#### 11.4.5 谐波功率表
|
||||
|
||||
`data_harmpower_p`:
|
||||
|
||||
- 从电压谐波和电流谐波联合派生
|
||||
- `P_1 ~ P_50` 建议按电压谐波、电流谐波和相位关系计算
|
||||
- `P` 为各次分量汇总
|
||||
- `PF`、`DF` 由功率关系派生
|
||||
|
||||
`data_harmpower_q`:
|
||||
|
||||
- 与 `data_harmpower_p` 同源
|
||||
- `Q_1 ~ Q_50` 按无功功率关系派生
|
||||
- `Q` 为各次分量汇总
|
||||
|
||||
`data_harmpower_s`:
|
||||
|
||||
- 与 `data_harmpower_p`、`data_harmpower_q` 同源
|
||||
- `S_1 ~ S_50` 建议由 `P_n` 与 `Q_n` 派生
|
||||
- `S` 为各次分量汇总
|
||||
|
||||
这三张表中的 `MAX`、`MIN`、`CP95` 也必须基于对应主值派生。
|
||||
|
||||
#### 11.4.6 闪变与波动表
|
||||
|
||||
`data_flicker`:
|
||||
|
||||
- 固定 `10` 分钟时间轴
|
||||
- 生成 `FLUC`、`PST`、`PLT`
|
||||
- `FLUC` 作为波动主值
|
||||
- `PST` 从 `FLUC` 派生
|
||||
- `PLT` 作为长时闪变指标生成,但落库节奏仍为 `10` 分钟
|
||||
|
||||
`data_fluc`:
|
||||
|
||||
- 固定 `10` 分钟时间轴
|
||||
- 生成 `FLUC`、`FLUCCF`
|
||||
- 与 `data_flicker` 同源
|
||||
- `FLUCCF` 作为 `FLUC` 的修正或归一化结果生成
|
||||
|
||||
`data_plt`:
|
||||
|
||||
- 固定 `2` 小时时间轴
|
||||
- 只写 `PLT`
|
||||
- `PLT` 来源应与 `data_flicker` 中的 `PLT` 同源
|
||||
- 但只在 `2` 小时槽位落表
|
||||
|
||||
### 11.5 前端展示字段映射
|
||||
|
||||
由于表结构中没有独立 `AVG` 字段,前端“平均值”首版建议直接取各参数主值字段。
|
||||
|
||||
例如:
|
||||
|
||||
- 电压类参数取 `RMS`、`V_THD`、`FREQ`
|
||||
- 电流类参数取 `RMS`、`I_THD`
|
||||
- 闪变类参数取 `FLUC`、`PST`、`PLT`
|
||||
- 功率类参数取 `P`、`Q`、`S`
|
||||
|
||||
前端展示中的:
|
||||
|
||||
- `最大值` -> 对应 `*_MAX`
|
||||
- `最小值` -> 对应 `*_MIN`
|
||||
- `95%概率大值` -> 对应 `*_CP95`
|
||||
- `平均值` -> 对应主值字段
|
||||
|
||||
### 11.6 质量标识
|
||||
|
||||
`QUALITYFLAG` 首版建议统一使用固定有效值,例如 `1`。
|
||||
|
||||
@@ -453,6 +636,9 @@
|
||||
|
||||
- 默认单监测点
|
||||
- 多监测点时切换为多选
|
||||
- 时间戳步长只影响 `10` 张基础实时类表
|
||||
- `data_flicker`、`data_fluc` 固定按 `10` 分钟槽位写入
|
||||
- `data_plt` 固定按 `2` 小时槽位写入
|
||||
- 前端先调用预估接口,展示预计写入规模
|
||||
- 用户确认后再调用创建任务接口
|
||||
|
||||
|
||||
Reference in New Issue
Block a user