从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路

小 T 导读:至数物联网平台场景多、数据模型复杂,伴随着业务需求的不断迭代及数据量的不断上涨,原有的 OpenTSDB+MySQL 的组合逐渐力不从心,局限性日益凸显。在对 TDengine 进行充分了解与调研后,基于 TDengine Database 对至数摇光进行了彻底性的改造。本文分享了至数结合自身平台特点进行系统架构升级改造的经验,以供参考。

公司简介&项目背景

至数(Medatc)是一家致力于打造行业最佳设备资产数据化运营、管理、服务的平台,为客户提供全方位的设备资产管理支撑,其拥有丰富的行业经验,以及在大数据、人工智能、物联网、互联网+领域的创新实践能力。公司成立至今已经获得红杉资本等知名投资机构的战略投资。

至数摇光(即:至数物联网平台)通过动态能量主动标识,动态环境主动标识,智能网关,应用工业互联网时序数据高效采集,边缘计算以及智能算法自动分发等一系列技术,基于医疗设备行业主数据规范,助力医疗机构短周期、低成本、高质量、广覆盖地实现有源设备智慧管理。

一、至数摇光具有场景多、数据模型复杂的特点

至数摇光是以提效降耗为目标,帮助医疗机构实现有源设备的高效管理,为设备使用效率智能分析,设备科学配置,设备动态调配,设备安全保障提供全方位支撑。目前共推出了 15 项智能场景应用,30 项事件及异常告警提醒。

至数摇光的上述场景改造前数据库采用 OpenTSDB+MySQL 结合的方式实现,由于 OpenTSDB 无法满足复杂查询场景,因此 80% 的场景指标只能基于 MySQL 数据库来实现,这样带来的问题就是 MySQL 数据库的数据增长迅速,需要定时做冷热数据分离及数据库表维护动作。

二、TDengine 助力至数物联网平台实现技术改造

作为一个大而全的数据库,OpenTSDB 稍显笨重,伴随着业务需求的不断迭代及数据量的不断上涨,其局限性日益凸显,系统的架构升级和改造工作日渐迫切。

2021 年我们在对 TDengine Database有了充分的了解后,决定将至数摇光从时序数据 OpenTSDB 迁移到 TDengine,并基于 TDengine 的特性对摇光进行彻底性的改造。目前改造工作已经全部完成,改造后有大约 80% 左右的指标模型放到了 TDengine 中,20% 左右的主数据或维表数据存放在 MySQL 数据库中。

相较于改造前的 80% 指标模型存放在 MySQL 中,20% 指标数据存放在 OpenTSDB 数据库中,结果刚好进行了颠倒,服务器资源使用情况也有所下降。应用整体的页面影响速度显著提高,数据模型及数据指标上也可以更加地灵活多变。

以下为至数摇光网络拓扑路图:

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第1张图片

以下为改造前后的数据库对比:

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第2张图片

以下以 11 万条数据表来做查询,结果如下:

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第3张图片

聚合查询,1,155,876 条数据在耗时不到 0.17 秒的时间完成 GROUP BY 聚合查询:

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第4张图片

写入情况,这里截了一张 Flink 写入TDengine 数据库图片,3 个小时左右的时间里写入了 250 万条采集数据,这样的写入量远远没有达到 TDengine 的写入瓶颈,对业务的增长留有充裕的空间。

下面是我们的部分应用展示:

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第5张图片

从 OpenTSDB 到 TDengine,至数物联网平台技术改造之路_第6张图片

三、TDengine 使用上的一些意见反馈

我们有些按小时、按天、按月的指标计算的时候如果当时的维表数据有误需要重算,重算的数据需要覆盖之前的数据或者把之前的数据删除掉重新写入。不过 TDengine 目前不支持数据删除,希望未来能够支持删除功能。

目前更新只支持更新相同时间戳数据,希望 tag 和普通字段能够联合筛选做 update;也有业务场景需要此类功能。

另外,目前排序还存在一定的限制,希望 tag 和普通字段能够进行自由升降序排列。

最后感谢涛思团队开源出来 TDengine 这款优秀的时序数据库系统,也要感谢一下涛思团队对至数研发团队的支持与帮助,祝福涛思数据越办越好!


想了解更多 TDengine Database 的具体细节,欢迎大家在GitHub上查看相关源代码。

你可能感兴趣的