小
T
导
读

自 2021 年我们正式使用 TDengine 至今已接近三年,现在 TDengine 已经成熟应用于我们多个项目当中,凭借着强大的读写存储能力,为我司多项业务的核心数据保驾护航。近期我们团队刚好完成 TDengine 2.x 到 3.x 的数据迁移,借此机会将 TDengine 的使用/迁移经验与大家分享。

01
选型过程及业务背景

02
TDengine 迁移过程
a.新增节点D\E\F:
CREATE DNODE "D";CREATE DNODE "E";CREATE DNODE "F";
#删除A节点MNODE角色DROP MNODE ON DNODE A_DNODE_ID;#添加D节点MNODE角色CREATE MNODE ON DNODE D_DNODE_ID;#删除A节点,节点A删除过程,节点A的数据会同步到接口D\E\F中DROP DNODE A_DNODE_ID;
03
典型业务场景分享
由于一台设备每天有数以万计的数据需要存储,世界各地范围内的设备汇集起来,便产生了海量的数据存储和查询需求。关于 TDengine ,我们主要有以下三个方向的应用:
在设备运行出现问题时,根据消息定位具体的问题; 以设备长时间运行的数据作数据分析,解决设备运行存在的隐患; 生成 BI 报表,展示设备各种传感器最近一段时间的状态。
从众多的超级表中,我们取一个百亿级别的超级表来举例说明 TDengine 的应用过程,具体表结构如下:

当我们对这张设备消息表 s_mqtt 查询 '2023-12-15 00:00' 至 '2023-12-15 02:50:00' 时间段的 '1011' 类型,设备序列号为 'xxxxxxx' 的所有消息内容,可以看到,查询结果是毫秒级返回的:
select * from s_mqtt where ts>'2023-12-15 00:00:00.000' and ts<'2023-12-15 03:00:00.000' and device_sn='xx' and kind=1011 ;

TDengine 高效的写入和读取性能很好的满足了我们频繁写入和读取数据的迫切需要。而在存储方面,压缩率经过计算在 10% 左右,也完全符合我们的存储需求。
04
遇到的问题
05
未来展望
使用 TDengine 三年来,TDengine 在我们的物联网业务、设备 BI 数据展示等模块作用巨大,它直观地展示了设备运行状况,帮助我们快速定位和解决设备问题。接下来,我们将会继续探索 TDengine 在智能设备打印、智能设备运维等方面应用与实践。祝 TDengine 越来越好。
往期推荐

👇 点击阅读原文,查看更多 TDengine 用户案例!




