实时数据存储
插件用途
将转发组内每个变量的最新值写入数据库,适合为监控画面、接口查询或报表提供当前数据。实时表只保留最新记录,不保存变化过程。
转发组范围、触发方式和启停操作见数据转发。本页只说明实时数据存储特有的数据库参数和调试页。
保存一个变量的最新值
- 打开“开发配置 → 数据转发”,新增转发组,范围选“手动选择”,触发模式选“定时”,定时间隔填
1000,保存。 - 重新编辑组,在“转发变量”中搜索一个正常更新的变量,选中后点击加号并保存。
- 在组下新增目标
Demo_Real_Target,插件选择“实时数据存储”。 - 目标属性选择
Sqlite,连接字符串填Data Source=manual-real.sqlite;journal mode=WAL,实时表名保持realValue,实时表脚本留空,其他保持默认。 - 保存并启用组和目标。文件位于网关运行目录,该目录必须可写。
- 等几个周期,到“数据与告警 → 数据查询 → 实时数据”,选择
Demo_Real_Target,刷新后查看该变量的值。
需要保留每个采样时刻、绘制历史曲线时,改用历史数据存储,不能从只保留最新值的实时表中找回变化过程。
目标基本信息
| 参数 | 默认值 | 如何配置 |
|---|---|---|
| 所属转发组 | - | 必须选择已保存的转发组。 |
| 目标名称 | - | 必填,同一转发组内不能重复。建议包含数据库和环境名称。 |
| 启用 | 开启 | 关闭时不会初始化实时表或写入数据。 |
| 日志级别 | Info | 排查连接或写入问题时临时使用 Debug。 |
| 启动超时 | 60 秒 | 页面可填 1~3600 秒。 |
目标属性
| 参数 | 默认值 | 如何配置 |
|---|---|---|
| 数据库类型 | SqlServer | 支持 SqlServer、MySql、Sqlite 和 PostgreSql。选择后使用对应连接字符串格式。 |
| 连接字符串 | 开发环境 SQL Server 示例 | 替换为实际地址、数据库、账号和密码;账号需要建表、查询和写入权限。 |
| 实时表名 | realValue | 标准模式下保存每个变量最新值的表名。多个目标应使用不同表名或数据库。 |
| 实时表脚本 | 空 | 从表达式选择器选择动态 SQL 脚本,脚本负责建表和写入;留空时使用标准实时表。 |
| 时区偏移 | +08:00 | 填 +08:00、-05:00 等固定偏移;留空表示 UTC。写入和查询需使用同一时区约定。 |
| 过滤离线数据 | 关闭 | 开启后不写入离线变量;转发组在线过滤也会在数据进入目标前生效。 |
关系型数据库连接字符串
| 数据库 | 示例 |
|---|---|
| SQL Server | Server=127.0.0.1,1433;Database=thingsgateway_realtime;User Id=history_user;Password=<密码>;TrustServerCertificate=True; |
| MySQL | Server=127.0.0.1;Port=3306;Database=thingsgateway_realtime;Uid=history_user;Pwd=<密码>; |
| SQLite | Data Source=DB/realtime.db;journal mode=WAL |
| PostgreSQL | Host=127.0.0.1;Port=5432;Database=thingsgateway_realtime;Username=history_user;Password=<密码>; |
实时目标不支持 QuestDB、TDengine 或 IoTDB。实时表是按变量主键覆盖更新,不是历史追加表;写入失败后等待下一次变量快照或变化覆盖,不使用历史目标的 CacheDB 出站重试队列。
目标变量属性
该插件没有目标变量级附加参数。变量是否进入目标由转发组范围和触发策略决定。
目标调试
进入“开发配置 → 数据转发”,选择当前转发组和目标后打开“调试”。
| 功能 | 作用 |
|---|---|
| 转发管线 | 查看变量范围、触发方式和进入实时表的数据摘要。 |
转发管线

“转发管线”显示变量范围、触发方式、变量数量和进入目标的数据摘要。实时数据存储直接更新最新值,不提供“缓存出站”页。
验证方法
- 启用转发组和目标,确认目标在线。
- 让一个已纳入转发范围的变量产生新值。
- 查询实时表,确认变量 ID、值、采集时间、更新时间和在线状态正确。
- 再次更新同一变量,确认该变量仍只有一行,但值和更新时间发生变化。
常见问题
| 现象 | 检查方法 |
|---|---|
| 目标无法启动 | 检查数据库类型、连接字符串、网络和数据库账号权限。 |
| 实时值没有更新 | 检查变量是否在转发组范围内、目标是否在线,以及“过滤离线数据”是否排除了该变量。 |
| 表中存在旧值 | 确认查询的是当前目标配置的实时表,并核对变量标识。 |
| 数据库中断期间数据消失 | 实时存储不使用历史目标的 CacheDB 重试队列;恢复数据库后触发新的变量快照或变量变化即可覆盖最新值。 |