知轮科技智慧轮胎系统升级:从 Elasticsearch 到 TDengine 3.0 的应用实践

news/2024/7/4 7:49:10 标签: elasticsearch, tdengine, 时序数据库

小T导读:随着知轮智慧轮胎系统的不断升级迭代,数据规模也在不断增长,内外部人员对智慧系统整体业务响应速度和稳定性要求变得更高。为了满足这一需求,该项目团队决定应用 TDengine 替换原有的 Elasticsearch 检索分析引擎,本文就 TDengine 的应用情况、改造效果等进行了全面分析,给到大家参考。

知轮(杭州)科技有限公司隶属于中策橡胶集团,是一家专注为商用车客户提供轮胎数字化解决方案以及轮胎新零售、移动救援的互联网科技公司。我们以轮胎为核心,致力于帮助用户在车辆行驶过程中更好地应对轮胎购买和使用、轮胎故障救援以及轮胎安全预警等三个关键场景下的一系列问题。

以下是知轮科技三大服务场景:

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="346" src="https://img-blog.csdnimg.cn/img_convert/c48ffd0268c2085c7ff9e41d6fe1217c.png" width="1024" />

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="348" src="https://img-blog.csdnimg.cn/img_convert/4f82064f76185aeb9e0d7e994cb3b193.png" width="1024" />

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="349" src="https://img-blog.csdnimg.cn/img_convert/2ac1444d3254ae8dfdfebf4f3f6f0719.png" width="1024" />

项目选型背景

知轮智慧轮胎系统(简称 VTIS 系统)经过近年的不断升级迭代,数据规模不断增长。特别是最近两年,随着知轮智租系统车辆和某国内快递车队全国快递车辆等相关系统的接入,外部客户和内部人员对智慧系统整体业务响应延迟变得更为敏感,对系统稳定性的要求也变得更高。

而知轮 VTIS 系统先前采用的是 Elasticsearch 检索分析引擎,其无论在产品选型、应用场景还是开发迭代效率方面,都无法满足数据量不断增加的需求。考虑到数据特点和处理需求,我们决定选择更专业的物联网和车联网时序数据库(Time Series Database)来满足系统的要求。

通过各类选型调研后,最终我们选择应用 TDengine 作为 VTIS 系统的时序数据库。主要有以下几方面的考量:

  • 业务适配性:TDengine 符合 VTIS 系统物联网 + 车联网特性。
  • 运维成本:TDengine Enterprise(企业版)由涛思数据提供 24 小时专人运维服务,运维成本显著降低。
  • 数据压缩率:时序列式存储促成了 TDengine 超高的数据压缩比,结合数据重整功能,实测数据相比 Elasticsearch 数据压缩比超过 1:10,为企业节省了更多的服务器磁盘费用。
  • 读写性能优异:对于时序数据来说 TDengine 的写入性能极高,实测 3 节点高效云盘写入速度可达 30W 测点每秒。数据读取性能也表现的很优异,针对相同时序数据量,其读取速率 10 倍于原有的 Elasticsearch 引擎。
  • TDengine 具有低服务器资源占用率、高可用性和稳定性的特点。它支持用户自定义函数(UDF)算法集成,并提供各类数学算法的支持。
  • 冷热分离:TDengine 提供多级存储,对历史数据可全自动迁移低频低价存储介质中进行存储,降低企业数据存储费用。
  • 车企接入率高:针对公司所属行业合作对接情况,结合涛思数据官网各类落地案例,TDengine 在快递物流行业、物联网行业均有较高接入率,能够为公司后续商业发展提供更友好的数据支持。

业务架构 & 经验分享

目前该项目上使用的是 TDengine 3.1.1.11 企业版的 3 节点集群,单台配置为 16 核 CPU + 64GB 内存 + 3TB 高效云盘。数据整体流向架构图(简化)如下所示:

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="719" src="https://img-blog.csdnimg.cn/img_convert/83cb91aa82a6dcb24fdcfaf28d6bf78c.png" width="1024" />

