基于高性能时序数据库 TDengine,三禾一科技打造高端装备运维服务平台

作者:李军/三禾一科技

安徽三禾一信息科技有限公司(以下简称三禾一科技),专业从事大数据行业应用及工业互联网解决方案,致力于携手各行业客户共同发现产业新价值。目前,三禾一科技自研的3H1高端装备运维服务平台已经成功应用在高端装备制造、汽车制造、环保设备、色选机械、水泥行业等领域。

高端成形装备是国家的战略性支柱产业,应用于汽车、石化、航空、航天、军工、工程机械、家用电器等国民经济发展中的重要领域,是许多重大工程的基础。当前,新一代信息技术的快速发展,使得高端成形装备制造业正处于由数字化、网络化向智能化发展的重要阶段。

作为一个高端装备运维服务平台,3H1的底层物联网数据库要支持数百家企业、数十万设备的接入,此前一直采用开源的InfluxDB,原因是在其单机版本基础上可以扩展多实例分库架构,但在使用过程中一些缺点也逐渐暴露,如硬件成本较高、维护难度较大,不便于横向扩展。所幸后来遇到10倍高性能数据库TDengine,经多次试验其各项指标均满足业务需求,便一直使用至今。

为什么选择TDengine?

在装备行业物联网场景下实时数据量巨大,包括温度、压力、振动、位移等众多参数,针对这些参数如何进行分析和预警都是难点。这些需求概况如下:

  • 高并发数据写入,每条记录都需要带时间戳;
  • 不同传感器设备需要记录的数据字段不同,希望能够针对不同设备单独建表;
  • 原始数据存储要求在5年以上,需要支持数据压缩,以降低数据存储成本;
  • 支持国产化,支持数据库厂商服务快速响应。

选用TDengine Database社区版2.2.1.1进行分布式模拟试验,用到了3台配置如下的服务器:

组件配置描述
CPU 4核
内存15G
硬盘4T
操作系统 CentOS Linux release 7.6
网络内网

测试一:验证时序数据库产品3台数据库节点时序数据写入性能

模拟2个厂区共10个车间的数据、每个车间1000个监测点,每个监测点从2017-07-14 10:40:00.000开始写入模拟数据,记录时间戳间隔0.001秒,每个测点写入500000条记录。

8线程写入,在写入超过50亿条记录后停止了写入程序。本次测试对50亿条数据记录的写入,平均写入速度达到191万条/秒。

TDengine Database
条数/秒 总时延(秒)
5000000000/2606= 1918635.03 2606.0193

测试二:验证时序数据库产品3台数据库节点时序数据压缩能力

在测试一的基础上,查看3台数据库节点实际文件大小,如下:

TDengine Database
TDengine Database
TDengine Database

落盘后所有文件大小为36GB,

原始数据大小为5000000000*20/1024/1024/1024=93.13GB,

压缩比为36 / 93.13 = 38.65%。

测试三:时序数据库产品3台数据库节点对历史时序数据按时间回溯查询的性能

随机选择任一个测点,查询该测点在某个时间段内的历史数据,比如从2017-07-14 10:40:00.000 到 2017-07-14 10:40:10.000 10s内的共10001条数据记录(数据输出到文件)。

数据库中对应查询语句为:

  select * from d0 where ts >= ‘2017-07-14 10:40:00.000’ and ts <= ’2017-07-14 10:40:10.000’ >> /dev/null;   
TDengine Database
测试批次 时延(秒)
1 0.052473
2 0.048442
3 0.054255
平均 0.051723

通过试验证,TDengine的写入性能高、并发高、查询时延极短;整体集群采用分布式架构,可靠性、稳定性、数据完整性满足项目需求。

在选型结果确定之后,我们便立刻对原有业务系统进行了升级改造,正式引入 TDengine。

TDengine在3H1上的落地实践

3H1高端装备运维服务平台重点解决高端成形装备企业由制造化向服务化转型的关键问题,为企业提供工业互联网与智能运维的整体解决方案。

