首页> 中国专利> 配电自动化系统的实时数据ID生成方法、系统及介质

配电自动化系统的实时数据ID生成方法、系统及介质

摘要

本发明公开了配电自动化系统的实时数据ID生成方法、系统及介质,该方法包括以下步骤:设置多条标记,每条标记的相关信息包括标记号、过期时间及当前ID,将相关信息保存在实时数据库中;启动ID生成服务,按标记号顺序读取对应的过期时间,根据过期时间检测标记的可用性;第一标记为多条标记中的任意一条,若检测到第一标记为可用的,则读取第一标记的当前ID,并根据第一标记的当前ID计算得到目标ID,将目标ID作为第一标记的当前ID回写到实时数据库中;ID生成服务定时更新第一标记的过期时间。本发明能够满足配电自动化系统对实时数据ID的需求。

著录项

说明书

技术领域

本发明涉及电力电网技术领域,特别涉及一种配电自动化系统的实时数据ID生成方法、系统及介质。

背景技术

在配电自动化系统工作过程中,产生大量实时数据,这些实时数据包括但不限于配电区域、设备属性、设备拓扑、遥点配置(遥信、遥测、遥控、遥调、定值),每条实时数据都需要绑定唯一ID。

对ID数据量的评估大概为:中压电网中,一个市含县包括:馈线段60万+设备60万+三遥60万=180万对象;一个省20个市的总对象数:180万*20=3600万对象;低压电网中,全省40万TTU,每个TTU监测一个台区,每个台区1000个低压馈线段和设备+5000测点=6000对象;一个省总低压对象数:40万*6000=24亿对象。

当前配电自动化系统实时数据管理服务是单服务运行的,存在以下不足:单服务难以支撑日益增长的实时数据的数据量;如果改为分布式等并行服务后按照原当前的实时数据ID生成规则很难保证生成的实时数据ID完全不重复。例如,UUID算法:ID为字符串,需要占用36个字符;ID中带有网卡MAC地址信息,可能导致信息不安全;出于检索性能考虑,Mysql等关系型数据库不建议采用长字符串作为记录索引,但配电自动化系统需要ID作为记录索引;并且根据ID不能区分记录类型如开关、配变等。又例如雪花算法:ID中带有时间戳、难以解决时间回退问题;每毫秒支持的ID数只有4000左右;并且根据ID不能区分记录类型。

发明内容

本发明旨在至少解决现有技术中存在的技术问题之一。为此,本发明提出一种配电自动化系统的实时数据ID生成方法,能够满足配电自动化系统对实时数据ID的需求。

本发明还提出一种配电自动化系统的实时数据ID生成系统。

本发明还提出一种实施上述方法的计算机可读存储介质。

根据本发明的第一方面实施例的配电自动化系统的实时数据ID生成方法,包括:设置多条标记,每条所述标记的相关信息包括标记号、过期时间及当前ID,将所述相关信息保存在实时数据库中;启动ID生成服务,按所述标记号顺序读取对应的所述过期时间,根据所述过期时间检测所述标记的可用性;第一标记为所述多条标记中的任意一条,若检测到所述第一标记为可用的,则读取所述第一标记的当前ID,并根据所述第一标记的当前ID计算得到目标ID,将所述目标ID作为所述第一标记的当前ID回写到所述实时数据库中;所述ID生成服务定时更新所述第一标记的过期时间。

根据本发明的一些实施例,所述根据所述过期时间检测所述标记的可用性的方法包括:读取所述过期时间并获取当前时间,若所述过期时间小于所述当前时间,则所述标记是可用的。

根据本发明的一些实施例,所述ID生成服务定时更新所述第一标记的过期时间的方法包括:所述ID生成服务每隔第一时间间隔更新保存在所述实时数据库的所述第一标记的过期时间,将所述第一标记的过期时间加上第二时间间隔;其中,所述第一时间间隔小于所述第二时间间隔。

根据本发明的一些实施例,所述当前ID为long型,长度为8个字节;所述当前ID的最高位一个字节保存记录类型信息,最高位第二个字节保存对应的标记号。

根据本发明的一些实施例,所述根据所述第一标记的当前ID计算得到目标ID包括:将所述第一标记的当前ID加1得到目标ID。

根据本发明的一些实施例,所述当前ID包括记录类型信息、标记号以及递增信息。

