基于数据库管理的D5000系统数据管理技术

引言

基于数据库管理的D5000系统数据管理技术

以特高压、三华联网[1]为代表的智能电网飞速发展,国家电网公司集约化、扁平化管理[2]的快速推进,计算机、通信技术的长足进步[3—5],推动了智能电网调度控制系统(简称“D5000系统”)的研发和推广。

D5000系统体系架构,横向上将原来多套独立系统集成为分布在Ⅰ/Ⅱ/Ⅲ区的四大类应用,纵向上贯穿各级调度[6]。原各个孤立系统的数据管理技术无法适应这种架构。各级调度间信息共享,需要信息安全保障,原孤立系统数据管理不具备这样的功能。横向集成、纵向贯通的体系架构要求全局信息的支撑能力提升;数据规模急剧增加,原有孤立系统的数据管理无法应对这种数据规模,也无法达到应用协同所需的效率。因而亟需开发适应D5000系统需求的数据管理技术。

D5000系统数据管理基于面向服务的总线,借助安全防护技术,包含实时数据库(简称实时库)、商用关系数据库(简称商用库)、时间序列内存库(简称时序内存库)、时间序列文件库(简称时序文件库)和集中管理文件几类数据服务。

文献[7]提出基于商用库的数据中心,将各种数据转换到数据中心,实现多套系统信息共享,该方式中间环节多,维护工作量大,定制性强,是早期缺乏统一平台的数据共享方式。文献[8—10]提出了通过资源集中、虚拟化、HBase等云技术的信息中心方案;文献中将大机虚拟化成小机的方式和D5000系统将多台服务器协作出一台大机工作效能的研究方向思路不同;文献 中提 到 的 基 于 “关 键 字—数 值”(Key—Value)的HBase,其性能无法满足D5000系统实时处理、在线计算的要求,无法进行多条件检索和联合查询;文献中提到的Map/Reduce并行处理方式,须借助于文件交换,处理批处理任务,难以满足以信息实时处理为主的D5000系统。文献[11]将商 用 库 封 装 成 电 力 市 场 数 据 管 理 平 台。文 献[12—13]介绍了采用拼接方式构建的模型管理平台;文献[14—15]介绍了生产控制大区与管理信息大区内、外数据平台间的数据采集、存储、交换、共享、加工等方面的研究内容;文献[16]对变电站数据中心进行了研究;但文献[11—16]均不涉及底层数据管理研究,而是数据管理之上数据使用层面的研究。文献[17]实现了参照公共信息模型(CIM)的对象实时库原型,但工程化考虑不足,文献提供的性能数据无法满足电网调度控制系统要求。文献[18]介绍了一种层次性实时库,其实现方式采用了和本文所提实时库不同的技术路线。文献[19]介绍了一种可扩展标记语言(XML)数据库,但性能不高,未见工程应用。文献[17—19]中的实时库均不支持横向集成、纵向贯通架构。文献[20]介绍了D5000系统实时库的部分技术。文献[21]是D5000系统实时库技术基础上的深化研究。文献[22]研究了电厂监控系统使用时序库的方法、时序库在电网广域测量系统(WAMS)中的使用[23]、时序库的备份方式[24],但均未涉及时序内存库、时序文件库实现技术。

Google设计了基于GFS(Google file system)的分布式存储系统BigTable[25],为用户提供简单的数据服务,客户可以动态控制数据的分布和格式。

BigTable以行名、列名、时间戳建立索引,适用于特定的应用环境。

Amazon提供了基于Dynamo基础存储架构的简单存储服务 (simple storage service,S3)[26],它以“桶”为容器、通过“键”查找“对象”,提供简单、易用、低成本的数据管理方式。这两种数据管理方式较好地适应了非结构化数据的特点,都能管理PB级别的数据,具备良好的可扩展性,能够很好地适用于电子商务、信息分析等数据量特别庞大,数据处理较为简单,对响应速度要求不高的业务。

其 他 的 非 结 构 化 数 据 平 台 诸 如Yahoo的PNUTS[27]、阿 里 云 的 开 放 数 据 处 理 服 务(ODPS)[28]等均具有类似特点。然而这些数据存储管理方式均无法满足调度控制系统对实时性的要求,数据查询的灵活性和商用关系数据库存在明显差距,在存储历史数据时也无法达到时序文件库的效率,难以直接应用于以结构化数据使用为主的调度控制系统中。

D5000系统的文件管理是基于服务总线的大粒度文件集中管理服务,实现方式较为简洁,本文不详细介绍。

