从 MongoDB 到 时序数据库 TDengine,沃太能源实现 18 倍写入性能提升

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。

导读

沃太能源是国内领先储能设备生产厂商,数十万储能终端遍布世界各地。此前使用 MongoDB 存储时序数据,但随着设备测点增加,MongoDB 在存储效率、写入性能、查询性能等方面暴露出短板。经过对比,沃太能源选择了专业时序数据库 TDengine,生产效能显著提升:整体上,数据压缩率超 10 倍、写入性能提升 18 倍,查询在特定场景上也实现了数倍的提升。同时减少了技术架构复杂度,实现了零代码数据接入。本文将对 TDengine 在沃太能源的应用情况进行详解。

1.源起

在 2024 年前,我司使用 MongoDB 数据库存储时序数据,包括运行数据、秒级数据、功率数据、能量数据、收益数据、FFR 和 FACS 数据,涉及数十万设备的千万测点数据写入存储与实时设备状态查询与分析。使用场景对数据库性能要求高,响应时延在毫秒级。

在实际使用中,随着接入设备测点的增加,MongoDB 在处理时序数据方面的局限性逐渐显现:

  • 存储效率较低,单位数据存储成本高:相较于专业时序数据库,MongoDB 存储数据压缩率较低,在海量时序数据存储时,存储开销大。且 MongoDB 尚不支持多级存储,无法按数据价值,差异化使用存储资源。
  • 写入性能较低,海量数据写入时间长:对于高频数据(毫秒级)数据写入,MongoDB 写入性能在秒级,很难满足我司储能设备高频数据采集性能要求,数据产生速度大于数据写入速度。
  • 查询性能较低,实时数据查询时间长:MongoDB 对复杂查询的支持全面,但实时查询场景所需的实时数据返回,查询性能仍不能满足生产所需。
  • 技术架构复杂,实时场景技术栈复杂:因 MongoDB 实时处理能力有限,故在技术架构设计时,需要引入 Redis,来满足实时查询需求。技术环节多,数据流转复杂,增加应用开发与技术管理复杂度。

2、探索

针对实时场景痛点,我司开始进行专业时序数据库选型,要求存储成本低、写入速度快,查询实时返回,并期望有效降低架构复杂度。
经对市场多款时序数据库调研,我司从技术可控、降本增效、架构简洁、性能优越、生态丰富五个维度进行对比,最终比选出涛思数据的 TDengine 作为我司实时数据基础数据库平台。

image.png

3、落地

我司 IT 团队与 TDengine 服务团队组成的项目实施团队,经过近三个月的协同工作,分阶段完成集群部署、MongoDB 数据迁移、数据库调优,以及生产割接,最终完成了我司时序数据处理基础架构从 MongoDB 向 TDengine 的迁移,在各方面均达成了项目预期目标。
image.png
例如:在设备综合信息查询场景,需要对具有 231 列的综合数据信息表,在亿级数据中查询某单一设备综合信息。此表存储设备的电压、电流、功率等信息。
5bd1725ff43499981a6a651f13e7d2db__fallback_source=1&height=1280&mount_node_token=doxcnwzIS8Yauzk4Qvp2nOiZxqc&mount_point=docx_image&policy=equal&width=1280.png

dc43251d2acda54658203c12aecfabec__fallback_source=1&height=1280&mount_node_token=doxcn6GJKOrsnl3dW0XaDWFGfDf&mount_point=docx_image&policy=equal&width=1280.png
使用 TDengine 后,单设备全天数据查询时间缩短至十几毫秒,单位时间业务数据查询效率提升明显,提升下游实时数据应用对客体验。
image.png

19d77eea374b4cd14d7ac38c25fe8984__fallback_source=1&height=1280&mount_node_token=doxcnm7mN6037AihtDBVUPeNtad&mount_point=docx_image&policy=equal&width=1280.png

另外就是存储方面,TDengine 优秀的时序数据压缩效率,大大提升了我司数据的存储能力,压缩率达到 10 倍以上,相比旧有 MongoDB,在硬件资源上有明显的成本下降。
image.png

4、创新

在 TDengine 企业版工具中,提供零代码数据接入组件 taosX,可以通过界面配置接入 Kafka 等三方数据源数据。我司应用 taosX,直接对接 Kafka 消息,写入数据至 TDengine,减少了系统复杂度,同时也降低了人力投入。
de94e4965657733b1ec6eefafaed3353_681cd9e6-71c7-4837-b33a-30653e60f3f8.png
另我司基于 TDengine 时序数据查询的优越性能,迁移原 Redis 实时报表数据应用至 TDengine,实践效果完全满足生产性能要求,验证了 TDengine 可以在部分实时场景替代 Redis 实时数据查询功能。

5、展望

TDengine 在实时场景的投产成功,增强了我司实时数据处理能力,更高效地服务于广大沃太储能客户。下一步,我司计划进一步扩大 TDengine 应用承载范围,应用 TDengine 新发布的 TDgpt 与虚拟表等功能,深化时序数据应用场景,更好地服务于我司内外部客户。

