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

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

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

轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

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

轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库
轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

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

轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

写入能力分析

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

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

轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

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

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

查询效果分析

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

以下是几个典型的查询:

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

select FIRST(ts) firstTs, LAST(ts) lastTs, count(*) countVal, sum(input_total_power) totalPower 
from device_data_58CF7920B63C where ts >= '2023-08-09T00:00:00.000Z'
and ts< '2023-08-10T00:00:00.000Z' SESSION(ts, 1m)
轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

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

select _WSTART as ts, avg(inverter_power) avgVal, min(inverter_power) minVal, max(inverter_power) maxVal 
from gendome.device_data_58CF7920B63C where inverter_power > 0 and ts >= '2023-08-09T00:00:00.000Z' 
and ts< '2023-08-10T00:00:00.000Z' 
interval (1d, 960m) FILL (NULL)
轻量级业务福音!TDengine Cloud 在国轩高科储能项目中的应用 - TDengine Database 时序数据库

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

写在最后

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

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

关于国轩高科

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

关于本文作者

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