3高可用(HA)机制
智能电网状态监测领域实时搜索系统的高可用性要求建立高效的副本管理机制。为保证动态索引机制在某个节点出现宕机或异常退出的情况下不影响检索性能,需要对索引文件进行多个备份,以便能快速恢复异常节点中保存的索引文件。
实时搜索系统多重副本机制由分布式协调服务系统通过管理主节点Master来管理多个索引文件的副本,在线或离线方式创建的动态索引文件通过分布式协调服务系统在主节点Master进行注册,Master根据资源调度算法将索引文件分配给多个数据节点进行备份。
当用户访问某一部分数据时,动态索引系统为用户提供某个目标节点服务器来获取数据的索引,如果此时该节点服务器宕机导致索引文件无法正常获取,统一资源调度系统获取到该异常后,通知主节点Master到相关的节点获取该索引文件的副本供用户访问,继续搜索所需的数据,整个过程用户不会受任何影响。同时为保证主节点Master的高可用性,系统也支持对主节点Master的数据进行多副本管理,当主节点因为断电或异常退出时,主节点中保存的副本管理信息可以从该节点的副本中恢复并继续运行。同时,系统的高可用机制还用于状态监测服务的主节点多副本管理。
4基于动态索引的实时搜索系统
4.1实时搜索系统架构
本文所述的智能电网海量数据实时搜索系统基于电力系统现有单体数据库系统和通信网络,构建实时分布式存储系统,其核心技术是利用大数据框架的并行处理技术、分布式资源高可用技术(HA)以及负载均衡技术,实现了数据库系统的实时性、可靠性和高扩展性。实时搜索系统结构如图10所示。
实时搜索系统包含动态索引系统、并行计算模块、负载均衡模块、分布式协调服务模块4个核心模块。
1)动态索引系统。动态索引系统是实现实时搜索的基础,通过建立两级索引机制,实现监测点和数据的双层索引。采用大数据框架中成熟的一致性哈希表,将规模庞大的智能电网状态监测点和现有的数据库集群实现均衡的映射关系,提高各节点服务器的存储效率;引入并行处理框架(MapReduce),针对海量状态监测数据和小文件,建立高效的实时检索文件;通过建立服务器节点状态监测服务,自动适应服务器集群的变化,对监测点索引和数据索引进行更新,并对更新过程进行记录。动态索引系统可以与分布式存储系统的高可用技术结合实现双层检索机制、节点状态监测机制的高可用性。
2)并行计算模块。采用MapReduce并行处理框架解决海量数据索引创建效率低下的问题,同时并行处理框架还为数据实时读取提供并行处理能力,提高了索引文件和数据的检索速度。
3)负载均衡模块。该模块为动态索引框架提供集群节点负载优化策略,通过制定的负载均衡模型,建立动态调整机制,解决了服务器节点运行状态改变或节点数量变化导致的系统性能下降问题。
4)分布式协调服务。该模块主要提供高可用的资源服务,包括构建索引文件和监测服务主节点的多副本管理,保证在服务器集群宕机或异常退出时能够及时恢复数据,不影响系统的正常运行。
4.2实时搜索系统分析
本文所论述的实时搜索系统(LGRS)是基于业界大数据Hadoop框架开发的分布式数据实时搜索方案,底层存储基于分布式数据库系统改造优化,支持不同大小的文件并发存储访问,并实现了存储容量的横向扩展;数据搜索使用并行计算,支持字段搜索、统计和全文检索[11-12],支持实时和离线创建索引,充分利用整个集群的并行计算能力创建索引文件并搜索数据,在搜索时能确保数据在毫秒级别内返回;对传统的数据检索方案进行了改造,增加了动态自适应功能以及并行检索和合并功能。实时搜索系统调度流程如图11所示。
5系统性能测试
测试所用数据表Tb_flow有48个属性,测试数据共5.6亿条,包含14天的数据,数据以天为分区。
测试结果为5次查询所求得的平均值,并且测试采用的是离线索引。
用例#1:统计单个分区数据属性值,平均用时0.016s;
用例#2:统计整张表分区数据属性值,平均用时0.108s;
用例#3:查询单个分区输出一个属性值,平均用时0.053s;
用例#4:查询单个分区所有属性值,平均用时0.184s;
用例#5:根据一个过滤条件输出一个属性值,平均用时0.063s;
…
用例#12:根据分区进行条件过滤或输出所有属性值,平均用时0.263s;
用例#13:根据8个维度进行过滤输出一个属性值,平均用时0.026s;
用例#14:根据8个维度进行过滤输出所有属性值,平均用时0.249s;
用例#15:根据8个维度进行统计,平均用时0.352s。
测试用例消耗时间统计曲线如图12所示。
结果表明:在5.6亿条数据量下,10个维度随意组合,输出单个属性平均所用时间约0.032s,输出所有48个属性平均时间约0.352s。
6结语
本文根据智能电网状态监测数据的特点,在充分利用现有结构化数据库的基础上,通过建立动态索引机制实现了状态监测数据的实时读写,同时实现了系统的高可用性和高扩展性。基于该机制建立的分布式数据库系统能够自适应服务器集群中节点的增减,并动态更新索引,保证状态监测数据接入系统能自动寻找到最合适的服务器节点,均衡各节点服务器负载。在提升了智能电网状态监测系统整体性能的基础上,为终端用户屏蔽了数据持久层的复杂组织结构,用户只需针对一个统一的分布式数据库进行数据读写,便于系统的运行维护和功能扩展。测试结果表明,改进后的实时搜索技术能够满足对智能电网海量数据读写的实时性和可靠性要求。
作者:吴秋莉,郭丽娟,吕泽承,邬蓉蓉(广西电网有限责任公司 电力科学研究院, 广西 南宁 530023)