从 MongoDB 到 TDengine,沃太能源实现 18 倍写入性能提升

导读

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

1、源起

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

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

  • 存储效率较低,单位数据存储成本高:相较于专业时序数据库,MongoDB 存储数据压缩率较低,在海量时序数据存储时,存储开销大。且 MongoDB 尚不支持多级存储,无法按数据价值,差异化使用存储资源。

  • 写入性能较低,海量数据写入时间长:对于高频数据(毫秒级)数据写入,MongoDB 写入性能在秒级,很难满足我司储能设备高频数据采集性能要求,数据产生速度大于数据写入速度。

  • 查询性能较低,实时数据查询时间长:MongoDB 对复杂查询的支持全面,但实时查询场景所需的实时数据返回,查询性能仍不能满足生产所需。

  • 技术架构复杂,实时场景技术栈复杂:因 MongoDB 实时处理能力有限,故在技术架构设计时,需要引入 Redis,来满足实时查询需求。技术环节多,数据流转复杂,增加应用开发与技术管理复杂度。

2、探索

针对实时场景痛点,我司开始进行专业时序数据库选型,要求存储成本低写入速度快查询实时返回,并期望有效降低架构复杂度

经对市场多款时序数据库调研,我司从技术可控降本增效架构简洁性能优越生态丰富五个维度进行对比,最终比选出涛思数据的 TDengine 作为我司实时数据基础数据库平台。

3、落地

我司 IT 团队与 TDengine 服务团队组成的项目实施团队,经过近三个月的协同工作,分阶段完成集群部署、MongoDB 数据迁移、数据库调优,以及生产割接,最终完成了我司时序数据处理基础架构从 MongoDB 向 TDengine 的迁移,在各方面均达成了项目预期目标。

例如:在设备综合信息查询场景,需要对具有 231 列的综合数据信息表,在亿级数据中查询某单一设备综合信息。此表存储设备的电压、电流、功率等信息。

使用 TDengine 后,单设备全天数据查询时间缩短至十几毫秒,单位时间业务数据查询效率提升明显,提升下游实时数据应用对客体验。

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

4、创新

在 TDengine企业版工具中,提供零代码数据接入组件 taosX,可以通过界面配置接入 Kafka 等三方数据源数据。我司应用 taosX,直接对接 Kafka 消息,写入数据至 TDengine,减少了系统复杂度,同时也降低了人力投入。

另我司基于 TDengine 时序数据查询的优越性能,迁移原 Redis 实时报表数据应用至 TDengine,实践效果完全满足生产性能要求,验证了 TDengine 可以在部分实时场景替代 Redis 实时数据查询功能。

5、展望

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

关于沃太能源

沃太能源股份有限公司自 2012 年成立以来专注于储能产品的研发、生产和销售,掌握 BMS、EMS、系统集成、云管理平台等储能核心控制技术,是行业领先的全功率段储能系统提供商,致力于为家庭、 工商业园区、电网、发电站、电力公司等提供综合的新能源智慧解决方案。

公司拥有国家级“专精特新”重点小巨人、国家高新技术企业认证、国家知识产权示范企业等多项荣誉,主要产品涵盖微型、户用、工商业和大型四大储能核心领域,广泛应用于电力系统的发电、输电、配电、用电等环节,可帮助降低用电成本、 提高新能源电力使用率、减少碳排放,为可持续发展做出积极贡献。

关于作者

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/72947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库基本建表操作

1.登录数据库并创建数据库db_ck 创建完成后使用到我们创建的数据库。 2.创建表t_hero 根据hero属性包括(id,name,nickname,age,gender,address,weapon,types) 创建完…

OkHttp 之任务调度模块源码分析

一、引言 在现代网络应用开发中,高效的任务调度机制对于提升系统性能和用户体验至关重要。OkHttp 作为一款广泛使用的高性能 HTTP 客户端库,其任务调度模块在处理网络请求的并发、排队和执行等方面发挥着关键作用。本文将深入 OkHttp 源码,详…

复现无人机的项目,项目名称为Evidential Detection and Tracking Collaboration

项目名称为Evidential Detection and Tracking Collaboration,主要用于强大的反无人机系统,涉及新问题、基准和算法研究。下面介绍项目的复现步骤: 安装环境:使用Anaconda创建并激活名为edtc的虚拟环境,Python版本为3…

QwQ-32B 开源!本地部署+微调教程来了

今天,通义千问开源了推理模型QwQ-32B QwQ-32B 在一系列基准测试中进行了评估,测试了数学推理、编程能力和通用能力。以下结果展示了 QwQ-32B 与其他领先模型的性能对比,包括 DeepSeek-R1-Distilled-Qwen-32B、DeepSeek-R1-Distilled-Llama-7…

如何利用 Excel 表格实现精准文件批量重命名教程

在处理大量文件时,有时需要根据特定规则对文件名进行调整。如果您的文件名和新名称之间存在一对多的关系,并且这种关系可以通过 Excel 表格来管理,那么使用“简鹿文件批量重命名”软件中的“匹配对应名称命名”功能将是一个高效的选择。接下来…

开关模式电源转换器 EMI/EMC 的集成仿真

