技术领域
[0001] 本
发明涉及电站数据存储技术领域,具体涉及一种变电站数据的分布式存储方法及系统。
背景技术
[0002] 随着智能
电网的建设,电网的规模越来愈大,
智能电网、智能变电站等研究应用不断深入,系统面对的采集点越来越多,目前一个中等规模地区的采集量可以达到2万至10万,而一个大型地调未来可能面临50万至100万的
数据采集规模,一年的数据初步估计将从目前的吉字节级转向太字节级;此外,随着调度自动化
水平的不断提高,提出了实时运行数据的要求,不采用周期性
采样存储而是按照实际运行时间序列连续存储的更高要求,以满足更多的应用需求,这也将导致变电站作为数据采集源头,数据存储规模数十倍的增长,随着数据规模的扩大,使得存储系统需要不断动态扩大存储规模,并且存储系统必须能够支持新的存储
节点不断加入,保证数据在各个存储节点的均匀分布,因此,对数据存储技术的要求也随之提高。
[0003] 目前的电网采用将采集到的数据集中部署在单节点存储设备上,随着数据规模的扩大,将会导致单台主机的资源(如内存、磁盘I/O)不能满足海量级数据需求,就需要后续扩容,然而扩容成本非常昂贵,另外,当
服务器存储节点增删或宕机时会导致造成大量存储的数据重新
定位,效率低下;现有的分布式存储技术中通常采用传统哈希
算法或一致性
哈希算法用于海量数据的分片,对于传统哈希算法,增删存储节点所有数据对象的映射
位置需要重新计算,造成大量数据重定位的问题,对于一致性哈希算法,如果存储节点较少的话,数据对象并不能被均匀的映射到存储节点上,会造成数据分布不均衡的问题。
发明内容
[0004] 本发明提供一种变电站数据的分布式存储方法及系统,其目的是基于存储对象的标识确定存储对象与虚拟存储节点的映射关系,进而根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上,采用这种技术方案能够使存储的数据均衡分布,且有助于进行后期调整和二次管理。
[0005] 本发明的目的是采用下述技术方案实现的:
[0006] 一种变电站数据的分布式存储方法,其改进之处在于,所述方法包括:
[0007] 利用存储对象的标识确定存储对象与虚拟存储节点的映射关系;
[0008] 根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上。
[0009] 优选地,所述存储对象包括:SCADA数据和非结构化数据;
[0010] 所述非结构化数据包括:动态数据文件、故障录波文件和图形文件。
[0011] 进一步地,若所述存储对象为SCADA数据,则其标识如下:
[0012] occur_time:alias
[0013] 其中,occur_time为当前时间,alias为SCADA数据对象的描述
别名;
[0014] 若所述存储对象为非结构化数据,则其标识选取所述非结构数据的文件名称。
[0015] 优选地,所述利用存储对象的标识确定存储对象与虚拟存储节点的映射关系,包括:
[0016] 分别获取存储对象标识的哈希值和虚拟存储节点标识的哈希值;
[0017] 根据存储对象标识的哈希值和虚拟存储节点标识的哈希值将存储对象和虚拟存储节点映射在数据范围为0~232-1的哈希圆环空间;
[0018] 在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点。
[0019] 进一步地,所述获取存储对象标识的哈希值和虚拟存储节点标识的哈希值,包括:
[0020] 分别获取存储对象标识的md5
摘要和虚拟存储节点标识的md5摘要;
[0021] 分别将存储对象标识的md5摘要或虚拟存储节点标识的md5摘要的前4个字节转换为Long型整数,将所述前4个字节中第4个字节对应的Long型整数左移24位,将所述前4个字节中第3个字节对应的Long型整数左移16位,将所述前4个字节中第2个字节对应的Long型整数左移8位,获取存储对象标识或虚拟存储节点标识的哈希值。
[0022] 进一步地,所述虚拟存储节点的标识如下:
[0023] IP#Num
[0024] 其中,Num∈[0,(numReps-1)],IP为所述虚拟存储节点对应的物理存储节点的IP地址,Num为虚拟存储节点标识的数字后缀,numReps为物理存储节点对应的虚拟存储节点的数量。
[0025] 进一步地,所述在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点,包括:
[0026] 以存储对象i为起点沿着哈希圆环空间顺
时针查找到的第一个虚拟存储节点即为存储对象i对应的虚拟存储节点;若超过232在哈希圆环空间对应位置仍找不到存储对象i对应的虚拟存储节点,则将以0在哈希圆环空间对应位置为起点顺时针寻找到的第一个虚拟存储节点作为其对应的虚拟存储节点,其中,i∈[1,n],n为存储对象的数量。
[0027] 一种变电站数据的分布式存储系统,其改进之处在于,所述系统包括:
[0028] 确定模
块,用于利用存储对象的标识确定存储对象与虚拟存储节点的映射关系;
[0029] 存储模块,用于根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上。
[0030] 优选地,所述存储对象包括:SCADA数据和非结构化数据;
[0031] 所述非结构化数据包括:动态数据文件、故障录波文件和图形文件。
[0032] 进一步地,若所述存储对象为SCADA数据,则其标识如下:
[0033] occur_time:alias
[0034] 其中,occur_time为当前时间,alias为SCADA数据对象的描述别名;
[0035] 若所述存储对象为非结构化数据,则其标识选取所述非结构数据的文件名称。
[0036] 优选地,确定模块,包括:
[0037] 获取单元,用于分别获取存储对象标识的哈希值和虚拟存储节点标识的哈希值;
[0038] 映射单元,用于根据存储对象标识的哈希值和虚拟存储节点标识的哈希值将存储对象和虚拟存储节点部署在数据范围为0~232-1的哈希圆环空间;
[0039] 寻找单元,用于在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点。
[0040] 进一步地,所述获取单元,用于:
[0041] 分别获取存储对象标识的md5摘要和虚拟存储节点标识的md5摘要;
[0042] 分别将存储对象标识的md5摘要或虚拟存储节点标识的md5摘要的前4个字节转换为Long型整数,将所述前4个字节中第4个字节对应的Long型整数左移24位,将所述前4个字节中第3个字节对应的Long型整数左移16位,将所述前4个字节中第2个字节对应的Long型整数左移8位,获取存储对象标识或虚拟存储节点标识的哈希值。
[0043] 进一步地,所述虚拟存储节点的标识如下:
[0044] IP#Num
[0045] 其中,Num∈[0,(numReps-1)],IP为所述虚拟存储节点对应的物理存储节点的IP地址,Num为虚拟存储节点标识的数字后缀,numReps为物理存储节点对应的虚拟存储节点的数量。
[0046] 进一步地,所述映射单元,用于:
[0047] 以存储对象i为起点沿着哈希圆环空间顺时针查找到的第一个虚拟存储节点即为存储对象i对应的虚拟存储节点;若超过232在哈希圆环空间对应位置仍找不到存储对象i对应的虚拟存储节点,则将以0在哈希圆环空间对应位置为起点顺时针寻找到的第一个虚拟存储节点作为其对应的虚拟存储节点,其中,i∈[1,n],n为存储对象的数量。
[0048] 与最接近的
现有技术相比,本发明还具有如下有益效果:
[0049] 采用本发明的技术方案,利用存储对象的标识确定存储对象与虚拟存储节点的映射关系,基于唯一的标识作为存储数据的依据,便于存储和识别,有利于进行后期管理;根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上,基于上述技术方案能够高效且均衡地将存储对象分布存储于不同的物理存储节点,克服了由于增删服务器存储节点或宕机情况下的大规模数据重新定位问题,同时降低了集中式存储节点的压
力,节省了存储空间拓容的成本。
附图说明
[0050] 图1是本发明
实施例变电站数据的分布式存储方法的
流程图;
[0051] 图2是了本发明实施例变电站数据的分布式存储方法的执行原理图;
[0052] 图3是本发明实施例变电站数据的分布式存储方法的哈希圆环空间示意图;
[0053] 图4是本发明实施例变电站数据的分布式存储系统的结构示意图。
具体实施方式
[0054] 下面结合附图对本发明的具体实施方式作详细说明。
[0055] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0056] 电网规模不断扩大,智能变电站乃至新一代智能变电站对应用功能智能化水平要求越来越高,变电站一体化
监控系统需要接入的数据量越来越多,特别是PMU采集装置的普及以及广域状态监测系统WAMS的发展,带来了更加突出的海量电力信息数据存储问题,其中,相对稳态数据采集而言,PMU采集一个突出特点就是采集
频率非常高,达到每秒25、50
帧甚至100帧,而对所有数据必须完整保存,因此在相同采集点的情况下,其数据存储规模将是稳态数据的数百到上千倍,常规的集中存储方式无法满足上述海量数据存储的要求,因此,亟需提出一种合理的分布存储方法。
[0057] 针对以上集中存储存在的问题,本发明提出一种引入虚拟存储节点的一致性哈希分片算法用于变电站数据的分布式存储,每个虚拟存储节点对应一个物理存储节点,而每个物理存储节点对应多个虚拟存储节点,映射关系为存储数据到虚拟存储节点再到物理存储节点,将每个虚拟存储节点和每个存储对象的标识的哈希值部署到0~232-1圆环空间,从每个存储对象部署的位置顺时针查找,将存储对象映射到对应的虚拟存储节点,再通过虚拟存储节点到物理存储节点映射,最终找到每个存储对象映射到的物理存储节点,即该存储对象存储在所映射到的物理存储节点,满足变电站大规模海量历史数据分布式存储的需求,同时实现数据分布均衡,达到负载均衡的效果,而且增删节点不会造成大量数据的重定位。
[0058] 本发明提供了一种变电站数据的分布式存储方法及系统,下面进行说明。
[0059] 图1示出了本发明实施例中变电站数据的分布式存储方法的流程图,如图1所示,所述方法可以包括:
[0060] 101.利用存储对象的标识确定存储对象与虚拟存储节点的映射关系;
[0061] 102.根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上。
[0062] 具体地,所述存储对象可以包括:SCADA数据和非结构化数据;
[0063] 所述非结构化数据可以包括:动态数据文件、故障录波文件和图形文件;
[0064] 其中,SCADA历史数据可以包括事故信息表、通道工况登录表、
硬盘空间告警表、设备工况登录表、结点工况登录表、人工逻辑设备封
锁表、人工置牌表、人工遥测封锁表、人工遥控表、人工遥调表、人工遥信封锁表、其它应用告警表、
进程起停记录表、保护
自诊断登录表、保护事件登录表、保护事件测量值表、保护故障报告表、保护操作记录表、保护操作数值表、用户事件登录表、
波形登录表、越限登录表、遥信登录表、遥测历史采样数据表;
[0065] 图形文件可以包括监控主机所有的画面和图元文件,其中画面文件可以包括系统图、接线图、曲线图、棒图、饼图、表格、地理图、其他画面文件pic,图元文件可以包括
开关、刀闸、两圈变、三圈变、发
电机、潮流方向、容抗器、
电压互感器、
电流互感器、避雷器、标志牌、工况、背景图符、其他图元文件icon;
[0066] 故障录波文件为所有保护装置和故障录波器所录制的波形文件,包括hdr、cfg、dat文件;
[0067] 动态数据文件为所有PMU装置所采集的动态数据文件,包括dyn文件。
[0068] 具体地,若所述存储对象为SCADA数据,则其标识如下:
[0069] occur_time:alias
[0070] 其中,occur_time为当前时间,alias为SCADA数据对象的描述别名,别名即为每条历史记录所对应数据对象的描述,命名方式采用“厂站名称.电压等级名称.间隔名称.设备名称.测点名称”。
[0071] 若所述存储对象为非结构化数据,则其标识选取所述非结构数据的文件名称。
[0072] 图2示出了本发明实施例变电站数据的分布式存储方法的执行原理图,如图2所示,所述利用存储对象的标识确定存储对象与虚拟存储节点的映射关系,可以包括:
[0073] 分别获取存储对象标识的哈希值和虚拟存储节点标识的哈希值;
[0074] 图3示出了本发明实施例变电站数据的分布式存储方法的哈希圆环空间示意图,如图3所示,
[0075] 根据存储对象标识的哈希值和虚拟存储节点标识的哈希值将存储对象和虚拟存32
储节点映射在数据范围为0~2 -1的哈希圆环空间;
[0076] 在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点。
[0077] 其中,所述获取存储对象标识的哈希值和虚拟存储节点标识的哈希值,可以包括:
[0078] 分别获取存储对象标识的md5摘要和虚拟存储节点标识的md5摘要;
[0079] 分别将存储对象标识的md5摘要或虚拟存储节点标识的md5摘要的前4个字节转换为Long型整数,将所述前4个字节中第4个字节对应的Long型整数左移24位,将所述前4个字节中第3个字节对应的Long型整数左移16位,将所述前4个字节中第2个字节对应的Long型整数左移8位,获取存储对象标识或虚拟存储节点标识的哈希值。
[0080] 采用物理存储节点的IP地址加数字后缀的方式对每个虚拟存储节点进行标识,通过计算其摘要值以及移位或运算组合成虚拟存储节点标识的哈希值;所述虚拟存储节点的标识如下:
[0081] IP#Num
[0082] 其中,Num∈[0,(numReps-1)],IP为所述虚拟存储节点对应的物理存储节点的IP地址,Num为虚拟存储节点标识的数字后缀,numReps为物理存储节点对应的虚拟存储节点的数量。
[0083] 所述在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点,可以包括:
[0084] 以存储对象i为起点沿着哈希圆环空间顺时针查找到的第一个虚拟存储节点即为存储对象i对应的虚拟存储节点;若超过232在哈希圆环空间对应位置仍找不到存储对象i对应的虚拟存储节点,则将以0在哈希圆环空间对应位置为起点顺时针寻找到的第一个虚拟存储节点作为其对应的虚拟存储节点,其中,i∈[1,n],n为存储对象的数量。
[0085] 图4示出了本发明变电站数据的分布式存储系统的结构示意图,如题4所示,所述系统可以包括:
[0086] 确定模块,用于利用存储对象的标识确定存储对象与虚拟存储节点的映射关系;
[0087] 存储模块,用于根据所述存储对象与虚拟存储节点的映射关系将所述存储对象存储在其对应的虚拟存储节点所对应的物理存储节点上。
[0088] 具体地,所述存储对象可以包括:SCADA数据和非结构化数据;
[0089] 所述非结构化数据可以包括:动态数据文件、故障录波文件和图形文件。
[0090] 若所述存储对象为SCADA数据,则其标识如下:
[0091] occur_time:alias
[0092] 其中,occur_time为当前时间,alias为SCADA数据对象的描述别名;
[0093] 若所述存储对象为非结构化数据,则其标识选取所述非结构数据的文件名称。
[0094] 确定模块,可以包括:获取单元,用于分别获取存储对象标识的哈希值和虚拟存储节点标识的哈希值;
[0095] 映射单元,用于根据存储对象标识的哈希值和虚拟存储节点标识的哈希值将存储对象和虚拟存储节点部署在数据范围为0~232-1的哈希圆环空间;
[0096] 寻找单元,用于在所述哈希圆环空间上寻找存储对象所对应的虚拟存储节点。
[0097] 所述获取单元,用于:
[0098] 分别获取存储对象标识的md5摘要和虚拟存储节点标识的md5摘要;
[0099] 分别将存储对象标识的md5摘要或虚拟存储节点标识的md5摘要的前4个字节转换为Long型整数,将所述前4个字节中第4个字节对应的Long型整数左移24位,将所述前4个字节中第3个字节对应的Long型整数左移16位,将所述前4个字节中第2个字节对应的Long型整数左移8位,获取存储对象标识或虚拟存储节点标识的哈希值。
[0100] 具体地,所述虚拟存储节点的标识如下:
[0101] IP#Num
[0102] 其中,Num∈[0,(numReps-1)],IP为所述虚拟存储节点对应的物理存储节点的IP地址,Num为虚拟存储节点标识的数字后缀,numReps为物理存储节点对应的虚拟存储节点的数量。
[0103] 所述映射单元,用于:以存储对象i为起点沿着哈希圆环空间顺时针查找到的第一个虚拟存储节点即为存储对象i对应的虚拟存储节点;若超过232在哈希圆环空间对应位置仍找不到存储对象i对应的虚拟存储节点,则将以0在哈希圆环空间对应位置为起点顺时针寻找到的第一个虚拟存储节点作为其对应的虚拟存储节点,其中,i∈[1,n],n为存储对象的数量。
[0104] 本领域内的技术人员应明白,本
申请的实施例可提供为方法、系统、或
计算机程序产品。因此,本申请可采用完全
硬件实施例、完全
软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘
存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
[0105] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方
框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程
数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中
指定的功能的装置。
[0106] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0107] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0108] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行
修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的
权利要求保护范围之内。