根据本发明的一些实施例,所述方法还包括:若检测到所述第一标记为不可用的,读取第二标记的过期时间并检测所述第二标记的可用性;其中,所述第二标记的标记号等于所述第一标记的标记号加1。

根据本发明的第二方面实施例的配电自动化系统的实时数据ID生成系统,所述系统包括:标记创建模块,用于设置多条标记,每条所述标记的相关信息包括标记号、过期时间及当前ID,将所述相关信息保存在实时数据库中;可用性检测模块,用于按所述标记号顺序读取对应的所述过期时间,根据所述过期时间检测所述标记的可用性;目标ID生成模块,用于读取第一标记的当前ID,并根据所述第一标记的当前ID计算得到目标ID,将所述目标ID作为所述第一标记的当前ID回写到所述实时数据库中;其中,所述第一标记为所述多条标记中的任意一条,并且所述第一标记是可用的;定时更新模块,用于定时更新所述第一标记的过期时间。

根据本发明的一些实施例,所述系统还包括:当前ID设置模块,用于设置所述当前ID为long型,长度为8个字节,并配置所述当前ID的最高位一个字节保存记录类型信息,最高位第二个字节保存对应的标记号。

根据本发明的第三方面实施例的一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明的第一方面实施例中任一项的方法。

本发明实施例至少具有如下有益效果:通过本发明实施例的方法生成的实时数据ID能够支持分布式、微服务等并行服务模式;可以不带时间戳,没有时间回退问题,不带网卡MAC地址信息,满足信息安全的需求,并且每毫秒支持的ID数无限制。

本发明的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例的方法的流程示意图。

图2为本发明另一实施例的方法流程示意图。

图3为本发明实施例的系统的模块示意框图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。

在本发明的描述中,若干的含义是一个或者多个,多个的含义是两个及两个以上,大于、小于、超过等理解为不包括本数,以上、以下、以内等理解为包括本数。如果有描述到第一、第二只是用于区分技术特征为目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量或者隐含指明所指示的技术特征的先后关系。

参照图1,本发明实施例的实时数据ID生成方法包括以下步骤:

S1、设置多条标记,每条所述标记的相关信息包括标记号、过期时间及当前ID,将相关信息保存在实时数据库中;

S2、启动ID生成服务,按标记号顺序读取对应的过期时间,根据过期时间检测标记的可用性;

S3、第一标记为多条标记中的任意一条,若检测到第一标记为可用的,则读取第一标记的当前ID,并根据第一标记的当前ID计算得到目标ID,将目标ID作为第一标记的当前ID回写到实时数据库中;

S4、ID生成服务定时更新第一标记的过期时间。

在一些实施例中,根据过期时间检测标记的可用性的方法包括:读取过期时间并获取当前时间,若过期时间小于当前时间,则标记是可用的。

在一些实施例中,ID生成服务定时更新第一标记的过期时间的方法包括:ID生成服务每隔第一时间间隔更新保存在实时数据库的第一标记的过期时间,将第一标记的过期时间加上第二时间间隔;其中,第一时间间隔小于第二时间间隔。

在一些实施例中,当前ID为long型,长度为8个字节;当前ID的最高位一个字节保存记录类型信息,最高位第二个字节保存对应的标记号。

在一些实施例中,根据第一标记的当前ID计算得到目标ID的方法包括:将第一标记的当前ID加1得到目标ID。

在一些实施例中,当前ID包括记录类型信息、标记号以及递增信息。

在一些实施例中,该ID生成方法还包括:若检测到第一标记为不可用的,读取第二标记的过期时间并检测第二标记的可用性;其中,第二标记的标记号等于第一标记的标记号加1。

参照图2,本发明另一实施例的方法包括:启动实时数据ID生成服务,从Redis实时数据库中读取标记n(n>1)的相关信息,检测标记n是否可用;从标记n(n=1)开始检测,如果该标记n不可用,将n递增1;如果检测到标记n是可用的,将该标记n作为本ID生成服务的服务标记,并读取标记n中的当前ID;当接收到请求生成目标ID,根据当前ID生成目标ID后,将目标ID回写到Redis数据库标记n的信息区;并且定时(每10分钟)在Redis数据库更新标记n的过期时间(当前时间加30分钟)。

