当前位置: 新能源网 » 风电技术 » 风电技术 » 正文

技术 | 时间序列数据库在风电数据存储领域的应用

日期:2018-03-06    来源:天数润科  作者:赵志强

国际新能源网

2018
03/06
15:09
文章二维码

手机扫码看新闻

关键词: 时间序列数据库 风电数据 风电建设

  风电行业作为新能源的代表,有海量的风电设备数据可以被采集使用。大数据技术的发展和成熟,已不局限于集控这样的数据应用场景。除了集控,风机的设备数据,以及SCADA系统产生的数据可以有更多直接产生价值的场景:
 
  发电量统计、能效分析等BI场景
 
  设备健康状况监控和监测
 
  故障关联分析
 
  设备故障预测
 
  业务管理优化
 
  为了支撑这些数据驱动的应用场景,需要整合多维度的生产经营数据以及更细粒度的秒级、甚至毫米级数据。在风电这种典型的工业大数据场景,数据平台架构可以基于数据特征进行优化,更加友好的支持实时、并发读写,以及横向扩展。
 
  对于风机数据的存储,数据主要来源于SCADA系统和从传感器得到的数据是连续的、带有时间戳的变量。在算法分析领域,这类数据作为时间序列数据来处理,在数据库领域,时间序列数据有在监控领域广泛使用。时间序列数据库的应用场景可以从监控领域实践到到工业领域。基于时间序列数据库,设计实时收集、存储、分析的服务架构。本文主要介绍风电SCADA数据的实时采集和存储。
 
  时间序列数据和SCADA数据
 
  我们一般把符合下述特征的数据归纳为时间序列数据:
 
  随时间连续度量,每个时间点都有值
 
  度量值等时间隔变化(如秒,毫秒等)
 
  有明确意义的度量变量(如温度,风速等)
 
  在金融股票、IoT设备、车辆驾驶、医疗诊断等场景,遍布时间序列数据的场景。风电的SCADA系统收集的数据,就是符合时间序列数据定义的数据,而且数据特征更具体:
 
  a. 低频的秒级数据和高频的毫秒级数据都具备
 
  b. 设备数据、环境数据、发电量数据等都有真实意义和利用价值
 
  c. 以数值型为主,并且在一定范围内波动变化
 
  d. 数据每时每刻产生,但是系统采集会时有时无
 
  e. 数据质量时好时坏
 
  基于这样的特征,我们定义为时间序列数据模型来处理,选型合适的数据库组件,达到更高效的数据写入、压缩存储,和弹性的数据标识、管理。
 
  时间序列数据库和OpenTSDB
 
  时间序列数据库是基于时间戳作为索引优化存储的数据集合。相比于传统的关系型数据库,时间序列数据库的处理场景主要体现在以下几个方面:
 
  相比于读,写是系统的主要任务
 
  append方式处理数据
 
  单点的读写少,往往是一段时间范围的批量写和读
 
  更新和删除场景少
 
  传统的做法是关系型数据库通过调优,优化时间序列数据的存储管理。关系型数据库如Oracle、MySQL、PostgreSQL是处理通用场景而设计的,开销比较重。我们知道NoSQL类的数据库往往是专门来处理具体场景的轻量数据库,时序数据库的产生是为了重新设计数据库适应上面的技术需求,以NoSQL形态为主。
 
  时间序列数据库是比较年轻的数据库,设计实现上更加新颖,如列式存储、REST API接口、异步通信、分布式存储等都有广泛使用。
 
  数据模型上,时序数据的字段往往如下定义:
 
  metric:具体的变量名。每个metric代表一类度量值,如偏航功率、环境温度、机舱温度等;
 
  timestamp:时间戳,标识时间维度,可能是秒,也可能是毫秒,作为KV数据对中的key;
 
  Value:变量值。跟时间戳一起组成KV数据对,Value标识具体时间点的变量值;
 
  TagKey/TagValue:TagKey和TagValue组成一对描述数据的标签,比如数据是属于哪个风机的,是哪个系统采集的等,通过tag补充标注。一个KV数据对,可以有无数个TagKey/TagValue描述,根据需要扩展完整的数据画像。
 
  具体到每个时序数据库产品,设计理念不完全相同。当前流行的时序数据库有InfluxDB、OpenTSDB、Prometheus、Druid等,有些数据库如Kdb+、RRDTool虽然在db-engines中排名靠前,但是当前流行的技术方案中提及的较少。
 
  图1:db-engines.com网站时序数据库的排名

 
  在我们的平台产品中,使用的是时间序列数据库OpenTSDB。OpenTSDB是时序数据库领域中比较早发布并且有广泛生产环境实践的产品。当前最新的稳定版本是2.3,通过OpenTSDB的官网http://opentsdb.net/可以了解具体的特性和实现。
 
  图2:OpenTSDB的官网首页

 
  OpenTSDB以KV数据库Hbase作为存储后端,可满足存储的横向扩展。对元数据的管理和数据存储上有存储优化的设计,是Hbase的一大优势。
 
  1. 通过为每个metric、tag key和tag value设计一个固定3byte的UID缩短Rowkey的长度;
 
  2. 支持一个时间段内的数据进行整合后存储,如将一小时3600个数据点合并成一个点,来节省Rowkey的数量。
 
  图3:OpenTSDB内部的存储机制

 
  我们选择OpenTSDB,除了上述自身的特性外,还考虑以下几点:
 
  1) 支持横向扩展,当前流行的时序数据库中,大都没有支持或者没有开源分布式组件;
 
  2) OpenTSDB的后端存储使用的是Hbase和HDFS,并且注册到Zookeeper进行管理,所以跟Hadoop生态圈融合的比较好,可以复用大数据平台组件,和其他大数据平台耦合;
 
  3) 开源的时序库,根据行业需求进行定制化开发。比如,我们根据风电数据存存在连续重复的可能,加入新的存储优化设计。
 
  OpenTSDB提供了REST API和CLI工具来提供数据读写的接口,后台跟Hbase的通信通过优化的AsynHbase库来完成,比Hbase原生的接口性能提升2被以上。以OpenTSDB作为存储引擎,加上数据采集模块和流处理模块就可以实现数据的实时收集存储。
 
  实时数据计算存储平台
 
  工业大数据的数据服务场景,主要体现在实时性、安全性和稳定性上。
 
  实时性:使用Streaming技术对数据实时计算、转换和写入落盘
 
  安全性:兼容各种网络安全设备的数据传输
 
  稳定性:充分考虑数据质量和设备状况、政策对数据采集流程的干扰
 
  针对SCADA的数据收集,风场的数据通过日志文件穿越电网传回数据中心,在数据中心建设大数据平台,对日志文件进行监控收集和解析存储。平台中主要的组件有:
 
  Flume:从风场传来的日志文件的监控和收集
 
  Kafka:风机日志文件的缓存和中间结果的保存
 
  SparkStreaming:风机日志文件的实时获取和预处理
 
  OpenTSDB+Hbase+HDFS:数据的存储和扩展
 
  图4:基于SparkStreaming和OpenTSDB的IoT实时数据平台

 
  SparkStreaming的任务完成受OpenTSDB+Hbase存储层的响应情况影响。为提升整个架构的容错和稳定,我们开发了一个组件来优化OpenTSDB的访问服务。在OpenTSDB节点负载过重或出现故障时,及时将计算节点连接到另一个健康的OpenTSDB节点,并且对这样的故障增加报警与错误记录,以通知到运维人员并为错误分析、调优提供原始记录。
 
  图5:OpenTSDB-Keeper组件提升OpenTSDB的稳定性

 
  ※可通过https://github.com/SkyAI/SkyDB/tree/master/tools/OpenTSDBKeeper获取
 
  风电企业数据治理:异构数据平台建设
 
  SCADA经由时序数据库存储后,可为集控系统、BI以及AI模型开发提供高效的数据平台服务。单一的设备数据源有时不能满足复杂业务模型的开发,除了SCADA,企业往往还有更多的业务系统和数据源可以集成共享,如MES、ERP等。罗马不是一天建成的,通过数据治理理念,逐渐完善数据平台的服务种类,篇幅有限本文不做过多说明。
 
  图6:天数润科风电数据平台

 
  注:着色部分为天数润科开发/优化组件,如SkyTSDB是参考OpenTSDB的优化版本。
 
  风电行业在过去10年得到了巨大的发展,运营中的设备数巨大,同时也迎来运维为主的新产业周期。在政策和市场的驱动下,行业内的技术交流和合作的促进下,精益管理的需求势必推动整个行业数字化转型。作为IT人,我们希望能通过深耕风电行业,提供成熟先进的数字化服务,为清洁能源的普及增长和碧水蓝天的美好生态贡献自己一份力量,实现共赢。
返回 国际新能源网 首页

新能源资讯一手掌握,关注 风电头条 储能头条 微信公众号

看资讯 / 读政策 / 找项目 / 推品牌 / 卖产品 / 招投标 / 招代理 / 发新闻

风电头条

储能头条

0条 [查看全部]   相关评论

国际能源网站群

国际能源网 国际新能源网 国际太阳能光伏网 国际电力网 国际风电网 国际储能网 国际氢能网 国际充换电网 国际节能环保网 国际煤炭网 国际石油网 国际燃气网