作者:潘文彪
小 T 导读: 中节能风力发电股份有限公司(股票简称:节能风电,股票代码:601016)是中国节能环保团体有限公司控股的古代股份制公司。公司先后胜利中标并示范建设了国家第一个百万千瓦级风电基地启动我的项目——河北张北单晶河 200 兆瓦风电特许权我的项目,和第一个千万千瓦级风电基地启动我的项目——甘肃玉门昌马 200 兆瓦风电特许权我的项目,是国家首个百万千瓦、千万千瓦风电基地的示范者和引领者,在业内建立了较高的知名度和良好的品牌形象。建成、在建我的项目装机规模 547.97 万千瓦,已倒退成为张北坝上地区、甘肃河西走廊地区最大的风电开发商之一,是我国风电畛域一支重要的力量。
一、我的项目背景
公司作为中节能团体在风电畛域的专业化公司和外围上市平台,具备成熟的风电开发和运维教训,然而随着在建风场逐渐增多以及各类新型传感器的加装,传统运维形式曾经越来越吃力,数字化智能化的需要越来越强烈,因而迫切需要基于海量时序数据的数据平台来撑持繁冗的运维工作。
因而,咱们做了大量的时序数据调研工作。然而选型工作也并非一帆风顺,开始咱们尝试传统的工控时序数据库,然而随着测点数量的增多,单机版架构曾经有力撑持,前期咱们也尝试了 InfluxDB 和 OpenTSDB 等分布式架构的时序数据库,然而性能又达不到要求。
时机偶合,咱们留神到一款国产、开源的时序数据库 TDengine,所以也尝试了一下。
二、TDengine 选型测试
针对咱们重点关注的查问性能,咱们做了如下几个测试。
1. 单测点历史数据聚合查问
随机抉择任一个测点,查问该测点在某个时间段测点采集值的 count,max,min,avg;比方从 2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000 的 31 天内的共 535680 条数据记录的 count,max,min,avg。
具体的查问语句为:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts>='2021-08-15 00:00:00.000' and ts<'2021-08-16 00:00:00.000'
试验截图如下:
3 次查问测试时延如下:
2. 分组聚合查问
查问某个时间段内测点采集值的 count,max,min,avg,比方查问从 2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000 的 31 天内的数据记录的 count,max,min,avg。
数据库中对应查问语句为:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' group by wtcode >>E:/taosTempData/2
试验截图如下:
3 次查问测试时延如下:
3. 窗口查问操作
查问某个时间段内,依照 1 小时、1 天、10 天的工夫窗口进行分组后的 count,max,min,avg 聚合后果;比方查问从 2020-01-01 00:00:00.000 到 2020-02-01 00:00:00.000 的 31 天内的全副数据记录,依照每 1 小时、1 天、10 天的工夫区间划分后的 count,max,min,avg。
数据库中对应查问语句为:
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1h) >>E:/taosTempData/3;
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (1d) >>E:/taosTempData/4;
select count(*),max(col117),min(col117),avg(col117) from t_QH01 where ts >='2021-08-01 00:00:00.000' and ts<'2021-09-01 00:00:00.000' and wtcode ='001' interval (10d) >>E:/taosTempData/5;
试验截图如下:
多个批次查问测试时延如下:
通过重复比照测试以及利用适配,最终咱们选定 TDengine 作为咱们数据平台的时序数据解决方案。
三、TDengine 落地实际
目前中节能风电的整体时序数据流如下图所示:
风场的时序数据 (次要是风机数据和电气数据) 穿透网闸后,经由场站侧的采集程序采集和转发,最终所有数据会汇聚到团体侧的分布式时序数据库,前端的实时监督、指标计算均构建于其上,同时数据还要送到大数据分析平台和生产运维平台。
团体核心侧的 TDengine 集群起到了无足轻重的作用,既要收集所有风场的时序数据,同时还要撑持前端利用以及同步数据到其它零碎。
TDengine 的诸多个性中,最吸引咱们的是 超级表 和标签 性能。超级表能让同一类风机的建模、治理和计算过程更加方便快捷,而标签个性能减少诸如附属我的项目、平台容量等维度特色,便于在聚合操作过程中疾速筛选或者分组。基于工夫窗口和状态窗口的性能也为利用构建提供了很多不便,比方功率曲线拟合过程中须要的五分钟均匀风速和功率计算逻辑,以及基于风机状态的各类统计分析。
在 TDengine 的应用初期遇到了一些问题,次要波及集群搭建和参数配置方面,通过和涛思数据技术团队的沟通交流,都已失去解决。
前期在数据建模和利用适配方面也走了一些弯路,尤其是数据建模方面。最开始咱们应用的是最简略的单列模式,一个测点一张表,在测点数目少的状况下问题并不显著,然而随着测点数目的一直收缩,这种形式逐步暴露出在利用适配方面的问题;起初咱们采取依照不同机型不同风场建超级表的形式建模,根本能解决咱们的利用问题,然而仍然有有效开关量数值过多的问题;最终咱们采取将风机状态等重点开关量单列建模的形式解决了。
四、整体成果和将来瞻望
目前基于 TDengine 数据库咱们构建了中节能风电运维平台,应用后数据存储劣势显著,整体压缩比在 7-8 倍,数据查问也实现秒级响应。整体应用成果如下图所示:
将来咱们思考在每个风电场站的三区部署一个单节点 TDengine,作用不只是采集和转发,还要起到时序数据品质治理以及实时模型预测的性能;而在团体侧咱们会思考基于 TDengine 构建更多更简单的计算指标和高级模型;同时还要和任务调度引擎以及风电行业标准集成。将来的数据流图如下图所示:
最终将其作为中节能风电公司时序数据的核心技术组件来构建智能运维平台,为中节能风电公司 3060 双碳指标的提供坚实基础。
作者介绍:
潘文彪,中节能风电生产运维部数据分析师,2019 年起从事节能风电的数据分析与数字化平台建设工作。
⬇️点击下方图片查看流动详情,iPhone 13 Pro 等你带回家!