TDengine 在数益工联工业物联采集平台建设中的初步实践

易永耀 夏杭泰 邓炜兴|数益工联

公司介绍

数益工联致力于打造基于数据流+价值流的离散制造业数字化软件;应用新一代的物联网技术与丰富的现场交互手段,融合工业工程精益思想,为离散制造业客户的数字化升级提供从规划到实施落地的端到端工厂级解决方案;打造行业与客户的工业数据平台,持续提供数据智能服务。核心团队来自清华大学等知名院校,同时拥有深厚的制造业精益运营管理能力和丰富的数字化工厂成功经验。团队以IE+IT为核心能力,实现产品和技术的双轮驱动,旨在服务离散制造业客户通过数字化显著改善质量管理水平、提升企业生产效率、降低制造成本。

业务场景

工业设备物联采集是数字化工厂建设的基础,设备在运行过程中会产生大量有价值的数据,例如:设备状态、实时工艺参数、合格报废数量、生产节拍、异常报警信息等,设备物联采集可以为后续的数据分析挖掘提供最基础、透明、可靠的数据来源。

目前我们的客户,其设备的主要特点是:

  • 设备类型繁多,不同类设备的通讯接口、采集协议、采集参数各不相同
  • 单个工厂的设备数量:几十至几千
  • 单台设备的采集参数数量:几十至几百
  • 采集频次的基本要求:每秒采集一次,支持变化上报
  • 参数类型包含:数值、文本

我们对自研工业物联采集平台的定位是:可对物联数据进行采集、存储和查询,可用于单个工厂或多个工厂的设备物联采集。

需要支持的特性:

  • 功能稳定
  • 高效的数据写入
  • 高效的数据查询,包括最新数据和历史数据
  • 可云化部署
  • 可私有化部署
  • 线性扩展
  • 高可用
  • 便于连接大数据平台

不需要支持的特性:

  • 修改/删除数据
  • 数据分析

技术选型

基于业务场景的需求,我们选择时序数据库(Time-Series Database)作为物联采集平台的核心组件,并调研了几款产品:InfluxDB、OpenTSDB和TDengine

  • InfluxDB:应用最广泛,稳定性高。劣势是集群版不开源,需要付费,性能不突出。
  • OpenTSDB:基于HBase,扩容方便。劣势是压缩比较低,存储空间大。
  • TDengine:性能强大,部署简单,集群版已开源,社区活跃,国内产品。超级表的设计,与设备类型的概念完美契合,聚合查询非常方便。劣势是推出时间较短,产品比较年轻。

对比之后,我们最终选择了TDengine Database这款性能出众、潜力巨大的产品。通过充分的测试和验证,可以弥补劣势。

技术架构

我们使用TDengine Database存储两类数据:

  • 原始的设备物联数据。同类设备使用同一个超级表。
  • 与业务有关联的设备物联数据,经处理后再存入。同类业务使用同一个超级表。

物联采集相关的架构如下:

TDengine Database

工控机是设备与物联采集平台之间的重要枢纽,根据设备管理模块下发的配置,将各类设备的物联数据转化为统一的格式,加密后上报给物联采集平台。

物联采集平台接收到数据后,根据数据类型进行分发。原始数据直接存入TDengine;部分类型的数据推送到Kafka或者是RabbitMQ中,经业务处理后再存入TDengine。

使用体验

TDengine的写入和查询的效率非常高,平均在10ms以内,性能完全满足我们的要求。给人印象最深刻的是超强的数据压缩能力,以某个客户的数据情况为例:运行一个月时间,产生约3.2亿条记录的数据,每条记录包含约800列,实际占用的磁盘空间竟然不到30G。

TDengine Database
TDengine Database

问题解决

在使用过程中,也遇到过些许问题,例如部分数据在超级表中可以正常查询到,但是无法通过子表查询到。

我们联系了涛思数据的技术支持,涛思很快就协调了开发资源进行问题排查,甚至是通宵处理,最终定位到了原因:我们通过连接池的方式连接TDengine,并进行较为频繁的show tables操作,以测试连接是否正常,该频繁操作最终触发TDengine内部的异常。发布新版本后该问题得到解决,我们也减少了不必要的show tables操作。

非常感谢涛思数据的工程师,非常热诚,及时高效地帮助我们解决了问题!

未来期望

TDengine是个年轻又充满活力的产品,在工业物联领域具有非常大的价值。

希望涛思数据在未来可以推出更友好的开发和运维工具,也非常希望能在开源社区推出一个相对稳定、兼容性较好的版本。