Apache IoTDB “硬实力”——从 PLC 采集到 Spark 分析实物展示台

2020-09-27 10:22:05 浏览数 (1)

Apache IoTDB 已经在很多物联网系统中得到了应用。为了让大家理解工业物联网的时序数据是如何采集、存储、查询分析,并进行可视化。我们做了一个IoTDB展示台,这是一个 IoTDB 在实际应用中功能的缩小版,展示了 IoTDB 管理物联网时序数据的几种常见场景。

正文 1978 字,预计阅读时间 5 分钟。

展示台简介

展示台示意图

本展台展示了Apache IoTDB 在管理物联网时序数据的几种常见场景。

工业互联网时代,越来越多的终端设备通过传感器采集自身及周边监测数据,并打上时间标签,构成了工业大数据的主体——时序数据。

展示内容:

(1)手机内的光照传感器、PLC控制的测距传感器、树莓派连接的陀螺仪等,将采集的时序数据通过网络将发送并存储到设备端的 IoTDB 中;

(2)设备端的 IoTDB 可提供实时的查询功能和可视化展示;

(3)设备本地的数据文件回传给服务器端的 IoTDB并直接加载;

(4)服务器端的 IoTDB 提供长久历史存储,同时支持实时查询和复杂的数据分析,如通过 Spark 读取 IoTDB 中的数据进行计算分析。

传感器数据采集

物联网时序数据的产生源头就是各种工业设备上的传感器。这个展示台共有两个传感器,拉线式测距传感器和陀螺仪。

第一个是拉线式测距传感器,这个传感器可以实时测量这个线被拉出来的距离,构成了 1 个时间序列。这个传感器的数据需要一个支持modbus协议的三菱 PLC 采集。PLC (可编程逻辑控制器),被称为工业生产系统的大脑。PLC 主要有两个功能:(1)下发控制命令,包括开关量和模拟量 (2)采集传感器上的数据。这里主要展示数据的采集。

第二个传感器是一个陀螺仪,它可以测重力加速度和角速度在三个坐标轴上的分量。共6个时间序列。这个传感器可以直接通过驱动程序采集。

设备端 IoTDB

中间是一个树莓派,树莓派就是一个微型电脑,五脏俱全。主要用来模拟连接设备的场控机。我们在这个树莓派中部署了一个 IoTDB,并开发了通过 PLC 从测距传感器里采集数据的程序,并且将数据存入 IoTDB 中。这个采集程序使用了 Apache PLC4X ,PLC4X 提供了一种统一的方式,支持各种工业协议与 PLC 交互。此外,陀螺仪的驱动程序也运行在这个树莓派里。测距传感器和陀螺仪的数据都实时存入了设备端的 IoTDB 中。

可视化

左上角的屏幕是个可视化软件 Grafana,我们开发了扩展插件 iotdb-grafana ,这样通过 Grafana 可以直接将 IoTDB 中的时序数据实时的可视化出来。这样工厂的监控人员就可以实时监控设备运行状态。

IoTDB-Grafana-Connector文档:

https://iotdb.apache.org/#/Documents/progress/chap7/sec1

IoTDB 实例间数据同步

工厂中有很多的设备以及场控机部署的 IoTDB,我们想把所有设备的数据汇总到云端,这时候我们不希望把数据重新写一份,于是开发了数据同步功能。可以将一个 IoTDB 实例里的数据文件(TsFile)定期同步给另一个 IoTDB 实例。右边这个树莓派模拟了一台云服务器,上边也部署了 IoTDB。设备端的 IoTDB 定期把数据文件发送到服务器端的 IoTDB 中。

文件回传功能文档:

https://iotdb.apache.org/#/Documents/progress/chap6/sec1

大数据分析

IoTDB 采用了查询分析一体化的架构,一份数据不仅可以支持实时查询,也支持spark进行大数据分析。我们开发了 4 种连接器。

MapReduce直接读数据文件(MapReduce-TsFile):

https://iotdb.apache.org/#/Documents/progress/chap7/sec2

Spark 直接读数据文件(Spark-TsFile):

https://iotdb.apache.org/#/Documents/progress/chap7/sec3

Spark直接读IoTDB (Spark-IoTDB-Connector):

https://iotdb.apache.org/#/Documents/progress/chap7/sec4

Hive直接读数据文件 (Hive-TsFile):

https://iotdb.apache.org/#/Documents/progress/chap7/sec5

互联网数据采集

互联网领域,比如手机里的传感器,我们开发了一个简单的 APP 采集数据,并写到 IoTDB中。由于 IoTDB v0.9.0 支持了在写入时动态注册元数据,客户端编程也很方便(0.9.0马上发布)。

实物图

总结

这个展示台就介绍到这了!主要包括 IoTDB 在工业领域的数据采集、存储、可视化、传输、查询、分析等功能。这个展示台汇总了我们从2018年4月数字中国到现在做的所有展示功能。

0 人点赞