以车辆实时胎温胎压数据采集为例。边缘网关一般会每隔一定时间(秒级)采集胎温胎压数据,其中包括胎温、胎压、漏气情况等数据,通过边缘计算进行首次数据整合、比对预警阈值后,网关一般情况下以 3 分钟(报警时秒级)间隔通过 TCP 链接 + 私有协议将数据发送至 VTIS 云平台 Netty 网关。

实时流数据经 VTIS Netty 网关服务后依次执行数据解码、流数据实时分析、预警推送、数据整合等步骤后批量写入 TDengine 中。需要注意的是,TDengine 写入需保持单子表顺序写入的规则,因此写入前的数据顺序重整很有必要,这可以减少数据空洞的产生。

基于 TDengine 一个设备采集点一张子表的建模思路,在涛思数据交付团队协助下,我们建立了车辆胎温胎压数据的库表结构大致如下(简化):

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="346" src="https://img-blog.csdnimg.cn/img_convert/599dad11a47f34bd80e505dd724e67e6.png" width="1024" />

列设计-采集量:

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="353" src="https://img-blog.csdnimg.cn/img_convert/fe0093e79d0a0b0ea42203e3a5b34d14.png" width="1024" />

列设计-状态量:

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="179" src="https://img-blog.csdnimg.cn/img_convert/42d214a04572d89917c47ddfb8c890a5.png" width="1024" />

标签设计:

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="125" src="https://img-blog.csdnimg.cn/img_convert/c1aa5159214168c0c2cb45c78173bbb4.png" width="1024" />

上述数据保存时间为 180 天,数据文件切分跨度 1 天,由于单车辆存在多轮位同时刻胎温胎压数据,我们便以时间戳后六位对数据进行区分。此外,通过 TDengine 提供的各类原有函数配合用户自定义函数,我们编写了基于时序的算法配合实时流计算(如即时态势温度感知),以此提高预警效率和及时性,减少误报情况的发生。

运行情况 & 改造效果

项目上线后稳定运行至今,资源占用率平稳。对比原有的 Elasticsearch,TDengine 存储时序数据存在明显的优势,主要表现在如下几点:

  • 磁盘占用

Elasticsearch:基于 Lucene 内部以 JSON 格式存储,数据压缩率低,磁盘占用率高;

TDengine:时序列式存储,同一设备随时间数据变化不大,压缩率极高,相比 Elasticsearch 有 10 倍左右的压缩比,磁盘占用率低。

  • 内存占用(单节点内存配置皆为 64GB)

Elasticsearch:内存占用量 4 个节点皆在 54GB 以上;

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="418" src="https://img-blog.csdnimg.cn/img_convert/12b15a340175f4fa27b33320c293789f.png" width="823" />

TDengine:内存占用量 3 个节点皆仅在 4GB 左右。

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="217" src="https://img-blog.csdnimg.cn/img_convert/2356bff47df2be9e1fdba9dec094cf29.png" width="961" />

此外,TDengine 还具有如下优点:

  • 数据读写性能强大:对于时序数据的顺序写入速率极快 ,时间范围查询效率极高。
  • 复杂时序运算:通过 TDengine 的 UDF(用户自定函数)功能,方便 VTIS 系统后续进行时序态势胎温实时流计算和其他复杂时序数据的实时计算。复杂运算不影响整体集群稳定性和时延。
  • 数据订阅服务:利用 TDengine 的数据订阅功能,将数据实时导入阿里云 MaxCompute 大数据仓库,实现近实时的数据可视化分析和模型建立。

第三方平台可以利用 TDengine 的数据订阅功能实现数据便捷流转,便于知轮科技与各家快递物流、车企、公交集团等进行数据对接。未来希望 TDengine 能增加更多便于运维的功能,比如无阻塞的数据重整、数据慢查询隔离池等。

可视化与未来

在车辆胎温胎压监控领域的可视化中,展示信息的完整性、实时性、可交互性和灵活性至关重要。TDengine 提供高效的查询能力和简单易用的 SQL 语句,能轻松实现这些需求。通过网页展示工具调用 TDengine 的 SQL,我们成功创建了展示各类车辆预警事件的主看板,为车队集团的运营决策提供重要支持。

