轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用

简介: TDengine Cloud 按量计费加全托管的企业级服务让我们用非常小的成本便运转了这个项目,并且极大地增加了产品的效率并保留了随时扩张的灵活性。

在我们的“海外某储能项目”项目中,需要实时监测电池安全,采集记录每次使用的充放电过程、电流/电压等值,而此类数据都带有时间戳,是典型的时序数据。为了应对未来海量的用户使用数据,我们需要选择一款专业的时序数据库Time Series Database)。


我们的业务属于海外,去年是通过 2.x 版本在海外本地化部署,但由于维护团队位于国内,首先在网络通信上就有不小的麻烦。其次,由于部署的是开源版 TDengine ,需要自己部署优化、学习文档、通过社区反馈问题等等,有不少的时间成本。后来, TDengine 官方于今年初发布的时序数据云平台 TDengine Cloud 便进入了我们的视野。由于我们当前业务量并不大,因此对我们来说 TDengine Cloud 最直观的帮助就是:全托管。



云服务附带和 TDengine 企业版同级别的服务,因此我们不再需要担心部署、优化、扩容、备份、异地容灾等事务,减少了我方开发人员的负担,可全心关注核心业务。由于我们的设备量暂时不多,根据官方现有的定价规则,基础版本便可满足。在经过计费方案估算器计算后,最终我们选择了 1200 元/月的基础版规格。



我们针对每个储能设备单独建表,一类储能设备建立一个超级表,包括用电量、充电量、用电状态、充电状态等指标,共一百余列,每个设备 7*24h 地以每 10 秒一行的频率写入数据库。通过“数据浏览器”的页面,可以很轻松地看到库/表的元数据信息:


写入能力分析

TDengine 根据时序数据的特征专门设计的一个设备一张表、列式压缩、标签这几个强大的创新点,从根本上解决了数据写入需要加锁、行式压缩效率低、静态数据冗余存储这几大难题。


我们的数据处理流程如下图所示,某类储能设备产生的时序数据会以 MQTT 方式上传,其中业务数据转发给 PostgreSQL,设备产生的时序数据以及设备运行日志、设备状态数据转给 TDengine。中台各系统则会统一规划使用这些数据库中的数据,来用于分析计算,也可以直接控制设备下发指令。最终,借助 PC Web、APP 以及其他管理平台等软件方式在前端体现。



在测试阶段,TDengine 的数据压缩率可以轻松达到 10% 以内,每秒可以写入数百万行数据。在具体实践中也很好地达到了这个写入效果。


除了写入和压缩性能,TDengine 的查询能力也是我们比较关注的。

查询效果分析

为了提供高质量的售后服务以及提升用户使用体验,科学合理地使用上述写入的数据,我们会做很多类型的查询,比如监测用电产品的健康状态、分析设备用电量趋势、使用寿命等等。


以下是几个典型的查询:


1. 利用会话窗口统计每一段连续时间间隔小于等于 1 分钟时间内的单设备输入功率之和:


  1. select FIRST(ts) firstTs, LAST(ts) lastTs, count(*) countVal, sum(input_total_power) totalPower
  2. from device_data_58CF7920B63C where ts >='2023-08-09T00:00:00.000Z'
  3. and ts<'2023-08-10T00:00:00.000Z' SESSION(ts,1m)


2. 通过 interval 查看设备输入功率的趋势,并且使用了 offset 时区的偏移:


  1. select _WSTART as ts, avg(inverter_power) avgVal, min(inverter_power) minVal, max(inverter_power) maxVal
  2. from gendome.device_data_58CF7920B63C where inverter_power >0and ts >='2023-08-09T00:00:00.000Z'
  3. and ts<'2023-08-10T00:00:00.000Z'
  4. interval (1d,960m) FILL (NULL)


由于我们的应用与 TDengine Cloud 所属同一个 AWS region ,所以通过使用 Private Link 功能,我们的应用网络与云服务进行了私密通信,而无需将数据通过公网传输,大大降低了写入方面的延迟,同时也进一步节约了由网络流量产生的费用。

写在最后

TDengine 的定位一直都是“大数据”的处理平台,尤其是 3.0 版本和 2.0 相比有很多的底层变化,甚至可以支持 10 亿级别的表数量。