关于沃太能源

沃太能源股份有限公司自 2012 年成立以来专注于储能产品的研发、生产和销售,掌握 BMS、EMS、系统集成、云管理平台等储能核心控制技术,是行业领先的全功率段储能系统提供商,致力于为家庭、 工商业园区、电网、发电站、电力公司等提供综合的新能源智慧解决方案。
公司拥有国家级“专精特新”重点小巨人、国家高新技术企业认证、国家知识产权示范企业等多项荣誉,主要产品涵盖微型、户用、工商业和大型四大储能核心领域,广泛应用于电力系统的发电、输电、配电、用电等环节,可帮助降低用电成本、 提高新能源电力使用率、减少碳排放,为可持续发展做出积极贡献。

关于作者

沃太能源云平台开发部主要负责 Alpha 储能平台的软件、通讯以及物联网平台开发,实现储能系统与设备的互联互通,提供能源管理、数据分析及远程管控等功能,实现储能平台数智化运营。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
如何优化SQL查询以提高数据库性能?
这篇文章以生动的比喻介绍了优化SQL查询的重要性及方法。它首先将未优化的SQL查询比作在自助餐厅贪多嚼不烂的行为,强调了只获取必要数据的必要性。接着,文章详细讲解了四种优化策略:**精简选择**(避免使用`SELECT *`)、**专业筛选**(利用`WHERE`缩小范围)、**高效联接**(索引和限制数据量)以及**使用索引**(加速搜索)。此外,还探讨了如何避免N+1查询问题、使用分页限制结果、理解执行计划以及定期维护数据库健康。通过这些技巧,可以显著提升数据库性能,让查询更高效流畅。
时序数据库 InfluxDB 3.0 版本性能实测报告:写入吞吐量提升效果验证
TSBS 测试表明,对于少于 100 万台设备的数据集,InfluxDB OSS 3.0 的数据写入速度实际上比 InfluxDB OSS 1.8 更慢。 对于 100 万台及以上设备的数据集,InfluxDB OSS 3.0 的数据写入性能才开始超过 InfluxDB OSS 1.8。 InfluxDB OSS 3.0 的数据写入接口与 InfluxDB 1.8 并不兼容,用户无法顺利迁移。
39 7
Rust +时序数据库 TDengine:打造高性能时序数据处理利器
TDengine 是一款专为物联网、车联网、工业互联网等时序数据场景优化设计的开源时序数据库,支持高并发写入、高效查询及流式计算,通过“一个数据采集点一张表”与“超级表”的概念显著提升性能。 Rust 作为一门系统级编程语言,近年来在数据库、嵌入式系统、分布式服务等领域迅速崛起,以其内存安全、高性能著称,与 TDengine 的高效特性天然契合,适合构建高可靠、高性能的数据处理系统。
32 2
百万指标,秒级查询,零宕机——时序数据库 TDengine 在 AIOps 中的硬核实战
本篇文章详细讲述了七云团队在运维平台中如何利用 TDengine 解决海量时序数据存储与查询的实际业务需求。内容涵盖了从数据库选型、方案落地到业务挑战及解决办法的完整过程,特别是分享了升级 TDengine 3.x 时的实战经验,给到有需要的小伙伴参考阅读。
25 1
微服务——MongoDB常用命令1——数据库操作
本节介绍了 MongoDB 中数据库的选择、创建与删除操作。使用 `use 数据库名称` 可选择或创建数据库,若数据库不存在则自动创建。通过 `show dbs` 或 `show databases` 查看所有可访问的数据库,用 `db` 命令查看当前数据库。注意,集合仅在插入数据后才会真正创建。数据库命名需遵循 UTF-8 格式,避免特殊字符,长度不超过 64 字节,且部分名称如 `admin`、`local` 和 `config` 为系统保留。删除数据库可通过 `db.dropDatabase()` 实现,主要用于移除已持久化的数据库。
33 0
从 MySQL 到时序数据库 TDengine:Zendure 如何实现高效储能数据管理?
TDengine 助力广州疆海科技有限公司高效完成储能业务的数据分析任务,轻松应对海量功率、电能及输入输出数据的实时统计与分析,并以接近 1 : 20 的数据文件压缩率大幅降低存储成本。此外,taosX 强大的 transform 功能帮助用户完成原始数据的清洗和结构优化,而其零代码迁移能力更实现了历史数据从 TDengine OSS 与 MySQL 到 TDengine 企业版的平滑迁移,全面提升了企业的数据管理效率。本文将详细解读这一实践案例。
24 0
mongoDB导出数据库所有集合内容到json文件
网上搜了一圈,官方并有提供批量导出所有集合到json文件的方法。有不少脚本可以实现,但是我还是习惯用java,如下 package starcLL.
2247 0
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
3月前
|
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
100 15
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板
我们的风控系统引入阿里云数据库MongoDB版后,解决了特征类字段灵活加减的问题,大大提高了开发效率,极大的提升了业务用户体验,获得了非常好的效果
阿里云数据库MongoDB版助力信也科技 打造互联网金融企业样板