15 lines
992 B
Markdown
15 lines
992 B
Markdown
|
|
# Change: 扩展心跳消息与分区表以支持电力/空调数组(v3)
|
|||
|
|
|
|||
|
|
## Why
|
|||
|
|
当前心跳数据仅落库基础字段与 extra,无法按需查询与聚合“电力设备/空调设备”的细粒度状态;需要将数组结构拆列为数据库数组列,并对指定列提供数组元素索引。
|
|||
|
|
|
|||
|
|
## What Changes
|
|||
|
|
- **Kafka**:新增可选字段 `electricity[]`、`air_conditioner[]` 以及元素字段定义
|
|||
|
|
- **Processor**:新增数组字段类型校验与“按原始顺序聚合为列数组”的转换规则
|
|||
|
|
- **DB**:在 `heartbeat.heartbeat_events` 新增数组列,并为 `elec_address/air_address/state/model` 建立 GIN 索引(数组元素查询)
|
|||
|
|
- **Docs/Tests**:更新 producer 与 schema 文档;补充单元测试与冒烟验证
|
|||
|
|
|
|||
|
|
## Impact
|
|||
|
|
- Affected specs: `openspec/specs/kafka`, `openspec/specs/processor`, `openspec/specs/db`
|
|||
|
|
- Affected code: `src/processor/heartbeatProcessor.js`, `src/db/databaseManager.js`, `scripts/db/*.sql`, `docs/*`, `test/*`
|