1 数据库管理的特点

数据库管理中的几种技术适合于不同的场景,各具特点,同时也相互协作配合,相辅相成。

1)实时库实时库提供高速的本地访问接口、远方服务访问接口,具有数据定义、存储、验证、浏览、访问和复制等功能,支持数据关系描述和检索,对各种实时、在线类应用程序提供数据共享和交换手段。实时库中的模型数据来自商用库按照应用检索的视图。

2)商用库商用库具有结构化、完整性和可靠性的特点。在D5000系统中,商用库主要用于保存对一致性、可靠性要求很高,而对数据读写效率要求稍低的场景。商用库管理的数据可分为模型数据和历史数据,模型数据包括数据字典、系统运行参数、电网设备参数、电网静态拓扑连接信息等。历史数据包括采样、告警、计划值、运行数据、考核数据等。

3)时序内存库时序 内 存 库 用 于 存 储 诸 如 相 量 测 量 单 元(PMU)动态检测这类高频变化的时间序列数据,其性能要远高于下文介绍的时序文件库,常用作时序文件库的高速缓存。该数据库采用共享内存存储数据,并和时序文件库协作运行,循环保存一段时间内的数据,超出时间范围的数据将被后续数据覆盖。WAMS应用下的动态监视、一次调频、扰动识别、低频振荡等功能均直接使用时序内存库。

4)时序文件库时序文件库主要用于存储较长时期的PMU动态监测数据等高频变化数据,对于故障期间的数据还可永久保存。与稳态数据相比,动态数据具有异地同步采样、带高精度时标、高密度实时传输的特点,能精细反映电力系统动态行为过程,基于动态数据的电网运行动态监视与分析应用让调度运行部门具备对电力系统低频振荡、短路故障、机组跳闸等电力故障行为进行有效监测和事后分析能力。海量数据的高速采集和分析占用较大的传输带宽和存储空间,时序文件库需具备快速压缩存储和高效检索能力。

2 D5000系统对数据库管理的需求

D5000系统对数据库管理整体的要求是满足横向集成、纵向贯通架构,使用安全、可靠,D5000系统对数据库管理方式还各有如下要求。

1)D5000系统对实时库的要求在横向集成、纵向贯通体系架构下,D5000系统的数据规模远大于孤立系统的数据规模。在线计算、分析、控制需要实时库能够快速读写,以适应不断涌现、不断完善的各类应用。要求支持多态、多应用、多模式,应用可选择不同粒度的容器进行反演、仿真、分析计算。实时库还可以和多源信息结合,进行信息的按需管理[29]。

2)D5000系统对商用库的要求在D5000平台对应用广泛支撑、备用调度建设、省地协作、地县一体化的背景下,商用库管理的数据规模成倍增加,尤其是包括数据采样在内的历史数据管理将面临极大压力,商用数据库及其上的服务需具备足够的吞吐量应对这样的数据压力。所选商用库还需遵循通用数据库访问接口标准(DCI)以屏蔽不同厂家数据库产品的差异。

3)D5000系统对时序内存库的要求作为时序文件库的高速缓存,时序内存库需具备高速批量数据读写能力,能按照时间范围快速读写单点、多点数据。

4)D5000系统对时序文件库的要求电网运行动态监视与分析功能对同步采集数据的时间分辨率有非常高的要求。以网级调度中心为例,主站系统按照200个厂站每秒采集50帧PMU数据的规模,测点数量超过50 000个,主子站间实时数据通信流量超过40Mbit/s,每小时的原始数据量超过36G字节,海量数据存储和查询对数据存储系统带来巨大压力。采用高效数据压缩算法存储电网运行动态数据,在保留电网动态过程原貌的同时,减小数据对存储空间的占用,是动态监视与分析应用建设的关键技术要求。

3 数据库管理的体系架构

数据库 管 理 体 系 架 构 可 分 为4个 层 次 (见图1)。基础 设 施 层 包 括 计 算 机 硬 件、安 全 操 作系统。【1】

在基础设施之上的是总线层。数据库管理的设计体 现 了 面 向 服 务 的 思 想,基 于 面 向 服 务 架 构(SOA)的总线是数据对外共享和应用集成的基础,D5000系统的'数据服务在横向SOA支撑下,贯穿Ⅰ/Ⅱ/Ⅲ区。纵向SOA总线提供上下级系统间数据访问能力。它是数据远程访问技术的基础。安全防护提供总线、数据、应用的整体安全保障机制,具体实现见4。2节。

