喻 宜,吕志来,齐国印
分布式海量时序数据管理平台研究
喻 宜,吕志来,齐国印
(北京许继电气有限公司,北京 100085)
为了解决电力大数据环境下目前数据库产品无法高效管理海量时序类型数据难题,引入当前主流的分布式技术架构实现了真正意义分布式架构GAIA海量时序数据管理平台,保证系统更加稳定、可靠。采用具有可配置层次关系结构的模型中心来解决海量测点的管理问题。基于时间分片、事件驱动的前置数据采集系统有效解决海量终端的实时数据采集性能问题。从而能够提高大规模时序数据的管理能力,满足电力行业数据管理平台的要求,大力推进电力行业信息化发展。
电力大数据;实时数据库;分布式存储;信息化
随着国家电网公司坚强智能电网建设的逐步推进,尤其是各类信息化项目的试点与推广,大量实时数据得以产生,继而沉淀生成海量的历史数据,电力大数据时代已经到来。这些海量实时/历史数据是推动智能电网进一步发展的重要基础,同时,实现海量实时/历史数据的高效管理也是推进电网建设的关键。解决大规模时序数据的快速存储和访问处理难题,有效提高大规模时序数据管理能力是电力企业面临的重要课题。为此,数据采集技术[1-2]、分布式数据存储技术[3-5]及实时数据库技术[6-8]得以不断改进与发展。
国外的实时数据库主要有OSI公司的PI、ASPENTECH公司的IP21、HONEYWELL公司的PHD、WONDERWAR公司的HISTORIAN等,国内的实时数据库主要有SUPCON公司的ESP-ISYS,中国科学院研制的AGILOR,麦杰科技的OPENPLANT实时数据库等。
当前已有的实时数据库产品以集中式架构为主,在单台数据服务器上完成实时数据的管理;部分的实时数据库产品支持分布式架构,但服务器节点之间的数据处理工作仍然各自独立,数据处理技术难以适应快速的需求增长。文献[9]从实时性、可靠性和对IEC61970标准的支持3个方面阐述了EMS对实时数据库管理系统的要求,研究了新一代分布式面向对象实时数据库管理系统。文献[10]提出了入侵容忍的数据库体系结构,从应用层面探讨了下一代数据库系统的架构方式。文献[11]提出一种针对智能电网中基于IEC61970标准的实时数据库中数据的完整性恢复算法——RDIR算法,缩短了数据库恢复所用的时间,提高了实时数据库系统的生存性。文献[12]研究了基于云技术的数据检索机制。
但是目前的实时数据库产品主要存在以下几个方面的问题:
1) 没有实现真正意义的分布式架构,数据的可扩展性和稳定性差。
2) 简单的平面化测点模型结构难以应对上层应用对海量时序数据的数据挖掘处理需求。
3) 难以适应基于物联网的海量智能终端数据采集,包括数据源的多样性和海量终端采集处理性能瓶颈。
4) 缺乏灵活有效的数据安全保障机制。
本文设计的GAIA海量时序数据管理平台结合当前主流的分布式技术和架构,实现了真正意义的分布式架构,系统更加稳定、可靠;采用具有可配置层次关系结构的模型中心来解决海量测点的管理问题;基于时间分片、事件驱动的前置数据采集系统有效解决海量终端的实时数据采集性能问题;平台的控制中心有专门的权限管理程序,采用基于角色的访问控制灵活地进行系统权限管理。
GAIA分布式海量时序数据管理平台更加符合电力行业对时序数据管理平台的主流要求,整体系统功能更加贴近用户需求,具有很大的应用前景和市场竞争力。文中给出了GAIA分布式海量时序数据管理平台的体系架构,主要构成模块,并对主要的平台功能进行了详细介绍。
系统总体上采用了主流分布式处理架构,由多个实时数据库和外围管理工具构成企业的实时数据管理平台,并且提供多种数据库访问接口以满足不同的应用需求。分为分布式实时数据库系统、监控应用开发平台、监控应用运行平台,软件架构如图1所示。
核心部分是分布式实时数据库系统,它采用三层体系结构,即数据采集接口层、实时数据管理服务层和应用接口层,采用X86分布式集群技术和分布式存储技术,利用多台高档的PC服务器构建的数据库集群,为业务系统提供强劲、稳固的后台系统;采用分布式网络存储技术将数据分散的存储于多台独立的机器设备上;并采用可扩展的系统结构,利用多台存储服务器分担存储负荷,利用位置服务器定位存储信息,实现分布式网络存储。解决传统集中式存储系统中单存储服务器的瓶颈问题,并提高了系统的可靠性、可用性和扩展性。
平台还采用可灵活配置的通用层次结构模型中心,可以通过配置满足不同上层应用业务需求。
GAIA分布式海量时序数据管理平台主要包括四个组成部分:GAIA FES数据采集服务、GAIA HDB分布式实时库、GAIA客户端产品、GAIA维护工作站产品,具体模块分布如图2所示。
2.1 GAIA FES数据采集服务
GAIA FES可实现从厂站自动控制系统和厂站管理数据源获取准实时数据与管理数据,经过预处理与过滤后传送到『GAIA HDB』或者上级数据中心;支持数据的压缩存储;支持SOE功能;支持图形化与表格化浏览。
2.2 GAIA HDB分布式实时库服务
GAIA HDB提供高效快速的数据存储和访问,实现屏蔽不同数据特性的透明数据支持;支持多种标准数据库访问驱动(例如OPCSVR,ADO.NET DRIVER,DDESVR,);制定了模型驱动的数据压缩存储策略。
2.3 GAIA客户端产品
GAIA SDK提供丰富的二次开发支撑,支持大量的标准数据访问接口以及工业化的高效实时信息访问接口GAIA HOTLINK API;GAIA REPORT实现可定制的实时信息报表功能;GAIA VIEWER实现丰富的图形化数据表现;GAIA PORTAL实现数据中心信息的WEB发布。
2.4 GAIA维护工作站产品
GAIA MODEL实现数据中心模型驱动元数据定义;GAIA EASYWEB实现可视化的数据图形表现界面定义。
3.1 前置通信网关
GAIA分布式海量时序数据管理平台的前置通信网关(GAIA_FES)能够屏蔽各种底层软硬件设施及实际通信环境的差异,使系统内功能模块得以灵活部署,处于复杂网络结构的系统间得以简便互联。针对各种具体的底层网络硬件,在具体部署时,会从“介质处理库”中加载相应的处理模块,目前GAIA_FES 中的“介质库”中有:以太网TCP服务端,以太网TCP客户端,以太网UDP(单播,组播),串口RS232(RS485),LONWORKS,CAN等多种媒介处理模块。
网络通信与数据传输采用动态平衡双网技术,对底层网络数据传输进行封装,实现服务器和工作站各个节点之间透明的网络数据传输,同时可以监视网络流量、网络传输异常,并自动进行告警。
GAIA FES前置通信网关采用基于时间分片异步通信处理框架模式,极大提高数据采集并发处理性能,并简化了通信插件的编写和调试;同时提供数据缓存功能,数据库服务器停机或网络中断时,接口机可以将数据缓存在本地,等数据库服务器工作正常或网络连通后,自动将缓存的数据发送到数据库服务器。
3.2 集群管理
集群管理是GAIA分布式时序数据管理平台提供的最主要功能之一,主要负责对实时数据库服务节点的集群管理,其子功能如图3所示。
图3 集群管理功能
1) 主节点选举:为保证管理平台数据的顺序一致性、原子性、在平台中处于主导地位的节点,系统通过Raft一致性算法保证系统内只有一个主服务节点,其他都为从节点。
2) 名字服务与透明访问:通过创建节点接口,能够创建一个全局唯一容易管理维护的路径,这个路径就可以作为一个名称对外提供访问,各个应用程序或节点不关心服务在哪里,只要通过名字服务就能进行网络通信。
3) 配置管理:实现由配置服务器统一配置,一旦配置发生变化,及时广播,如果是本节点的配置,及时同步配置,达到全网配置一致性。解决热加载问题(热加载:程序更改配置,不需重启就能快速响应)。
4) 分布式同步:系统必须在原子广播的模式下工作,一旦各个服务状态同步后,即可进入广播模式,保证每个服务的状态一致性。当服务启动或者在领导者崩溃后,就进入了恢复模式,当新的领导者被选举出来后,即可完成状态的同步,保证系统实时性。
5) 资源监视:实现对节点、应用等资源的监视,包括集群状态监视、机器节点监视、参数配置和报警监视。
6) 备份恢复:为了防止数据的失效、数据的丢失等事件的发生,就必然要考虑数据的有效保护方式。特别是遇到人为的或自然灾害的情况下,能够通过备份内容对系统进行有效的灾难恢复。
3.3 实时历史数据库
GAIA HDB采用自主开发的『X-STEP』压缩算法,将无损压缩和有损压缩相结合,大大节省了硬盘空间,延长了在线数据年限(软件本身可以支持的数据存储年限没有限制)。
历史数据管理主要负责存储测点的历史值和历史状态,提供高效可靠的历史数据访问和存储服务。采用时态数据模型,其存储分为三级:历史数据缓冲池、当前历史数据文件队列和历史数据归档文件,分别记录现场准实时数据的近期、中期和远期数据。
GAIA分布式海量时序数据管理平台的历史数据管理采用异步存储方式,即数据存储操作只需将历史数据追加在历史数据缓冲队列的末尾就立即返回,然后再由系统的内部工作线程将历史数据缓冲队列的数据写入历史数据缓冲池,可以避免文件操作和数据封锁带来的不可预测的时间延迟。
3.4 模型中心
根据以往实时库在数据中心和生产管理系统中的应用,没有关系模型的实时库很难对海量数据进行有效数据分析与挖掘处理,因为缺少了数据之间的逻辑关系。模型中心结合电力系统的特点和CIM模型在电力系统的应用,配置为通用树形层次结构关系模型,充分满足各种上层应用业务系统需求。如图4所示,它包括模型管理和模型服务模块,模型管理可以根据不同业务需求对设备和测点的相关属性进行扩展定义。
图4 模型中心功能
GAIA分布式海量时序数据管理平台的测点配置管理可在不停止系统运行,同时不影响系统正常运行的条件下对测点进行基本维护管理,包括添加、修改测点的数据信息(名称、描述、状态、限值,量程、压缩精度)和删除测点等。此外,还可提供测点的数据来源信息;支持测点信息以固定格式(文本、EXCEL等)的批量导入/导出。
3.5 计算服务管理
GAIA分布式海量时序数据管理平台的计算规则库模块实现对计算规则的设置与管理,同时支持用户自定义算法的调用。
可以根据用户需求提供在线计算引擎,引擎通过时间、优先级等配置策略,调用脚本引擎执行对应的计算算法,对系统采集的状态和数值进行各种统计计算,生成计算结果,并作为测点的结果值和状态转存到数据库中,用户可调用和查询统计结果。
3.6 报警服务管理
报警服务是GAIA分布式海量时序数据管理平台的基本功能。GAIA报警管理可实现报警项配置、设定阈值、级别设定、报警信息统计查询、定时检查汇报等功能,保证系统安全、稳定运行。
3.7 安全保障机制
在实时数据库管理系统安全方面,平台的控制中心有专门的权限管理系统,能够灵活地进行权限管理。权限管理系统模型采用基于角色的访问控制RBAC(Role-Based policies Access Control)模型中的基本模型RBAC0,由数据库管理员将用户进行分类,对不同的用户赋予不同的访问权限,并根据实际情况做出权限调整,以支持用户对数据的存取授权和控制。同时,针对越权使用资源的行为提供了防御措施。
3.8 二次开发接口
GAIA分布式海量时序数据管理平台提供了灵活的消息获取接口,如信息查询、追加接口,测点管理接口,提供二次开发接口,以API/SDK的方式提供函数调用接口等,并且接口对目前主流开发语言(包括C/C++/JAVA/PATHON/C#/VB/RUBY等)均提供有效支持,因此通过客户端可方便开发或集成新应用。
此外,GAIA分布式海量时序数据管理平台提供基于数据存储和通用数据服务之上的应用服务。包括报警、性能公式、总加器、第三方函数动态链接库,该应用服务保证了用户获得其桌面计算机应用所需的信息,而不用在客户端进行复杂运算。
文中设计的GAIA分布式海量时序数据管理平台结合当前主流的分布式技术和架构,实现了国产实时数据库真正意义上的分布式架构,解决了传统集中式存储系统中单存储服务器的瓶颈问题,提高了系统的稳定性、可靠性;采用具有层次关系结构的模型中心解决了海量测点的复杂管理问题;基于时间分片事件驱动的前置数据采集系统有效解决了海量智能终端的实时数据采集问题;平台的控制中心有专门的权限管理程序,采用基于角色的访问控制能够灵活地进行权限管理。
目前该平台已经成功应用到国网山东省电力公司配电网能效管理项目中,面对山东全省17地市(包括97个县),有效解决了近4万台智能台区终端数据(约1300万测点)的采集、存储和管理应用难题,有力保障整个能效管理系统的高效、稳定运行。
[1] 高强, 王霖. 基于GSIG的分布式电源信息采集模型[J].电力系统保护与控制, 2016, 44(5): 55-59.
GAO Qiang, WANG Lin. Research on information acquisition model of distributed generation based on GSIG[J]. Power System Protection and Control, 2016, 44(5): 55-59.
[2] 畅广辉, 镐俊杰, 刘宝江, 等. 电网调控信息智能分级采集系统的研究与开发[J]. 电力系统保护与控制, 2015, 43(6): 115-120.
CHANG Guanghui, HAO Junjie, LIU Baojiang, et al. Research and development of intelligent and classified collection system for electric power dispatching and control information[J]. Power System Protection and Control, 2015, 43(6): 115-120.
[3] 金小明, 吴鸿亮, 周保荣, 等. 电网规划运行数据库与集成管理平台的设计与实现[J]. 电力系统保护与控制, 2015, 43(15): 126-131.
JIN Xiaoming, WU Hongliang, ZHOU Baorong, et al. Design and implementation of integrated database management platform for power grid planning and operation[J]. Power System Protection and Control, 2015, 43(15): 126-131.
[4] 张少敏, 李晓强, 王保义. 基于Hadoop的智能电网数据安全存储设计[J]. 电力系统保护与控制, 2013, 41(14): 136-140.
ZHANG Shaomin, LI Xiaoqiang, WANG Baoyi. Design of data security storage in smart grid based on Hadoop[J]. Power System Protection and Control, 2013, 41(14): 136-140.
[5] 杨宇. 分布式存储系统中海量文件随机存取技术研究[D]. 北京: 北京邮电大学, 2015.
YANG Yu. Research on random access technologies for massive files in distributed storage system[D]. Beijing: Beijing University of Posts and Telecommunications, 2015.
[6] 刘应波. 太阳望远镜海量数据存储关键技术研究[D].云南: 中国科学院研究生院(云南天文台), 2014.
LIU Yingbo. Research on the key technologies of massive data storage for solar telescope[D]. Yunnan: The University of Chinese Academy of Sciences (Yunnan Observatories), 2014.
[7] 翟明玉, 王瑾, 吴庆曦, 等. 电网调度广域分布式实时数据库系统体系架构和关键技术[J]. 电力系统自动化, 2013, 37(2): 67-71.
ZHAI Mingyu, WANG Jin, WU Qingxi, et al. Architecture and key technologies of wide-area distributed real-time database system for power dispatching automation system[J]. Automation of Electric Power Systems, 2013, 37(2): 67-71.
[8] 张崭. 基于组态软件的电力系统实时数据库设计与实现[D]. 北京: 中国科学院大学, 2014.
ZHANG Zhan. Design and implementation of power system real-time database based on configuration software[D]. Beijing: The University of Chinese Academy of Sciences, 2014.
[9] 姚阳春, 柴世友, 吕行, 等. 新一代分布式面向对象实时数据库管理系统[J]. 电网技术, 2007, 31(增刊2): 284-287.
YAO Chunyang, CHAI Shiyou, LÜ Xing, et al. New generation of distributed object-oriented real-time database management system[J]. Power System Technology, 2007, 31(S2): 284-287.
[10] 陈池, 冯登国, 徐震. 数据库事务恢复日志和入侵响应模型研究[J]. 计算机研究与发展, 2010, 47(10): 1797-1804.
CHEN Chi, FENG Dengguo, XU Zhen. Research on database transaction recovery log and intrusion response[J]. Journal of Computer Research and Development, 2010, 47(10): 1797-1804.
[11] 张少敏, 李志熊, 王宝义. 一种面向智能电网的实时数据库数据完整性恢复方法[J]. 电力系统自动化, 2013, 37(13): 93-98.
ZHANG Shaomin, LI Zhixiong, WANG Baoyi. A data integrity recovery method in real-time database for smart grid[J]. Automation of Electric Power Systems, 2013, 37(13): 93-98.
[12] 钱益舟. 基于云技术分布式实时数据库高性能数据存储检索机制的研究[D]. 杭州: 浙江大学, 2012.
QIAN Yizhou. Research of high performance data stroage and retrieval of distributed realtime database based on cloud computing technology[D]. Hangzhou: Zhejiang University, 2012.
(编辑 周金梅)
Research on distributed large-scale time seriesdata management platform
YU Yi, LÜ Zhilai, QI Guoyin
(Beijing XJ Electric Co., Ltd., Beijing 100085, China)
To solve problem that current database is unable to manage large-scale time series data efficiently under power big data environment, the GAIA distributed large-scale time series data management platform using popular distributed architecture is established, to ensure stability and reliability of system. It uses model center of configurable hierarchical relation to solve problem for large-scale measure point management. It adopts event-driven and time slicing technology to effectively solve the problem for performance of large-scale terminal real time data acquisition. The proposed platform can greatly improve the capabilities to manage large-scale time series data, meet the requirements of the power industry data management platform and vigorously promote the development of electric power industry information.
power big data; real-time database; distributed storage; information technology
10.7667/PSPC160792
2016-04-16
喻 宜(1972-),男,通信作者,硕士,工程师,从事电力系统自动化、信息化研究工作;E-mail: yuyi98@163.com吕志来(1973-),男,博士,高级工程师,从事电力系统自动化、信息化研究工作;E-mail: helen_lr@163.com 齐国印(1981-),男,学士,工程师,从事电力系统自动化工作。E-mail: qiguoyin81@163.com