其中,生成的实时数据ID为long型,长度为8字节,ID的最高位一个字节保存记录类型信息,最高位第二个字节保存当前标记的相关信息,最多支持127个并行ID生成服务,标记范围是1至127;ID的其他字节保存递增信息,从0开始。

其中,Redis数据库中保存的标记相关信息内容如下表1所示:

表1标记相关信息

本实施例的方法支持分布式、微服务等并行服务模式,并且生成的实时数据ID具有以下优势:ID占用空间小,不影响检索性能;ID带有记录类型信息,能根据ID区分记录类型;不带时间戳,没有时间回退问题;不带网卡MAC地址信息,符合信息安全;每毫秒支持的ID数无限制;符合配电自动化系统对ID的需求。

参照图3,本发明实施例的系统包括:标记创建模块,用于设置多条标记,每条所述标记的相关信息包括标记号、过期时间及当前ID,将相关信息保存在实时数据库中;可用性检测模块,用于按标记号顺序读取对应的过期时间,根据过期时间检测标记的可用性;目标ID生成模块,用于读取第一标记的当前ID,并根据第一标记的当前ID计算得到目标ID,将目标ID作为第一标记的当前ID回写到实时数据库中;其中,第一标记为多条标记中的任意一条,并且第一标记是可用的;定时更新模块,用于定时更新第一标记的过期时间。

在一些实施例中,系统还包括:当前ID设置模块,用于设置当前ID为long型,长度为8个字节,并配置当前ID的最高位一个字节保存记录类型信息,最高位第二个字节保存对应的标记号。

尽管本文描述了具体实施方案,但是本领域中的普通技术人员将认识到,许多其它修改或另选的实施方案同样处于本公开的范围内。例如,结合特定设备或组件描述的功能和/或处理能力中的任一项可以由任何其它设备或部件来执行。另外,虽然已根据本公开的实施方案描述了各种例示性具体实施和架构,但是本领域中的普通技术人员将认识到,对本文所述的例示性具体实施和架构的许多其它修改也处于本公开的范围内。

上文参考根据示例性实施方案所述的系统、方法、系统和/或计算机程序产品的框图和流程图描述了本公开的某些方面。应当理解,框图和流程图中的一个或多个块以及框图和流程图中的块的组合可分别通过执行计算机可执行程序指令来实现。同样,根据一些实施方案,框图和流程图中的一些块可能无需按示出的顺序执行,或者可以无需全部执行。另外,超出框图和流程图中的块所示的那些部件和/或操作以外的附加部件和/或操作可存在于某些实施方案中。

因此,框图和流程图中的块支持用于执行指定功能的装置的组合、用于执行指定功能的元件或步骤的组合以及用于执行指定功能的程序指令装置。还应当理解,框图和流程图中的每个块以及框图和流程图中的块的组合可以由执行特定功能、元件或步骤的专用硬件计算机系统或者专用硬件和计算机指令的组合来实现。

本文所述的程序模块、应用程序等可包括一个或多个软件组件,包括例如软件对象、方法、数据结构等。每个此类软件组件可包括计算机可执行指令,所述计算机可执行指令响应于执行而使本文所述的功能的至少一部分(例如,本文所述的例示性方法的一种或多种操作)被执行。

软件组件可以用各种编程语言中的任一种来编码。一种例示性编程语言可以为低级编程语言,诸如与特定硬件体系结构和/或操作系统平台相关联的汇编语言。包括汇编语言指令的软件组件可能需要在由硬件架构和/或平台执行之前由汇编程序转换为可执行的机器代码。另一种示例性编程语言可以为更高级的编程语言,其可以跨多种架构移植。包括更高级编程语言的软件组件在执行之前可能需要由解释器或编译器转换为中间表示。编程语言的其它示例包括但不限于宏语言、外壳或命令语言、作业控制语言、脚本语言、数据库查询或搜索语言、或报告编写语言。在一个或多个示例性实施方案中,包含上述编程语言示例中的一者的指令的软件组件可直接由操作系统或其它软件组件执行,而无需首先转换成另一种形式。

软件组件可存储为文件或其它数据存储构造。具有相似类型或相关功能的软件组件可一起存储在诸如特定的目录、文件夹或库中。软件组件可为静态的(例如,预设的或固定的)或动态的(例如,在执行时创建或修改的)。

上面结合附图对本发明实施例作了详细说明,但是本发明不限于上述实施例,在所属技术领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号