数据库模型
网关存放数据的位置和格式参考文档。调整保留周期、磁盘满了或需要直接查询时查看。
网关内内置一个 Cassandra
Edge 将自有数据存储在本地 Cassandra(127.0.0.1:9042,键空间 PE)。
这与上层平台的 Cassandra(pp)不同 — 这是网关独立的存储库,即使网关断线也能继续采集。
共11个表,分为两类。
| 前缀 | 含义 |
|---|---|
APP_ | 配置 — 采集什么 |
TM_ | 时序·运营记录 — 采集的数据及其过程 |
APP_ — 采集配置
在界面(连接 · 标签)上创建的配置直接存储在这里。
| 表名 | 存储内容 |
|---|---|
APP_OPC | 连接定义 — OPC_ID · 名称 · 协议(OPC_TYPE) · 目标 IP/端口 · 采集周期(TIMECYCLE) · 自动采集状态 |
APP_TAG | 标签定义 — 读取地址和数据类型 |
这两个表丢失会导致采集停止
时序数据可以重新采集,但配置是人工创建的,无法恢复。 备份时不要遗漏这两个表 → 备份。
TM_ — 采集值和运营记录
| 表名 | 存储内容 |
|---|---|
TM_TAG_POINT | 原始采集值 — 此存储库的核心 |
TM_TAG_POINT_ARCHIVE | 保存副本 |
TM_TAG_ERROR | 标签级采集错误 |
TM_TAG_STAT | 标签统计 |
TM_TAG_WRITE | 写入(控制)历史 |
TM_OPC_STAT | 连接统计 |
TM_PLC_PING | 目标设备响应确认历史 |
TM_MONITOR | 网关资源·状态 |
TM_API_LOG | REST API 调用记录 |
TM_TAG_POINT 的结构
PRIMARY KEY (TAG_ID, TIMESTAMP)
WITH CLUSTERING ORDER BY (TIMESTAMP DESC)
| 属性 | 值 |
|---|---|
| 分区键 | TAG_ID — 每个标签对应一个分区 |
| 聚类 | TIMESTAMP 降序 — 从最新开始读取 |
| 列 | VALUE · QUALITY · ERROR_CODE · TYPE · ATTRIBUTE(映射) |
| Compaction | TimeWindowCompactionStrategy,10分钟窗口 |
为什么使用 TimeWindow
网关只需要「写入、短时间读取、通过 TTL 删除」。按时间窗口组织 SSTable,可以整体删除过期窗口,压缩成本几乎为零。
保留周期 — 两个位置有数值
模式中的 30 天不是实际值
scheme.cql 的 default_time_to_live 是30天(2592000秒),但启动时
app.properties 中的**edge.ttl** 值会**ALTER TABLE** 表 TTL,覆盖该设置。
出厂默认值为 edge.ttl = 60(天),所以实际保留期为60天。
不要只看模式文件就判断是 30 天。
要修改,编辑 edge.ttl 并重启。
cd /opt/kopens/plantpulse-edge/bin
./config.sh --get edge.ttl
./config.sh --set edge.ttl 90
./config.sh --restart # 기동 시 ALTER TABLE 로 반영된다
减少时立即删除
降低 TTL 后,超过新 TTL 的数据会在下次 compaction 时回收。无法恢复。 如果因磁盘紧张而需要减少,请先确认已将需要的时间段上传到上层平台。
磁盘空间满时
容量由标签数 × 采集周期 × 保留天数决定。需要减少这三个因素中的一个。
| 调整位置 | 方法 |
|---|---|
| 保留天数 | 减少 edge.ttl(见上文) |
| 采集周期 | 增加连接的 TIMECYCLE — 只保留确实需要秒级采集的标签 |
| 标签数 | 关闭不使用的标签的自动采集 |
诊断方法参见诊断。
相关文档
- 备份 — 需要备份什么
- app.properties 指南 —
edge.ttl等键 - 监控
- 数据点检索 — 在界面中查询时序数据