平台总体架构如图1所示,其中,TDengine与高端成形装备的智能数据采集终端模块相连,助力采集终端完成对设备运行数据的采集,为系统提供设备数据基础;工业云计算服务平台提供系统数据的存储、转换、分析等,为系统提供业务数据支持;智能运维服务系统由装备智能运维服务平台和智能运维服务APP组成,分别为企业人员提供系统和移动端的服务支持。

TDengine Database
图1 平台总体架构

针对企业多种应用场景,系统应用服务共分为六大功能模块。

(1)企业驾驶舱:主要是服务于设备制造企业的管理者,方便了解平台数据情况与关键业务流程的指标,从整体界面上可以很方便的了解到设备的售卖情况,企业接入的信息,平台数据的采集情况。同时还可以对一些关键的业务流程,包括企业设备的监控、报警信息的展示、维修效率的管理、设备的故障情况和三包任务的信息进行追踪与管理,如图2所示。

TDengine Database
图2 企业驾驶舱

(2)设备资源管理:主要的目的是为了给每一个高端成形装备建立电子档案,以便了解设备历史、当前情况,优化设备运行,预测设备未来状况,查看具体的设备信息时主要展示设备的四个维度——当前工况、健康分析、维修情况和历史工况。

图3所示的当前工况方便用户了解设备的基本信息、关键指标和报警情况,还能够提供设备当前情况的总览。图4所示为健康分析,其目的则是让设备用户更加深入地了解设备的当前状况、设备的健康状况随着时间的变化情况,如果设备当前面临故障风险,也能快速查找到引起风险的故障原因以及故障模块。维修情况则是给了用户设备维修信息的总览和当前维修任务的流程跟踪,如图5所示。历史工况则是为了进行故障模块预排查,如图6所示。

TDengine Database
图3 设备资源管理-当前工况
TDengine Database
图4 设备资源管理-健康分析
TDengine Database
图5 设备资源管理-维修情况
TDengine Database
图6 设备资源管理-历史工况

(3)维修服务管理:主要提供给维修服务部门人员所维修任务当前和历史的效率分析。维修任务展示当前待处理的任务数量,比如待接单、待派单和待回访,同时还可以对每个维修任务进行查看和操作,查看的内容具体到维修流程的每一个环节,如图7所示。

维修效率分析则是对维修中的关键效率指标进行统计分析、近一年来的订单量的变化情况、维修响应时间变化情况、故障类型分布、维修人员任务统计,方便维修管理人员对维修服务和效率进行管理,如图8所示。

TDengine Database
图7 维修服务管理-当前维修任务
TDengine Database
图8 维修服务管理-维修效率分析

(4)设备健康分析:通过分析设备的历史和当前设备信息来预测设备未来可能发生的故障,并且给出故障的可能性和类型,方便维修部门为用户指定维保策略,主动联系用户,如图9所示。

TDengine Database
图9 设备健康分析

(5)三包服务管理:服务于三包部门,提供当前维保活动提醒、设备维保活动记录、设备维保到期预警等功能。

(6)备品备件管理:备品备件管理通过将与维修保养相关的备品备件也都建档立案。用户和各相关部门人员可以在移动端和系统端进行备品备件查询申请审批等操作,较少不必要的工作流程,提高维修保养效率。同时通过数据分析来预测备品备件需求量,保证需求的同时减少企业的库存成本。

在应用TDengine Database后,这六大功能模块在使用效果上也获得了显著提升,不光体现在数据的写入、查询性能上,同时也体现在高效的压缩效率上,真正实现了性能和成本平衡的最优化。

未来规划

目前,在搭载TDengine Database后,3H1原有业务系统在升级改造后获得了极大的提升,不仅降低了研发和维护的成本,同时实现了横向扩展。TDengine优异的查询性能给我们带来了很大的惊喜,极高的压缩效率,也给我们节省了大量的存储资源。未来,我们也会尝试在更多场景应用TDengine,加强与TDengine的深度合作。