使用IOT-Tree消息流InfluxDB模块节点实现标签数据的时序数据库存储
IOT-Tree Server是个开源物联网软件,可以作为组态软件成为自动化系统的上位软件。她提供了接入、数据组织管理、控制逻辑和人机交互多个方面的功能。IOT-Tree消息流功能是在规整接入各种设备数据之后,提供的功能块组合配置支持(直观快速),通过她你可以在大部分场合快速实现数据的处理——存储、转换、发送等。
如果你对IOT-Tree Server还不熟悉可以参考如下文档:
使用开源IOT-Tree Server进行工业现场自动化控制
https://gitcode.com/jasonzhu8888/iot-tree
https://github.com/bambooww/iot-tree
机房自动化监控手把手分享给你 - 2 温湿度传感器的对接
机房自动化监控手把手分享给你 - 3 漏水传感器的对接
机房自动化监控手把手分享给你 - 4 空调设备对接
机房自动化监控手把手分享给你 - 5 电流监测模块对接
机房自动化监控手把手分享给你 - 6 UPS设备对接
1 时序数据库InfluxDB及消息流对应模块节点
时序数据库(Time Series Database, TSDB)是专为处理时间序列数据优化的数据库系统,适用于监控、物联网、金融分析等场景。其核心特点是高效写入、压缩存储和快速查询时间范围数据。有如下特性
- 时间索引优化:数据按时间戳自动排序,支持高效范围查询。
- 高写入吞吐:针对高频写入(如传感器数据)设计,支持批量插入。
- 数据压缩:采用列式存储和压缩算法(如Gorilla、Delta编码)减少存储空间。
- 降采样与聚合:支持按时间窗口聚合(如每分钟平均值),加速分析查询。
IOT-Tree消息流目前增加了InfluxDB这个最主流的时序数据模块节点支持。关于InfluxDB这个时序数据库的一些基本概念和说明,请参考官网或网络上其他资料,本文章就不展开了。
2 详细配置过程
2.1 InfluxDB数据源配置
在IOT-Tree中,数据源的配置不在项目中,同一个数据源可以被所有项目使用。在IOT-Tree管理员登录之后的主管理界面中,你可以看到有个数据源管理区块:
数据源支持多种类型的数据库,本案例只需要选择InfluxDB类型。
编辑数据源的时候,你可以根据自己使用的InfluxDB地址、端口、Token、Org、Bucket等参数进行填写配置即可:
完成之后,可以在列表中点击对应数据源的测试按钮,如果提示成功说明此数据源配置正确。
2.2 关系数据库表配置
有了上面的数据源,我们接下来就可以在项目消息流中,配置标签数据定时存储到InfluxDB中了。
在你的IOT-Tree项目管理界面左下角,添加一个消息流,点击之后,可以看到消息流具体配置界面,你可以在配置界面左边列表选择存储分类下的“InfluxDB V2”节点,拖拽到配置区就完成了节点的添加。如下图:
2.2.1 配置数据源到此节点
双击添加的“InfluxDB V2 1”这个节点,弹出此节点的详细配置界面,你在里面选择之前配置好的数据源即可
2.2.2 配置Measurement(可以理解为关系数据库的表)
选中“InfluxDB V2 1”这个节点,可以看到在左边节点列表区域会显示出此模块节点的关联子节点,选择“Measurement”这个节点拖拽到编辑区,就完成了节点添加。如下图:
双击“Measurement 1”节点,弹出窗口中填写Measurement名称和标题即可,其他内容不需要修改填写。如下:
这样,我们就准备好了InfluxDB数据库和实时标签数据存放的Measurement。
2.3 同步数据节点配置
有了配置好的InfluxDB数据库和实时标签数据存放的Measurement,我们就可以配置写入标签数据了。在左边节点列表中,选择“接入与设备”分类下的“标签过滤存入时序数据库”这个节点,拖拽到编辑器,就完成了添加。此节点是IOT-Tree专门实现的项目标签实时数据写入时序数据库的支持节点。如下:
此节点左边只要有任意的消息传入,就会做一次标签实时数据到时序数据库Measurement的写入操作。但右边输出资源端子必须接Measurement节点。我们只需要把这个输出端子和之前配好的节点关联即可。
很明显,我们一般情况下不需要把项目中所有的标签数据都存入到InfluxDB中,这个存入节点支持选择过滤需要的标签。双击节点,在打开的窗口中,可以看到如下内容:
在Project Tags是当前选中的需要写入的标签,点击可以在弹出项目标签列表,进行选择修改。以上设置完成之后,基础配置就完成了(Measurement等内容,InfluxDB会自动创建)。
2.4 加入定时触发器——支持定时触发数据写入
上面讲到“标签过滤存入时序数据库”节点需要有输入消息进行写入操作触发,那么最简单的就是添加一个定时节点到当前流程中,你可以根据需要自己设定同步操作时间间隔,如下图:
这样就轻松完成了整个配置过程,如果顺利应该不会超过5分钟。
3 最终效果
启动这个项目,如果运行正常你就可以在你的InfluxDB管理界面中看到本项目的设定的Measurement自动生成,并且不断的根据配置的时间间隔自动写入新的记录。