对我们这个体量相对较小的场景来说,TDengine Cloud 按量计费加全托管的企业级服务让我们用非常小的成本便运转了这个项目,并且极大地增加了产品的效率并保留了随时扩张的灵活性。此外,数据分享、流式计算这些有趣的特性也等待我们进行更深一步地挖掘。


关于国轩高科

国轩高科(股票代码:002074),是全球领先的新能源解决方案提供商,专注于锂离子动力电池和储能电池的研发、生产与销售,综合实力位居中国乃至全球前列。

关于本文作者

刘志成,国轩高科某储能产品部平台架构师,多年从事能源物联网行业。

目录
相关文章
|
8月前
|
Dubbo 前端开发 Java
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
让你在组建企业级项目时手到擒来——浅谈各类常用工具和框架概述
|
3月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
175 3
|
3月前
|
缓存 Java 数据库
后端技术探索:从基础架构到高效开发的实践之路
【10月更文挑战第7天】 在现代软件开发中,后端技术是支撑应用运行的核心。本文将探讨如何从后端的基础架构出发,通过一系列高效的开发实践,提升系统的性能与可靠性。我们将深入分析后端框架的选择、数据库设计、接口开发等关键领域,并提供实用的代码示例和优化策略,帮助开发者构建更稳定、高效的后端系统。通过这篇文章,读者将获得关于后端开发的全面理解和实践指导,从而更好地应对复杂项目需求。
84 0
|
3月前
|
消息中间件 中间件 数据库
NServiceBus:打造企业级服务总线的利器——深度解析这一面向消息中间件如何革新分布式应用开发与提升系统可靠性
【10月更文挑战第9天】NServiceBus 是一个面向消息的中间件,专为构建分布式应用程序设计,特别适用于企业级服务总线(ESB)。它通过消息队列实现服务间的解耦,提高系统的可扩展性和容错性。在 .NET 生态中,NServiceBus 提供了强大的功能,支持多种传输方式如 RabbitMQ 和 Azure Service Bus。通过异步消息传递模式,各组件可以独立运作,即使某部分出现故障也不会影响整体系统。 示例代码展示了如何使用 NServiceBus 发送和接收消息,简化了系统的设计和维护。
73 3
|
5月前
|
Java Spring 传感器
AI 浪潮席卷,Spring 框架配置文件管理与环境感知,为软件稳定护航,你还在等什么?
【8月更文挑战第31天】在软件开发中,配置文件管理至关重要。Spring框架提供强大支持,便于应对不同环境需求,如电商项目的开发、测试与生产环境。它支持多种格式的配置文件(如properties和YAML),并能根据环境加载不同配置,如数据库连接信息。通过`@Profile`注解可指定特定环境下的配置生效,同时支持通过命令行参数或环境变量覆盖配置值,确保应用稳定性和可靠性。
75 0
|
6月前
|
缓存 人工智能
通用研发提效问题之女娲的缓存方案,体现易用性的四重境界,如何解决
通用研发提效问题之女娲的缓存方案,体现易用性的四重境界,如何解决
|
6月前
|
JavaScript 前端开发 NoSQL
技术好文:Redash(开源轻量级智能)生产环境部署及实践(withoutdocker)
Redash(开源轻量级智能)生产环境部署及实践(withoutdocker)
356 0
|
7月前
|
消息中间件 Kubernetes Kafka
AutoMQ 自动化持续测试平台技术内幕
Marathon 是一个针对流系统 AutoMQ 的自动化持续测试平台,旨在在模拟生产环境和各种故障场景中验证 SLA 的可靠性。设计原则包括易拓展、可观测和低成本。平台采用分布式架构,Controller 负责资源管理和任务编排,动态调整 Worker 数量和配置,而 Worker 是无状态的,用于生成负载和上报数据。系统基于 K8S,利用服务发现、事件总线和 Spot 实例降低成本并提高弹性。测试场景以代码形式描述,支持不同流量模型和断言,提供丰富的可观测性和告警功能。未来,Marathon 有望泛化为适用于各种分布式系统的测试平台。
64 0
AutoMQ 自动化持续测试平台技术内幕
|
7月前
|
缓存 监控 算法
构建高性能Java应用的秘诀
构建高性能Java应用的秘诀
|
8月前
|
存储 监控 前端开发
【Java应用服务体系】「序章入门」全方位盘点和总结调优技术专题指南
【Java应用服务体系】「序章入门」全方位盘点和总结调优技术专题指南
96 0