实时库、商用库、时序内存库、时序文件库在基于SOA的总线基础上,被封装成服务,通过标准数据库访问接口[30]对外提供数据库服务,数据库服务和标准数据库访问接口共同组成数据服务层。

4。3至4。6节介绍了D5000系统中各类数据库的部分关键技术。数据访问层的具体内容详见第5节。

数据服务层之上是使用各类数据的各类应用。

4 数据库管理关键技术

数据库管理相关技术很多,限于篇幅,本文仅介绍部分关键技术。

4。1 数据远程访问技术为了实现上下级调度控制系统的纵向贯通,D5000系统实现了系统间数据远程访问的机制(见图2)。图2中有A和B两个系统,系统A需要访问系统B的数据。具体步骤如下。

步骤1:系统A需将系统B中能提供哪些类型的数据注册到资源表中。

步骤2:系统A中的应用程序调用数据访问接口。

步骤3:数据访问接口会先通过远程资源定位服务。

步骤4:查询资源定位表。

步骤5:通过远程资源定位服务返回的地址信息,通过SOA总线代理。

步骤6:找到系统B的资源代理。

步骤7:将请求带到系统B的数据服务。

步骤8:系统B的数据服务取到数据后,逐级将结果返回给系统A的数据访问接口,最后返回给调用程序。【2】

4。2数据访问安全技术数据访问安全含通信加密与安全标签两项技术。

通信加密通过数字证书、隧道配置,及数据预置的方式完成相互间的身份验证及隧道协商。建立临时隧道时,通过自定义的证书交换协议完成证书的交换,并完成双向认证及密钥协商,对数据通信进行加密保护。这种加密方式对上层通信完全透明,不涉及上层通信程序的改动。

D5000系统建立了安全访问控制策略,对系统中的所有访问者(用户、程序等)和所有服务都分配一个安全标识,称为标签。然后通过电力调度证书认证(CA)系统,在标签基础上进行签名,扩展出一种安全标签。

D5000系统上下级数据调用中,使用了安全标签,并按照标签中的安全策略进行数据访问控制。

4。3实时库直接定位技术实时库直接定位技术适宜于关键字包含逻辑记录号的情况,这种技术用关键字的逻辑记录号也是物理记录号(见图3),记录按照关键字中包含的记录号放置,根据关键字查找记录直接定位,没有中间环节;删除记录、插入记录没有记录移动,不会产生内存拷贝。通过关键字索引,获取全表记录效率可接近紧凑表的效率。设备表和大量定义表均配置成直接定位方式,工程现场使用效率较高。【3】

4。4商用库历史数据管理技术以天为单位查询历史数据是最为常用的历史数据访问方式,譬如日曲线、日报表等,在这样的使用场景下,历史数据按行存储比按列存储具备更高的访问效率。历史采样采用了行式存储方式,在该方式下,列表示采样时间,行表示测点(见图4)。【4】

以1min遥测采样为例,1min采样表每天会产生三张表名带日期的表:遥测值表、遥测状态表和遥信值表。该表的第一个列为DATA_ID,是某个遥测量的关键字;DATA_0_0,DATA_0_1,…,DATA_23_59分别表示每天第0时0分,0时1分,…,23时59分的值,该表每一行记录可以表示一个遥测量一天中每一分钟的值,遥测量个数与该表记录行数相同。遥测状态表、遥信值表与遥测值表的结构相同,只是表中保存的分别是遥测值的状态、遥信值。

历史数据的行式管理具有如下优点:

1)查询效率高。查询某测点日曲线时,只需访问1张表的1条记录即可;查询某一历史时刻断面,也只需访问1张表的2列(含关键字列)。

2)便于管理。这种表结构设计对于采样数据的存储、归档、备份、恢复非常方便。

4。5时序内存库批量快速访问技术时序内存库采用SOA,提供服务端和客户端。

如图5所示,服务端接收基于PMU的前置应用报文,将数据存储在本地共享内存中,应用程序通过调用客户端接口访问服务端数据。在存储方面,时序内存库采用固定时间长度、数据值等间隔、下标直接定位的设计满足动态信息数据高速、海量、带时标特点的高效存储、检索要求;同时,时序内存库还提供支持多线程的数据访问及管理接口,充分利用CPU多路多核技术。这些方法有效地提升了时序内存库的快速批量访问效率。【5】