压缩率十倍于 Elasticsearch,TDengine 在知轮科技智慧轮胎系统中的应用 - TDengine Database <a class=时序数据库" height="576" src="https://img-blog.csdnimg.cn/img_convert/f9c0ac4ddefd84c36cf5f0206f95bf48.png" width="1024" />

以上是 TDengine 3.0 在轮胎智能预警领域的应用案例,类似的需求也存在于快递物流、公共交通、港口码头等多个轮胎应用场景中。随着智能化的不断演进,知轮科技的 VTIS 系统将通过采用 TDengine 在未来扮演更加重要的角色。

作者简介:尤佳迪,知轮(杭州)科技有限公司,负责 VTIS 系统物联网平台业务。


了解更多 TDengine 的具体细节,可在 GitHub 上查看相关源代码。


http://www.niftyadmin.cn/n/5425698.html

相关文章

【Scala】一、Scala 语法基础

Scala 一些简单的小概述 用于练习以及开发的 Scala 版本&#xff1a;2.11.8 这里使用 IDEA 作为 Scala 的 IDE 注意&#xff0c;我们必须安装 scala 插件 才可以创建scala项目 一个简单的字符串替换 demo&#xff1a; object Main {def main(args: Array[String]): Unit …

【STM32详解FLASH闪存编程原理与步骤】

STM32详解FLASH闪存编程原理与步骤 FLASH编程注意事项FLASH编程过程STM32的FLASH擦除过程FLASH全片擦除FLASH操作总结锁定解锁函数写操作函数擦除函数获取状态函数等待操作完成函数读FLASH特定地址数据函数 FLASH编程注意事项 1.STM32复位后&#xff0c;FPEC模块是被保护的&am…

MybatisPlus知识点总结(基于黑马2023MybatisPlus课程)

MybatisPlus知识点总结 配套资料 黑马微服务框架笔记&#xff0c;内含mpMybatisPlus.pptxMyBatis-Plus &#xff08;mp中文官网&#xff09; 快速入门 入门案例 使用MybatisPlus的基本步骤&#xff1a;1.引入MybatisPlus依赖&#xff0c;代替Mybatis依赖2.定义Mapper接口并继…

RC522刷卡电路设计及程序

一、RC522刷卡电路组成 基于RC522的刷卡电路如上图所示。该电路组成主要分为三部分&#xff1a; Receiving Circuit&#xff1a;接收电路&#xff0c;接收卡发送的数据。 Filtering Impedence-Transtorm circuit:滤波和阻抗变换电路&#xff0c;抑制高次谐波并优化到读卡器天线…

git之系列

git之常用ignore 。 git之常用命令 。 git之reflog分析 。 git之添加和删除全局配置 。 git之如何恢复代码到之前版本 。 git之merge和rebase 。 git之如何合并部分提交 。 git之本地有未提交代码如何切换分支 。 Git通过tag创建分支并推送到远程 。 git commit feat等…

Eslint + Prettier 配置

setting.json {"eslint.autoFixOnSave": true, // 保存文件时自动修复可修复的问题"eslint.validate": [// 定义哪些文件类型应该由 ESLint 验证"javascript","javascriptreact","vue" // 如果你正在使用 Vue&#xff0c;确…

使用 stat命令查看文件信息

在Linux系统中&#xff0c;stat命令用于获取文件的详细信息&#xff0c;包括文件的大小、权限、最后访问时间、修改时间等。通过使用stat命令&#xff0c;可以方便地查看和验证文件的属性。 下面是一个使用stat命令查看文件readme.txt信息的示例&#xff1a; [rootcloudstack…

代码随想录算法训练营第七天|454. 四数相加 II

454. 四数相加 II 已解答 中等 相关标签 相关企业 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 < i, j, k, l < nnums1[i] nums2[j] nums3[k] nums4[l] 0 示例 …