基于达梦数据库的水电厂智能数据存储策略
2023-01-30金岩磊郗发刚高少华张李小璟平金伟
金岩磊,郗发刚,高少华,罗 明,张李小璟,平金伟
(1.南京南瑞继保工程技术有限公司,江苏 南京 211002;2.华能澜沧江水电股份有限公司,云南 昆明 650214;3.西安热工研究院有限公司,陕西 西安 710054)
0 引言
近年来,随着大云物移智等新一代信息技术的蓬勃发展,大规模、高量级的特点在水电厂数据上尤为突出,传统的集中式关系型数据库尚不能达到数据管理的要求,同时也伴随着查询速度慢、安全性低等问题[1,2]。
另一方面,各类采集数据、量测数据指数式增长[3],存储技术不断发展变化,业务需求日益复杂,企业数据在制定存储策略时面对越来越多的不确定性,如何对数据进行科学储备、处理、应用成为了当下各行各业面临的重大问题。此外,海量数据具有如下特征:分散性、多样性和异构性,且对存储管理系统提出更高的要求[4,5]。
在当前大数据时代,传统文件系统不能应对存储挑战,而具有高可靠、高性能、可扩展的分布式文件系统由于可以有效应对存储挑战,被广泛地使用[6],其通过分布式数据存储和计算的系统,在生产环境下能够较好地进行PB 级数据处理。然而,分布式文件系统同样面对高数据访问量的压力[7]。
水电厂经过多年信息化建设与发展,积累了海量的设备运行数据、台账数据、水资源信息数据,随着数据量的不断增长,对企业的数据存储提出了新的挑战。其次,设备采集、状态监测、设备台账、视频监控等业务数据不断发展壮大,不同种类数据存储的频度和周期要求各不相同,当前的数据存储、访问形式难以满足业务人员对数据的正常使用需求和管理需求,需要对水电厂智能数据存储策略开展探索研究。
1 达梦数据库技术架构及优势
针对上述数据存储面临的现状和问题,综合考量国内各大数据库特点和性能,引入达梦数据库系统[8],综合采用分布式实时数据库、关系数据库的方式进行数据的存储与管理。
1.1 达梦数据库技术架构
达梦数据库采用透明分布式数据库(TDD)技术,能够分离计算、日志和存储这三层;并且每一层之间支持独立扩展,能够按需实现最佳设备配置。TDD 技术一方面具备如下特性:高可扩展、高可用、高并发处理能力;另外,TDD 技术也具有传统数据库的所有高级特性。在架构上(图1),达梦数据库继承了传统数据库架构中用到的一切特性,还支持存储过程、触发器、Package、序列等高级功能特性。
图1 达梦数据库架构图Fig.1 Structure of dameng database system
1.2 达梦数据库特性
达梦数据库具有数据库管理系统DBMS 的所有基本功能;另外,达梦数据库也具备通用性、高性能、高安全性、高可靠、高可用性、易用性、海量数据存储和管理、全文索引、对存储模块的支持、对WEB 应用的支持等特征[9],为水电厂海量的运行数据、台账数据存储提供了较好的支撑。其具体优势体现在以下4点:①满足多样需求;②运维省心便捷;③迁移便捷可靠;④高效的并发机制。
2 水电厂智能数据存储策略研究
基于商用达梦关系数据库的如下优点:较高的安全性、较快的处理速率、较大的存储容量、标准开放的SQL 数据访问接口等,综合实时数据库、历史数据库,设计了两者相结合的数据存储策略;采用实时库与历史库统一管理的模式,来达到实时应用对数据库的以下要求:及时性、一致性、完整性和开放性[10]。
实时数据库能够高效的存取实时数据,对水电厂电气设备的运行参数、实时信息、报警、变位、SOE 数据、保护信息等进行存储和管理。历史数据库主要对历史数据(即离线数据)进行存储与管理,以期实现提供的历史数据和数据模型是完整的,且能够做到分布式管理。另外,采取文件的方式能够对波形文件、日志图形、设备信息等进行存储与管理(图2)。
图2 水电厂智能数据存储策略Fig.2 Intelligent data storage strategy for hydropower plants
2.1 实时数据存储策略
实时库是数据平台的重要组成部分,在以实时应用为主的新能源集控系统中,实时数据库显得尤为重要。基于达梦数据库的实时数据库分为关系模型的实时库和面向对象的应用数据集两个部分,对实时应用来说,这两者是一整体,在本节中,不区分实时库和应用数据集,统一为实时库。
水电厂实时数据主要包括电气类、机械类、水力类、温度类、调节特性、其他等多种实时数据(图3)。
图3 水电厂实时数据类型Fig.3 Real time data type of hydropower plants
依据应用的需要原则,系统中实时数据库分布在各台机器中。即任一节点运行的应用所有数据库保存在该节点中,完善的一致性模式使得主副本之间同步更新。另外,并发方式下,在满足数据的完整性和一致性同时,不同程序可以对数据库内的同一数据集进行并发访问。数据库管理系统可以对全网分布的数据库进行管理,旨在达到全网数据一致性的要求。当修改任何一个计算机或工作站上数据库中的数据时,全网所有计算机或工作站中的相关数据将自动被数据库管理系统修改,以期实现数据一致性(图4)。
图4 数据库并发访问策略Fig.4 Database concurrent access strategy
2.2 历史数据存储策略研究
历史数据库主要用来存储发电厂运转过程中产生的一系列历史数据,包括周期原始数据、SOE数据、网络分析数据、PDR数据、报警事件数据、曲线数据、计算统计数据、历史电网结构、人工置数、设备信息、负荷预测、气象数据等。同时为了保证数据处理、查询效率,以实时库为基础,设计了一个快速的实时历史库,对海量数据进行采集、处理、压缩、存储、计算、查询等。
2.2.1 历史数据库存储数据类型
历史数据库存储的数据范围很广,主要可分为如下几类:
(1)周期原始数据:具有固定存储周期的数据,如水力机械、发电、变电、输电和控制及辅助等设备运行数据。
(2)报警事件数据:指的是如主机、网络等各种系统运行报警,以及如越限的系统报警。
(3)SOE数据:指事件顺序记录(SOE)数据。
(4)PDR数据:指事故追忆(PDR)数据。
(5)曲线数据:指趋势数据及曲线数据。
(6)网络分析数据:各种实时网络分析的数据,如状态估计计算结果。
(7)历史电网结构:指实时库各次发布前均能够存在商用库,若采用历史模型,将模型导出至固定节点的指定应用下即可。为SCADA、PAS提供历史数据模型管理方法。
(8)人工置数:指有人工输入的数据(如计划值),满足实时历史同步,参与考核计算。
(9)其他数据:设备信息、负荷预测、气象数据等,主要是用于存储、查询和显示。
2.2.2 历史数据的备份与恢复
为了确保历史数据库的安全性,多种数据备份和恢复措施被历史数据管理系统所采纳。基于制订备份计划,定时执行对历史库的联机备份;亦或者基于备份管理工具,及时执行备份。若出现故障情况,数据能够通过备份管理工具得以恢复(图5)。
图5 数据备份与恢复机制Fig.5 Data backup and recovery mechanism
按一固定时间间隔将低访问频率的历史数据归档到外部存储设备中,这不仅降低了运行历史库的数据量,还实现了对历史数据的长久保存。本文主要采取自动归档、自动恢复、手动归档、手动恢复这4种归档和恢复方式,每种方式的具体含义及步骤参见文献[11]。
2.2.3 构建高速实时历史库
Oracle处理的历史任务是分钟级的,对于秒级的存储任务,Oracle 无法满足性能要求,并且Oracle 占用空间较大,不利于水电厂历史数据的快速查询、调用。因此依托达梦数据库,以实时库为基础,把实时库作为一个管道,前端缓存采集数据,后端使用Huffman 压缩已经采集的数据,设计了一个快速的实时历史库(图6)。
图6 实时历史库数据存储Fig.6 Real time history database data storage
实时历史数据库系统是一个分布式系统,由若干个数据客户端和若干个数据服务器组成,数据客户端向开发人员提供数据存储和查询的接口。而数据服务器由于能够实现时序数据的压缩存储和查询功能,被证实为实时历史数据库系统的关键。为了保证数据处理的高效,在数据服务器端采取了多线程设计,分别完成数据收发,数据处理,数据压缩等功能,实现了数据并行处理。
2.3 数据存储加密策略
为避免用户信息通过数据文件被用户直接获取,同时为提升数据安全风险管控能力,依托达梦数据库,采用透明和非透明加密等方式,对全库、表空间、表列及其他数据库对象进行加密[12],数据库管理系统自动完成密钥生成、密钥管理和加解密过程,而用户是不可见的;这实现了水电厂数据存储加密的功能,存储在数据文件中的敏感数据的安全性得以保证,且使得包括DBA在内的其他人无法获取个人私密数据。
通过ENCRYPT_NAME 参数指定全库采用AES 加密算法,当DM 数据库服务器启动及运行时,对处理的所有数据页通过AES 加密算法和DM 自动生成的密钥做加解密处理。若数据页读入缓存,则只有经过解密后才能够得以使用;在对缓存中的数据页刷盘时,对数据页采取加密后存储到数据文件中,以此来保障数据的安全性。
AES 是一种对称加密算法,即在加密和解密过程中采取的密钥是一样的,目前在数据存储加密领域应用相对广泛,例如微信小程序加密传输就是基于AES 加密算法。具体加密流程如图7。
图7 AES加密流程图Fig.7 Encryption flowchart for AES
(1)明文P:没有经过加密的数据。
(2)密钥K:用来加密明文的密码,密钥为 DM 自动生成的密钥。在对称加密算法中,对于加密与解密过程所采用的密钥是一样的。
(3)AES 加密函数:假定E 是AES 的加密函数,那么密文C是一个关于明文P 和密钥K 的函数,即有C=E(K,P)。这表明,当输入P和K参数时,加密函数E将输出C。
(4)密文C:是一个经过加密函数E处理之后的数据。
(5)AES 解密函数:假定D 是AES 的解密函数,那么明文P是一个关于密文C 和密钥K 的函数,即有P=D(K,C)。这表明,当输入C和K参数时,解密函数D会输出P。
3 结语
本文在深入调研水电厂数据存储现状基础上,探索了基于达梦数据库的实时库+历史库数据存储策略,研究了基于AES加密算法的数据存储加密策略,为水电厂海量数据的存储、访问、备份、加密、应用提供了参考,确保了数据的安全可用、高效管理。结果表明,基于达梦数据库的智能数据存储策略能够很好的应用于水电厂实际生产运行中,具备较好的可用性、扩展性、稳定性。