电力行业是一个庞大复杂的行业,不仅包含发电、输电、变电、配电、和用电各种流程,而且还涉及到传统能源发电和可再生能源发电的新旧电网的融合。因此,它的各种控制、监控、管理、调度等平台的技术逻辑都在慢慢发生着重大的变化。
比如,对于太阳能发电来说:因为光伏组件数量多且分布广泛,因此太阳能发电的设备和数据采集点数量相对传统发电行业相比会非常多。并且,结合过往数据,可以进行针对性分析,从而优化发电效率和发电策略,缓解太阳能发电不稳定的问题。因此,仅这一个场景上,新电力行业就衍生出了:
需要存储的数据点位多,采集频率高,数据有长期存储等场景。
显然传统的数据处理方案(关系库、实时库、hadoop)难以满足这些数据的处理需求。他们或是无法存储过多数据会有显著的性能下滑,或是无法高效读取历史数据进行分析,或是组件繁多难以维护,总之,困难种种。因此,为了应对这些挑战,越来越多的电力企业开始引入时序数据库 TDengine 来改造系统数据架构。
这些电力设备产生的时序数据本身就是典型的流式数据,对每一个流来说,时间戳都是递增且不会有重复的。因此,TDengine 把一个数据流(表)的数据都放在了一起,利用数据天然有序的这一特点,把数据的写入变成最简单的追加操作。做到了在相同资源下,单个数据流上最好的写入效率。
在此基础上,TDengine 又使用标准的分布式架构,使得数据库可以轻松地做到动态扩展,并能让所有的cpu核心并行读写。而为了防止硬盘的读写瓶颈,又可以使用多级存储为不同的存储路径,同时挂载不同的硬盘并发工作。最后,基于列式数据的二级自定义压缩得存储方式,使得 TDengine 压缩率表现也尤为出众。
因此,TDengine 以全新的设计,凭一己之力,同时解决了实时库/关系库/传统大数据处理架构在电力行业场景的弊病,成为了新一代电力行业的时序大数据平台。
下面这个案例,便是 TDengine 在电力行业的典型应用:
作为全国 500 强企业,明阳集团在风电行业拥有领先实力。在“明阳集团能源大数据应用系统”的风电项目中,该客户目前共接入万台左右的风电机组,每个机组配备数百至上千个监测点,生成的时序数据每秒一条。仅仅当天,就会产生亿级以上的能源数据量。
这些数据需要实时或定期集中存储,以支持风机的集中监控和数据分析等业务应用,实现数据转化为价值的目标,显然是传统实时库/关系库/大数据架构所不能支撑的。
针对项目现场风机的数据采集工作,明阳集团采取了两种方案,一种方案是通过网络实时传输到大数据中心,写入 TDengine。另一种方案则是按照一定的时间周期,接到数据文件拷贝后,再写入 TDengine 集群。
明阳集团使用了 6 台 24GB 内存 4 核 CPU 10T 硬盘的服务器搭建了 TDengine 3.0 的单副本集群。目前已经接入了 10000+ 台风电机,建库 400 余个。保存数据量总计 40+ 亿行,每行平均测点(列数)700+,磁盘占用 24TB,粗略估算,压缩比达到 10% 以内。
风电机作为一种利用风能来产生电力的大型设备。需要监控的指标十分之多。因此,在建模环节就有不小的难度。以下是一个 describe 超级表的输出,达到了 884 列。
宽列表和常规的窄列表在使用上有很多的差别,很多参数配置都是不一样的。在此基础之上检测风电机设备的各个点的最新状态。
在“明阳集团能源大数据应用系统”中,TDengine 起到了关键作用,实现了数据的高效存储与处理。通过底层的数据分片分区策略,TDengine 能够灵活地动态扩展资源,避免资源瓶颈问题。