跳到主要内容

数据库模型

本文档整理了网关将数据存储在哪里以及以何种形态存储。当需要调整保留期、处理磁盘已满或进行直接查询时,请参考此文档。

网关内包含一个 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_LOGREST API 调用记录

TM_TAG_POINT 的结构​

PRIMARY KEY (TAG_ID, TIMESTAMP)
WITH CLUSTERING ORDER BY (TIMESTAMP DESC)
属性值
分区键TAG_ID — 一个标签对应一个分区
聚类键TIMESTAMP 降序 — 从最新开始读取
列VALUE · QUALITY · ERROR_CODE · TYPE · ATTRIBUTE(映射)
CompactionTimeWindowCompactionStrategy,10分钟窗口
为什么使用 TimeWindow

网关的实际操作仅为「写入、短暂读取、通过 TTL 丢弃」。如果按时间窗口将 SSTable 分组,则可以整体丢弃已过期的窗口,从而几乎不产生压缩成本。


保留期 — 数字存在于两处​

模式中的30天并非实际值

scheme.cql 中的 default_time_to_live 是30天(2592000秒),但启动时,会用 app.properties 的 edge.ttl 值将表 TTL 覆盖为 ALTER TABLE。

出厂默认值为 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,比该时间更早的数据将在下一次 compaction 中被回收。此操作不可逆。 如果因磁盘紧张而缩短保留期,请务必在缩短前确认所需数据区间已上传至上层平台。


磁盘已满时​

容量由 标签数 × 采集周期 × 保留天数 决定。必须三项中减少一项。

可调整项方法
保留天数减少 edge.ttl (参考上文)
采集周期增加连接的 TIMECYCLE — 仅保留真正需要以秒为单位采集的标签
标签数关闭未使用标签的自动采集

诊断请参考 诊断与巡检。


相关文档​