介绍 在电力电子领域,电磁干扰 (EMI) 和电磁兼容性 (EMC) 问题可以决定设计的成败。开关模式电源转换器虽然高效且紧凑,但却是电磁噪声的常见来源,可能会对附近的组件和系统造成严重破坏。随着…

Android 蓝牙工具类封装:支持经典蓝牙与 BLE,兼容高版本权限

为了优化经典蓝牙(Classic Bluetooth)和低功耗蓝牙(Bluetooth Low Energy, BLE)的操作,我们可以将功能封装到一个工具类中,支持扫描、连接、通信,并兼容高版本 Android 的动态权限申请。以下是完…

STM32 CAN模块原理与应用详解

目录 概述 一、CAN模块核心原理 1. CAN协议基础 2. STM32 CAN控制器结构 3. 波特率配置 二、CAN模块配置步骤(基于HAL库) 1. 初始化CAN外设 2. 配置过滤器 3. 启动CAN通信 三、数据收发实现 1. 发送数据帧 2. 接收数据帧(中断方式…

PostgreSQL_安装部署

一、Windows系统下安装 1.下载安装包 登录PostgreSQL: Downloads官网: 选择14.12版本,点击下载: 2.安装PostgrSQL14.12 双击exe安装包程序,准备安装: 选择安装路径: 选择想安装的工具: 选择数…

init arry的作用,可以没有init arry嘛?(面试题)

https://bbs.kanxue.com/thread-282657.htm 对init_array段调用的方法进行Hook https://bbs.kanxue.com/thread-191092.htm init_array原理简单说明 https://bbs.kanxue.com/thread-280135.htm frida hook init_array自吐新解 init_array 的作用,以及是否可以没有 i…

蓝桥杯真题0团建dfs+哈希表/邻接表

dfs邻接表储存或者哈希表的运用,考察我们对数据的存储 本题核心就是在求从根节点开始的两棵树相同的最长序列,首先确定用dfs进行深搜,对于节点的形式可以用邻接表,邻接矩阵,哈希表来进行存储数据。下面看代码 邻接表 …

使用 AIStor、MLflow 和 KServe 将模型部署到 Kubernetes

在之前几篇关于 MLOps 工具的文章中,我展示了有多少流行的 MLOps 工具跟踪与模型训练实验相关的指标。我还展示了他们如何使用 MinIO 来存储作为模型训练管道一部分的非结构化数据。但是,一个好的 MLOps 工具应该做的不仅仅是管理您的实验、数据集和模型…

kali linux web扫描工具

Kali Linux是一款专为网络安全领域而打造的操作系统,提供了众多优秀的安全工具,其中就包括了强大的web扫描工具。Web扫描是网络安全检测的一个重要环节,它可以帮助安全专家检测网站的漏洞,提升网站的安全性。 Kali Linux中集成了…

Linux losetup循环设备

好的,以下是命令的中文解释和使用步骤: 命令解释: losetup -r /dev/loop0 /system/app.bin: losetup 是一个用于将文件与循环设备(loop device)关联的命令。-r 选项表示将循环设备设置为只读模式。/dev/lo…

【js逆向】

地址:aHR0cHM6Ly93d3cud2VpYm90b3AuY24vMi4wLw f12进入 debugger,过debugger 查看预览数据 全局搜索 请求网址中的 api.weibotop.cn 在下方疑似找到了加密和解密的函数 断点调试 控制台输出 那个n就是 常见的 cryptoJs库 const cryptoJs require(cry…

1.Intel BIOS 开发指南详细介绍

1. 引言 目的: Intel BIOS 开发指南旨在为开发者提供详细的指导,帮助他们理解和实现 Intel 平台上的 BIOS 功能。 适用对象: 适用于希望开发、调试和优化 BIOS 的硬件工程师、软件工程师和系统集成商。 版本信息: 确保你使用的是最新版本的指南,以获取最新的信息和最佳实…

deepseek在pycharm中的配置和简单应用

对于最常用的调试python脚本开发环境pycharm,如何接入deepseek是我们窥探ai代码编写的第一步,熟悉起来总没坏处。 1、官网安装pycharm社区版(免费),如果需要安装专业版,需要另外找破解码。 2、安装Ollama…

【论文阅读】多模态——LSeg

文献基本信息 标题:Language-Driven Semantic Segmentation作者:Boyi Li、Kilian Q. Weinberger、Serge Belongie、Vladlen Koltun、Ren Ranftl单位:Cornell University、University of Copenhagen、Apple、Intel Labs会议/期刊:…

【MySQL基础-1】MySQL 用户管理指南:创建用户、修改密码与权限分配

MySQL 作为广泛使用的关系型数据库管理系统,用户管理和权限分配是其核心功能之一。合理创建用户、修改密码以及分配权限,不仅能保障数据库的安全性,还能有效控制用户的操作范围。本文将详细介绍如何在 MySQL 中创建用户、修改用户密码以及分配…

影刀RPA编码版与流程版解析

影刀RPA编码版是影刀RPA的一个高级版本,它结合了流程版的可视化操作和编码版的强大灵活性,以下是对影刀RPA编码版的详细介绍: 1. 功能对比 流程版: 可视化操作:通过拖拽式流程设计器,用户可以像搭积木一样…