小 T 导读:在拓斯达的智能工厂整体解决方案项目中,传统的关系型数据库已经无法高效处理时序数据,在加载、存储和查询等多个方面都遇到了挑战,最终他们选择了来匹配工业传感器数据的应用分析场景 。本文将讲述他们应用的具体实践 。
企业简介
广东拓斯达科技股份有限公司(简称:拓斯达,股票代码:)是广东省首家登陆创业板的机器人骨干企业 。拓斯达坚持“让工业制造更美好”的企业使命,通过以工业机器人、注塑机、CNC为核心的智能装备,以及控制、伺服、视觉三大核心技术,打造以核心技术驱动的智能硬件平台,为制造企业提供智能工厂整体解决方案 。
【写入速度提升数十倍,TDengine 在拓斯达智能工厂解决方案上的应用】项目介绍
在工业领域,生产、测试、运行阶段都可能会产生大量带有时间戳的传感器数据,这都属于典型的时序数据 。时序数据主要由各类型实时监测、检查与分析设备所采集或产生,涉及制造、电力、化工、工程作业等多个行业,具备写多读少、量非常大等典型特性 。
在我们的业务中,传统的关系型数据库( )已经无法高效处理时序数据,在加载、存储和查询等多个方面都遇到了挑战 。主要问题可以汇总如下:
为了更好地满足时序数据的处理需求,我们决定进行数据库选型调研,最终选择了时序数据库(Time- ) 。事实证明,针对时序数据的写入、存储、索引、查询等方面都进行了特定的优化,从而实现了更优的数据加载、数据压缩、查询写入性能,非常匹配工业传感器数据的应用分析场景 。
选择的理由
与通用数据库相比,的压缩率表现惊人,核心原因是其采用列式存储,而且采用了二阶段压缩策略,还针对不同数据类型采取了不同的压缩算法,这种压缩机制使其压缩率远超其他数据库 。
此外还拥有极高的读写性能,并且读写速度受数据存储规模的影响微乎其微,要知道通用数据库的数据量一旦过百万级,读写速度就会有明显下降,之前我们做过一次 MySQL 批量插入数据的测试,性能差距明显,这也是在大量级数据存储下我们会选择的重要原因之一 。具体来说,优势如下:
当然,世上没有完美的数据库,我们在应用之后总结出了两点待改进的地方:
但每一款产品都是在发现问题和改进问题的步伐中逐渐进步的,而且对于我们的业务实现来说,不存在明显的短板 。没有最优的数据库,在场景匹配的情况下,我们最终采用了。
落地实践
我们是通过网关采集设备数据推送到 MQTT,Java 后端监听到后会写入,在后端按需求查询处理后再把数据返回给前端 。
具体来说,网关会先读取后台发布的上行规则,在采集到设备数据后,使用上行规则对数据进行处理计算后再将结果返回给下行规则模块,后台监听到后,会连接进行数据库表的创建修改和数据写入 。之前在云平台我们使用过 Kafka 进行数据的发布订阅,现在所有环境都改为 MQTT 了 。
在应用时,我们建立了流水数据库 “” 用来存储网关传来的数据,便于日后查询使用 。我们遵循“一个采集点一张表,一类数据一个超级表”的思路来建表,在具体实践上设计了两张超级表,一张是用于存储 log 指令内容的“logs”表,另一张是用于存储其它指令内容的“datas”表,数据类型基本为电流电压、设备状态等 。在进行数据存储时首先会对数据加以判断,再决定将数据存储到哪张表里 。
落地效果
运行一段时间后,的查询、写入速度完全可以满足我们目前的客户需求,最慢的分钟级,最快的能达到 1 秒一条;一个设备一天最多能写入近十万条数据,近千个设备同时写入也完全没有问题,相较于之前,写入速度提升了数十倍 。查询数据在以月为单位的时间范围内没有过于明显的延迟,整体的数据压缩比大概是1/10,目前每天产生的数据量在数G左右 。
- 软件测试的自我学习和提升
- 提升你的Android开发技能:从AR/VR沉浸到UI设计和故障排除
- 少儿编程启蒙课程:每天30分钟提升孩子的逻辑思维能力
- angularjs 获取复选框的值_家园风水值怎么快速提升_天涯明月刀手游怎么拜
- 让程序提升Debug权限
- 提升生鲜B2B电商系统的效率与品质,实现采购与销售的双赢
- 九号卡丁车
- 极速旋风
- 宁波外语培训
- 剪映,剪映怎么调整速度