“天工云中控”助力传统工业转型,TDengine帮了我们大忙
公司简介
“天工云中控”项目是中科云创综合运用物联网、语音识别、图像识别、机器学习、AR、设备远程维修等多项新科技搭建的工业物联网设备健康管理SaaS服务平台。定位是为工业设备全生命周期管理提供技术支持,提高企业生产效率,降低运维、融资和备件的采购成本。
在这个项目中,TDengine作为基础数据库的角色,承担着实时数据存储、高效压缩、快速聚合查询等任务,在“天工云中控”的工业物联网、智慧城市、传统工业、能源行业、化工行业和消防安全等领域发挥了十分重要的作用。
当前,“天工云中控”已经帮助多地政府,建立针对当地生产企业集群的通用化工业设备上云公共服务平台,助力政府和企业快速实现行业数据分析、订单透明化生产、设备和环境安全监控和预警等功能。在智慧城市领域,“天工云中控”提供的物联网数据中台、智慧消安防、智慧配电等多个垂直应用,也已经应用在北京、重庆、成都、贵阳、武汉等多个城市甚至包括新加坡等海外国家。
与TDengine初相识
2020年中旬,我们开始对时序数据库做技术选型。由于之前公司采用的是某公有云的数据库,所以一开始依然是基于公有云开始评估的。但出于对公司数据安全性的考量,我们发现数据库服务包括数据存储、备份等需求在公有云上都存在很多不可控的因素。所以我们开始转变思路,对可以私有化部署的时序数据库进行选型。
我们决定在TDengine和InfluxDB之间进行抉择,各种评估工作也随之展开。由于InfluxDB只是单机开源,且在单机规模下的性能、存储、数据压缩比等各方面的指标也不如TDengine;此外,从多方资料以及官方人员的科普得知,TDengine更大的亮点在于集群横向扩展处理海量数据且功能开源,再加上有国产时序数据库的加成,因此我们终确定采用TDengine作为本项目的数据库解决方案。
搭建与效果
在测试阶段,我们使用了三台4核8G、数据磁盘1T(支持无限扩容),搭建起了一套三节点三副本的TDengine集群服务。在测试完成之后,TDengine于2021年7月正式投入使用。2021年12月,天工云中控项目正式全面地切入TDengine服务。
目前根据业务类型,我们已经创建了8张超级表以及数十万张子表,基础数据如下:
TDengine在应用集成方面做得非常完善,支持C/C++,java,Python等多种语言,在应用的过程中,我们采用Springboot非常快速地就完成了服务的集成,同时使用“采集数据以数据类型为基准存储”,完全适配了原有的业务模式,迅速完成了对原有服务的“鸟枪换炮”。
我们的原始数据为单副本存储,经某云上的时序数据库压缩后为50G左右的数据量,三副本就是150G;但是迁移到TDengine上采用三副本后,目前存储占有仅为 114GB:
按照我们原有的数据存储空间的核算,少预估需要150G(50*3)的磁盘空间来做存储,但有赖于TDengine对数据超高的压缩率,比某云时序数据库多节省了将近40G的容量。
在数据写入方面,以我们接入的能源行业其中某一个客户为例,他们目前采集的设备为300台,数据采集点45000个,每秒的数据写入量50000个点。TDengine单核就可以处理每秒2万次的请求,对于TDengine的集群版来说,五万的写入量可谓是轻轻松松,随写随查完全做到了零延迟。而整体上,目前的总接入量每秒基本是20万个点左右。
在数据查询方面,针对超级表的数据查询,st_int,数据量554亿条数据:
对该表进行降采样查询——查询一个月内每周的value总量:
select sum(value) from st_int where value = 2 AND ts >= ‘1601481600000’ AND ts <=‘1604073599000’ interval(1w);
在原始数据达到550亿行这个数量级的情况下,筛选+分组聚合查询数据仅8秒就完成了。但其实在我们的日常使用过程中,更多的是对某个点位(子表)的聚合查询,而这种查询都很快就能完成。
比如下面这个将近一年时间跨度数据的降采样查询,仅用时0.538s:
select sum(value) from c_Alx1b7hr where ts >= ‘1577808000000’ AND ts <=‘1603987200000’ interval(1w);
在日常工作中,单台服务器CPU使用维持在30%左右,内存的占用量大概为5GB左右。
综合多方面的具体分析,TDengine 对我们分析业务模块不仅带来了性能上的巨大提升,更是在成本上达到了几乎对半的下调,这极大地节省了我们在基础数据库建设上的投入。
结语
在此,我们想感谢一下TDengine官方社区。虽然我们使用的是开源版产品,但从项目初步上线,到数据迁移,再到正式完成切换,官方社区依然给到了我们非常全面的一对一支持。在他们的帮助下,我们顺利完成了阶段的数据库建设,并且平稳实现了新旧产品的过渡。目前,我们的本地化部署还未走向跨区域(机房)阶段,未来我们计划将TDengine更全面地推广到各类业务应用中,促进“天工云中控”SaaS平台的更平稳发展。
希望在TDengine应用到各类项目的过程中,也能促进其各项特性的进一步完善。此外,随着我们业务规模的扩大,双方也有望达成更深层次的合作,实现双赢。
来源 https://www.modb.pro/db/334460
相关文章