4。6时序文件库压缩存储技术电网运行动态数据的在线无损压缩有2个关键技术难题:

①压缩算法须提供较高数据压缩率支持海量数据存储要求;②数据在线存储和查询要求压缩算法在压缩和解压过程中都具有较短的响应时间。时序文件库采用独特的数据无损压缩算法,根据电网动态数据连续变化的特性,结合数据类型与数据测量值的变化趋势进行针对性优化,在获得更大的数据压缩比的同时保持较高的计算效率。

时序文件库采用高速索引与内存映射技术对压缩数据段进行文件读写,获得了较高的数据访问速度,能够很好地满足省级以上调度中心的动态数据存储要求。

5 数据库访问接口与数据库维护管理

数据库访问提供3类接口。

1)数据库本地访问接口:以实时库本地接口为代表,通过本地访问接口,可将实时库映射到进程地址空间,访问实时库就如同访问本地数据一样高效,没有其他方面的开销。各类在线应用的处理、分析较多使用了数据库本地访问接口。

2)数据库网络访问接口:在将数据库封装成服务的基础上,提供网络接口,供D5000系统内部节点访问分布在系统内其他机器上的数据库。这类接口存在网络通信、序列化和反序列化的开销,较数据库本地访问接口效率低,自动发电控制(AGC)等需要多机数据库的应用和本地没有数据库的工作站使用到了这类接口。

3)数据库远程访问接口:如4。1节所述,在数据库封装成服务基础上,通过通信代理,使用安全防护手段,可实现系统间的数据库远程访问。

在数据库维护上,随着各级调控机构协作加强[29,31—32],原有简单数据库维护方式无法保证模型共享基础上的独立维护和互不干扰,需采用分区域/分用户的维护管理方式(见图6)。【6】

该维护方式通过区域、厂站、节点/用户、设备之间的多重关联和级联组合关系,结合广域权限管理,保证数据库协作维护管理的安全性和一致性。

6 数据库容量和性能

在设计上,实时库每张表的最大记录个数可以达到1 600万条。商用库的历史采样点个数设计上没有 限 制。时 序 内 存 库 和 时 序 文 件 库 均 可 支 持10万点的采样,并可根据需要进行扩展。

经过测试,实时数据库直接定位的访问速度不低于200万次/s读(写)。商用库能在1~2s之内完成20万个采样点的保存,单个采样点一天历史数据的查询在16ms以内。时序文件库读写速度不低于100万条/s数据记录,时序内存库读写速度不低于300万条/s数据记录。

无论D5000系统在容量还是性能上,这几种数据库都能很好地满足系统未来长期运行的需要。

7 结语

以数据库管理为核心的D5000系统数据管理技术,横向上支持应用在Ⅰ/Ⅱ/Ⅲ区集成、扩展,纵向上支持各级调度贯通、协作,支持各种数据访问方式,满足各级调度高效协同运行效率要求。数据管理技术已成功应用于各级D5000系统。数据管理技术作为D5000系统核心技术,有效保障了各级电网调度控制系统安全、稳定、高效运行,为智能电网建设提供了有力的技术支撑。

随着以集群为方向的D5000系统深化研究的开展[33],为集群服务的分布式数据管理将成为未来重要的研究方向,研究内容包括以下几个方面。

1)灵活分布的数据集群化存储方法需要研究满足电网业务需求、可灵活分布的数据集群化存储方法,其难点在于如何实现数据按电网业务需求进行分片,将数据合理分布存储在集群的多个节点中,为提高集群处理的效率提供数据存储支撑。

2)数据迁移和冗余互备技术集群化系统中,节点数量众多,硬件故障概率较大,需要研究分布式数据的冗余备份技术,实现所有分片数据的备份存储,保证各冗余备份的数据一致性,在节点故障时仍可提供实时数据访问,提高分布式数据的可靠性。

3)高效分布式数据访问技术需要研究满足应用性能需求的分布式数据访问技术,满足大规模电网数据计算的实时性要求,其难点在于如何提供高效的算法,实现高效的透明分布式数据访问。

随着D5000系统监控范围的扩大,历史数据的不断丰富,已有业务的融合与新业务的产生,借鉴云计算[3]与大数据处理[4]的思想,参考其他数据平台[25—28],进行历史数据挖掘与分析也将是D5000系统数据管理技术极具潜力的研究方向。

参 考 文 献

[1]艾琳,王超,陈为化。三华特高压同步联网及其对调度方式的影响[J]。能源技术经济,2011,23(5):38—41。