CN109684418A - 基于电网图数据库的数据存储方法及装置 - Google Patents
基于电网图数据库的数据存储方法及装置 Download PDFInfo
- Publication number
- CN109684418A CN109684418A CN201811402405.2A CN201811402405A CN109684418A CN 109684418 A CN109684418 A CN 109684418A CN 201811402405 A CN201811402405 A CN 201811402405A CN 109684418 A CN109684418 A CN 109684418A
- Authority
- CN
- China
- Prior art keywords
- stored
- address
- storage
- hash
- storage address
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Abstract
本发明涉及图数据库技术领域,具体涉及一种基于电网图数据库的数据存储方法及装置,其中方法包括获取若干待存储图数据;对所述待存储图数据进行预处理,以形成多个特征图;利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应;基于确定出的所述存储地址对所述特征图进行存储。该方法利用至少两个哈希函数确定特征图在哈希表中的存储地址,以避免存储地址的冲突,即利用多重哈希编码的方式对电网图数据库中的数据进行有效存储,提高了数据的存储效率。
Description
技术领域
本发明涉及图数据库技术领域,具体涉及基于电网图数据库的数据存储方法及装置。
背景技术
在电力信息系统中,网格设备形成巨大的网络拓扑。电网设备呈现出快速增长,快速变化和多样化的新趋势,电网设备资产管理水平不断提高。因此,对地理信息系统(GIS)地图数据库中频繁子图的查询和分析服务功能提出了更高的要求。
随着云计算和大数据等新计算机技术的不断突破,一系列非关系型分布式NoSQL数据存储系统已开始取代某些应用中的关系数据库,以在特定应用中实现性能优势。图数据库是一个重要的NoSQL数据存储系统,它将内部存储的数据组织到属性映射的逻辑模型中,并将属性值中关系数据库隐含的关系分离到直接连接到实体的属性映射的边缘,并用拓扑操作替换传统的关系操作,从而大大提高复杂性,嵌套查询执行效率。
目前,图数据库在电力系统领域引起了人们的关注。众所周知,电力系统具有复杂的网络拓扑结构,可以建模并存储在图形数据库中,这与电力系统的拓扑属性更加一致,充分利用图形数据库的拓扑计算能力,为电力系统提供了极大的便利。图形数据库固化并存储实体之间的关系,这特别适用于关系密集型电力系统数据的灵活、高效的存储和管理。
本申请发明人在对电网图形数据库中的数据进行存储方法研究时,利用哈希表对编码后的数据进行存储,而在存储过程中往往会出现地址冲突,导致存储效率较低。
发明内容
有鉴于此,本发明实施例提供了一种基于电网图数据库的数据存储方法及装置,以解决地址冲突所导致的存储效率较低的问题。
根据第一方面,本发明实施例提供了一种基于电网图数据库的数据存储方法,包括:
获取若干待存储图数据;
对所述待存储图数据进行预处理,以形成多个特征图;
利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应;
基于确定出的所述存储地址对所述特征图进行存储。
本发明实施例提供的基于电网图数据库的数据存储方法,利用至少两个哈希函数确定特征图在哈希表中的存储地址,以避免存储地址的冲突,即利用多重哈希编码的方式对电网图数据库中的数据进行有效存储,提高了数据的存储效率。
结合第一方面,在第一方面第一实施方式中,所述哈希函数为两个;所述利用至少两个哈希函数确定所述特征图在哈希表中的存储地址,包括:
对所述特征图转换为待存储关键值;其中,所述待存储关键值与所述特征图一一对应;
利用两个所述哈希函数分别计算所述待存储关键值在对应区间的存储地址;其中,两个所述哈希函数分别为第一哈希函数以及第二哈希函数,所述哈希表划分出的区间分别为第一区间以及第二区间;所述利用第一哈希函数计算出的存储地址为第一地址,所述利用第二哈希函数计算出的存储地址为第二地址;
根据计算出的所述存储地址,在划分出的区间中进行冲突检测,以确定所述待存储关键值在哈希表中的存储地址。
本发明实施例提供的基于电网图数据库的数据存储方法,利用两个哈希函数分别计算待存储关键值在对应区间的存储地址,再利用计算出的存储地址在两个区间中进行冲突检测,一方面提高了冲突检测的效率,另一方面提高了数据存储的效率。
结合第一方面第一实施方式,在第一方面第二实施方式中,所述根据计算出的所述存储地址,在划分出的区间中进行冲突检测,包括:
判断所述第一地址对应的空间是否为空;
当所述第一地址对应的空间为非空时,在所述第一区间中寻找下一个存储地址;
当所述下一个存储地址对应的空间为非空时,确定所述第一地址为所述待存储关键值在哈希表中的存储地址。
本发明实施例提供的基于电网图数据库的数据存储方法,对应同一区间进行两次哈希计算,以在第一区间中确定存储地址,提高了存储的效率。
结合第一方面第二实施方式,在第一方面第三实施方式中,所述基于确定出的所述存储地址对所述待存储关键值进行存储,包括:
提取所述第一地址对应空间内的关键值;
将所述待存储关键值存储在所述第一地址对应的空间;
将所述关键值存储在所述第二地址对应的空间。
结合第一方面第二实施方式,在第一方面第四实施方式中,所述根据计算出的所述存储地址,在划分出的区间中进行冲突检测,还包括:
当所述第一地址对应的空间为空且所述第二地址对应的空间为空时,获取第一区间以及第二区间对应的负载计数值;其中,所述负载计数值用于表示对应区间内所存储的关键值的数量;
基于所述负载计数值的大小确定所述待存储关键值在哈希表中的存储地址。
本发明实施例提供的基于电网图数据库的数据存储方法,通过负载计数值确定待存储关键值在哈希表的存储地址,可以实现在哈希表中的每个位置上均匀地散列关键字,有效地避免冲突的存储过程。
结合第一方面,在第一方面第五实施方式中,所述对所述待存储图数据进行预处理,以形成多个特征图,包括:
对所述待存储图数据进行遍历,以建立遍历树;
计算所述遍历树中所有标号图的边的支持度,以确定频繁图集;
以所述频繁图集中的所有的频繁边作为初始子图进行扩展,以得到频繁子图;
对所述频繁子图进行筛选,以形成所述多个特征图。
本发明实施例提供的基于电网图数据库的数据存储方法,由于不同的特征图所具备的区分能力不同,因此,通过对频繁子图进行筛选,能够缩小特征图的数量,提高了存储效率。
结合第一方面第五实施方式,在第一方面第六实施方式中,所述对所述待存储图数据进行遍历,以建立遍历树,包括:基于最小DFS编码,对所述待存储图数据进行前序遍历,以建立DFS前缀树。
根据第二方面,本发明实施例还提供了一种基于电网图数据库的数据存储装置,包括:
获取模块,用于获取若干待存储图数据;
处理模块,用于对所述待存储图数据进行预处理,以形成多个特征图;
确定模块,用于利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应;
存储模块,用于基于确定出的所述存储地址对所述特征图进行存储。
本发明实施例提供的基于电网图数据库的数据存储装置,利用至少两个哈希函数确定特征图在哈希表中的存储地址,以避免存储地址的冲突,即利用多重哈希编码的方式对电网图数据库中的数据进行有效存储,提高了数据的存储效率。
根据第三方面,本发明实施例还提供了一种电子设备,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行本发明第一方面,或第一方面任一实施方式中所述的基于电网图数据库的数据存储方法。
根据第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行本发明第一方面,或第一方面任一项实施方式中所述的基于电网图数据库的数据存储方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于电网图数据库的数据存储方法的流程图;
图2是根据本发明实施例的基于电网图数据库的数据存储方法的流程图;
图3是根据本发明实施例的基于电网图数据库的数据存储方法的流程图;
图4是根据本发明实施例的图数据库的示意图;
图5是根据本发明实施例的特征图的示意图;
图6是根据本发明实施例基于电网图数据库的数据存储方法的结构示意图;
图7是根据本发明实施例的基于电网图数据库的数据存储装置的结构框图;
图8是本发明实施例提供的电子设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明实施例,提供了一种基于电网图数据库的数据存储方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种基于电网图数据库的数据存储方法,可用于上述的电子设备中,图1是根据本发明实施例的基于电网图数据库的数据存储方法的流程图,如图1所示,该流程包括如下步骤:
S11,获取若干待存储图数据。
其中,图数据是用于存储实体之间的关系。图数据中的节点用于表示对应的设备,连接节点的边用于表示设备间的拓扑关系。电子设备获取若干待存储图数据,以用于后续的保存。其中,待存储图数据可以是事先存储在电子设备中的,也可以是电子设备实时获取的,也可以是其他方式获取到的;只需保证电子设备能够获取到待存储图数据即可。
S12,对待存储图数据进行预处理,以形成多个特征图。
电子设备在获取到图数据之后,对图数据进行预处理,例如可以是对图数据进行编码、筛选等等,以形成多个特征图。可选地,由于不同的特征图所具备的区分能力不同,因此所形成的多个特征图可以是区分度最高的图的集合。
S13,利用至少两个哈希函数确定特征图在哈希表中的存储地址。
其中,所述哈希表划分出的区间与所述哈希函数一一对应。具体地,哈希表划分出N个区间,每个区间对应于一个哈希函数。对应于每个特征图,电子设备利用所有的哈希函数计算特征图在对应区间的存储地址。此外,哈希表所划分出的区间的数量可以根据实际情况进行具体设置,例如可以是2个,3个,4个,等等;只需保证哈希表所划分出的每个区间对应于一个哈希函数即可。
电子设备在计算出对应区间的存储地址之后,可以判断对应区间的存储地址是否冲突,例如,在计算出的多个存储地址中确定出一个不冲突的存储地址作为特征图在哈希表中的存储地址;也可以按照哈希表中地址的顺序对划分出的各个区间的存储地址进行冲突检测,将最先确定出不冲突的存储地址作为特征图在哈希表中的存储地址。
S14,基于确定出的存储地址对特征图进行存储。
电子设备在确定出存储地址之后,将特征图存储在确定出的存储地址对应的空间内,即实现特征图在哈希表中的存储。
本实施例提供的基于电网图数据库的数据存储方法,利用至少两个哈希函数确定特征图在哈希表中的存储地址,以避免存储地址的冲突,即利用多重哈希编码的方式对电网图数据库中的数据进行有效存储,提高了数据的存储效率。
在本实施例中还提供了一种基于电网图数据库的数据存储方法,可用于上述的电子设备中,图2是根据本发明实施例的基于电网图数据库的数据存储方法的流程图,如图2所示,该流程包括如下步骤:
S21,获取若干待存储图数据。详细请参见图1所示实施例的S11,在此不再赘述。
S22,对待存储图数据进行预处理,以形成多个特征图。详细请参见图1所示实施例的S12,在此不再赘述。
S23,利用至少两个哈希函数确定特征图在哈希表中的存储地址。
其中,所述哈希表划分出的区间与哈希函数一一对应。
本实施例中,哈希表划分出两个区间,分别为第一区间T1以及第二区间T2;哈希函数为两个,分别为第一哈希函数h1以及第二哈希函数h2;第一区间T1对应于第一哈希函数h1,第二区间T2对应于第二哈希函数h2。
具体地,包括以下步骤:
S231,对特征图转换为待存储关键值。
其中,所述待存储关键值与特征图一一对应。电子设备在将特征图转换为待存储关键值时,可以先对特征图进行编码,然后将编码后的值进行编号即可转换为待存储关键值。
例如,对特征图采用DFS编码,其中,DFS编码是图标准化编码的一种方法,根据最小DFS编码的定义以及字典排序的规则,得到一棵DFS树。把这些存储的节点顺序编码进行编号,即可转变为待存储关键值key。
S232,利用两个哈希函数分别计算待存储关键值在对应区间的存储地址。
其中,利用第一哈希函数h1计算出的存储地址为第一地址,利用第二哈希函数h2计算出的存储地址为第二地址。例如,第一地址表示为t1=h1(key),第二地址表示为t2=h2(key)。
S233,根据计算出的存储地址,在划分出的区间中进行冲突检测,以确定待存储关键值在哈希表中的存储地址。
电子设备利用计算出的存储地址(第一地址以及第二地址),在对应的区间中进行冲突检测,以确定在对应的地址上是否已经存储有关键值;即,在第一区间T1中,对第一地址进行冲突检测;在第二区间T2中,对第二地址进行冲突检测。
具体地,包括以下步骤:
(1)判断第一地址对应的空间是否为空。
电子设备在第一区间T1中判断第一地址t1的空间内是否已经存储有关键值,即该第一地址是否被占用。当第一区间的第一地址对应的空间为空时,可以将该第一地址确定为待存储关键值在哈希表中的存储地址;当第一区间的第一地址对应的空间为非空时,执行步骤(2)。
(2)在第一区间中寻找下一个存储地址。
电子设备可以在第一区间T1中用线性探测发,即采用如下公式找到下一个存储地址:
其中,t为找到的下一个存储地址,n为哈希表所划分出的区间的数量。
(3)当下一个存储地址对应的空间为非空时,确定第一地址为待存储关键值在哈希表中的存储地址。
电子设备在找到下一个存储地址之后,判断该地址对应的空间是否为非空(即,判断该地址对应的空间是否空闲)。当该地址空闲时,确定第一地址为待存储关键值在哈希表中的存储地址。
S24,基于确定出的存储地址对特征图进行存储。
电子设备在确定出存储地址之后,可以对特征图进行存储。其中,在S233中的步骤(3)中,当下一个存储地址对应的空间为非空时,对应的特征图的存储可以采用如下方法进行:
S241,提取第一地址对应空间内的关键值。
电子设备提取第一地址对应的空间内的关键值,即将第一地址对应的空间内的关键值先保存,以使得第一地址对应的空间空闲。
S242,将待存储关键值存储在第一地址对应的空间。
电子设备在将第一地址对应的空间处理为空闲状态时,将待存储关键值存储在第一地址对应的空间内。
S243,将关键值存储在第二地址对应的空间。
电子设备将从第一地址对应的空间内提取出的关键值存储在第二地址对应的空间内。
与图1所示实施例相比,本实施例提供的基于电网图数据库的数据存储方法,利用两个哈希函数分别计算待存储关键值在对应区间的存储地址,再利用计算出的存储地址在两个区间中进行冲突检测,一方面提高了冲突检测的效率,另一方面提高了数据存储的效率。
作为本实施例的一种可选实施方式,在S233中还包括:
(1)当第一地址对应的空间为空且第二地址对应的空间为空时,获取第一区间以及第二区间对应的负载计数值;其中,所述负载计数值用于表示对应区间内所存储的关键值的数量。
电子设备在判断出第一地址对应的空间空闲,同时第二地址对应的空间也空闲时,那么就需要确定将待存储关键值存储在哪个地址对应的空间中。此时,电子设备分别针对第一区间以及第二区间设置负载计数值,以统计第一区间以及第二区间内所存储的关键值的数量。
(2)基于负载计数值的大小确定待存储关键值在哈希表中的存储地址。
电子设备比较第一区间以及第二区间对应的负载计数值的大小,将待存储关键值存储在负载计数值较小的区间内。例如,第一区间对应的负载计数值的大小为10,第二区间对应的负载计数值的大小为15,由于第一区间对应的负载计数值较小,那么确定第一地址为待存储关键值在哈希表中的存储地址。
通过负载计数值确定待存储关键值在哈希表的存储地址,可以实现在哈希表中的每个位置上均匀地散列关键字,有效地避免冲突的存储过程。
在本实施例中还提供了一种基于电网图数据库的数据存储方法,可用于上述的电子设备中,图3是根据本发明实施例的基于电网图数据库的数据存储方法的流程图,如图3所示,该流程包括如下步骤:
S31,获取若干待存储图数据。
其中,待存储图数据的结构如图4所示,图4中示出了3个待存储图数据,即A,B,C。其余详细请参见图2所示实施例的S21,在此不再赘述。
S32,对待存储图数据进行预处理,以形成多个特征图。
其中,特征图的结构如图5所示,图5中示出了3个特征图,即f1,f2,f3。具体地,可以包括如下步骤:
S321,对待存储图数据进行遍历,以建立遍历树。
电子设备基于最小DFS编码,对待存储图数据进行前序遍历,以建立DFS前缀树。
S322,计算遍历树中所有标号图的边的支持度,以确定频繁图集。
根据关联规则,由支持度函数计算图集中所有标号图的边的支持度,根据找到的(最小支持度)来确定频繁图集。
S323,以频繁图集中的所有的频繁边作为初始子图进行扩展,以得到频繁子图。
将输入图集合中的所有的频繁边加入集合C中,并以C中的频繁边作为初始子图。由各个初始子图做最右扩展,得到频繁子图。
S324,对频繁子图进行筛选,以形成多个特征图。
电子设备对冗余编码进行剪枝,当一条频繁边的所有最右扩展全部完成后,可将该频繁边从输入图集合中删除,以缩小输入图集合,不同的特征图所具备的区分能力不同,通过定义最小区分度函数,来筛选候选特征图,用候选特征图结合图集生成的频繁子图,生成多个特征图。
S33,利用至少两个哈希函数确定特征图在哈希表中的存储地址。
其中,所述哈希表划分出的区间与所述哈希函数一一对应。
分成两段的结果,分别叫做T1和T2,给T1和T2分别配备一个哈希函数h1和h2,在存储一个新的key时,同时用两个哈希函数进行计算,得出两个地址h1(key)和h2(key)。首先尝试使用h1(key)将key存储在T1中。如果该位置是空的,那么只需将key存储并完成,否则会发生必须处理的碰撞。设key1是该位置当前的值。在T1中用key替换key1,然后尝试使用h2(key)将key1存储在T2中,依此类推。这时需要检查T1中的h1(key)位置和T2中的h2(key)位置,哪一个位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key存储在T1中。在查找一个key时,必须进行两次hash,同时查找两个位置。
而在判断负载的过程中,定义了一个负载计数器,来记录每次添加进去Key值的数目,在编程中可以用count函数进行实现。
其探测顺序如下:
根据输入的DFS编码,使用哈希值获取用于确定是否存在冲突的哈希值,如果没有冲突,则直接存储相应的键值,如果存在冲突,则将该函数用于地址探索和比较,直到找到可用的地址并最终返回多重哈希编码。
S34,基于确定出的存储地址对特征图进行存储。详细请参见图2所示实施例的S24,在此不再赘述。
与图2所示实施例相比,本实施例提供的基于电网图数据库的数据存储方法,由于不同的特征图所具备的区分能力不同,因此,通过对频繁子图进行筛选,能够缩小特征图的数量,提高了存储效率。
本发明实施例还提供了一种基于电网图数据库的数据存储方法的结构图,如图6所示,从软件架构上,将该方法的处理过程划分为3个部分,分别为:数据编码器41、子图筛选器42以及哈希存储器43。数据编码器是根据最小DFS编码,对电网GIS图数据库中的图进行前序遍历,建立DSF前缀树;子图筛选器是将对K阶频繁子图的最小DFS编码进行最右扩展,每次向最右路添加一条边,得到K+1阶候选子图;哈希存储器是利用哈希函数h1(key)得到一个哈希值t,并比较t值是否存在冲突,得到多重哈希编码,通过对多重哈希编码的索引,进行快速匹配查询。下面给出具体介绍:
数据编码器41:主要是根据最小DFS编码,对电网GIS图数据库中的图进行前序遍历,建立DFS前缀树,通过对图进行先深遍历,记录下遍历顺序,建立DFS树,由于对同一个图可以由不同的节点开始遍历,因此会生成许多不同的DFS结构,但是每个DFS结构都对应一个DFS编码表,按照字典排序进行排序,找到排序中最小的DFS编码,这就是最小DFS编码,且最小DFS编码具有唯一性。
子图筛选器42:主要由各个初始子图做最右扩展,得到频繁子图。如对K阶频繁子图的最小DFS编码进行最右扩展,每次向最右路添加一条边,得到K+1阶候选子图。其中每一阶候选子图都是其父母节点的超图。本发明基于最小区分度函数,用候选特征图结合图集生成的频繁子图,生成特征图集合。可选地,特征图可以采用GSpan算法得到。
哈希存储器43:主要是根据输入的DFS编码,在开放地址法的基础上,把一个哈希表分成长度相同的两段或者三段,给每段分别配备一个哈希函数,来解决传统的哈希存储碰撞问题,利用哈希函数h1(key)得到一个哈希值t,判断t是否冲突,若没有冲突则直接存入相应键值,否则利用hi(key)进行地址探查和比较,直到找到可用的地址。最后,将得到多重哈希编码,通过对多重哈希编码的索引,进行快速匹配查询,得到最终查询结果。下文针对3个部分对应的处理过程进行详细描述:
对于数据编码器41,首先需要根据最小DFS编码,对电网GIS图数据库中的图进行前序遍历,建立DFS前缀树。图的DFS编码是一种图的标准化编码。例如,给定图G,按照DFS字典排序规则,所有排序中,最小的M(G)称为最小DFS编码。即实现了数据的编码化处理。一个图可以拥有多个DFS结构,如何保证数据编码是最小DFS编码,步骤如下:
我们采用一个五元组(i,j,li,le,lj)其中e=(vi,vj)来表示DFS编码,i,j是边的序号,li,lj是节点的标识,le是两个节点的连接边。在DFS字典顺序中,按照五元组中元素的先后顺序排列优先级,即边序i,j为第一优先级,节点li为第二优先级,边标号le为第三优先级,lj为第四优先级。
选中图中的任意一点,由这点开始对图进行先深遍历,记录下遍历顺序,建立DFS树,由于对同一个图可以由不同的节点开始遍历,因此会生成许多不同的DFS结构,但是每个DFS结构都对应一个DFS编码表,按照字典顺序进行排序,即可得到最小DFS编码。给出字典顺序的定义,假设M={code(G,Tree)},其中Tree是图G的DFS编码的集合组成的树。M为包含所有连通标识图的所有DFS编码,这些DFS编码之间有一个线性的关系如下:如果存在两个DFS编码,如α=(a0,a1,...am),β=(b0,b1,...bn),那么α≤β主要通过以下规则来进行比较:
(2)ak=bkfor0≤k≤m.andn≥m.
对于子图筛选器42,索引结构是具备快速分组、排序等特点的数据结构。在图数据查询中,它以数据的特征为输入,并能快速地找出具有相同特征的相关数据。可以认为,索引结构能够让用户通过查询小部分的可能数据就能够找到所需的特征数据。因此,为了提高查询效率,用离线的建立索引的时间和空间消耗,来减少在线的查询执行的时间和空间消耗。在图特征的索引构建算法中,传统的方法一般采用Hash表结构存储索引编码。在构建索引过程中引入多重哈希概念,其主要步骤如下:
首先:根据关联规则,由支持度函数计算图集中所有标号图的边的支持度,根据找到的min_sup(最小支持度)来确定频繁图集,将输入图集合中的所有的频繁边加入集合C中,并以C中的频繁边作为初始子图。
其次:由各个初始子图做最右扩展,得到频繁子图。如对K阶频繁子图的最小DFS编码进行最右扩展,每次向最右路添加一条边,得到K+1阶候选子图。其中每一阶候选子图都是其父母节点的超图。重新计算K+1阶候选子图的支持度,对通过最右扩展得到的K+1阶子图计算支持度,如果大于最小支持度min_sup,则保存,否则将其删除。
然后,对冗余编码进行剪枝,比较第K+1阶频繁子图的DFS编码,如果扩展得到K+1阶频繁子图不是最小DFS编码,则认为该图是冗余的,可从候选子图中删除。当一条频繁边的所有最右扩展全部完成后,可将该频繁边从输入图集合中删除,以缩小输入图集合。不同的特征图所具备的区分能力不同,定义最小区分度函数:
其中Rx表示图集中包含x的图集,为在特征集中存在的包含以x作为超图的图集。χ具有以下属性:
(1)χ≥1
(2)若χ=1,则表明该片段并不具备理想的区分能力,不能用作特征图。
(3)若χ>>1,则表明图片段x的区分能力很强,可用作候选特征图。对于χ>χmin的图片段,则保留下来作为候选特征图。
最后,用候选特征图结合图集生成的频繁子图,生成特征图集合,该步骤主要采用GSpan算法得到。
哈希存储器43,在网格图数据库中,频繁的子图被用作提取具有决定性效果的图像片段的特征,它们由DFS(深度优先搜索)编码并组织在前缀树中。多个散列方法用于映射树中的代码,将它们存储在哈希表结构中,使用查询图在搜索过滤过程中的特征项,并生成尽可能小的候选集。然后和子图同构验证匹配,得到超图查询结果集。使用多重哈希探测序列,可以在表中的每个位置均匀地散列关键字,有效地避免冲突的存储过程,并启用快速索引查找。
所述的多重哈希方法,是把一个完整的哈希表等分成n段的方法,首先介绍一下分成两段的结果,分别叫做T1和T2,给T1和T2分别配备一个哈希函数h1和h2,在存储一个新的key时,同时用两个哈希函数进行计算,得出两个地址h1(key)和h2(key)。首先尝试使用h1(key)将key存储在T1中。如果该位置是空的,那么只需将key存储并完成,否则会发生必须处理的碰撞。设key1是该位置当前的值。在T1中用key替换key1,然后尝试使用h2(key)将key1存储在T2中,依此类推。这时需要检查T1中的h1(key)位置和T2中的h2(key)位置,哪一个位置已经存储的(有碰撞的)key比较多,然后将新key存储在负载少的位置。如果两边一样多,比如两个位置都为空或者都存储了一个key,就把新key存储在左边的T1子表中。在查找一个key时,必须进行两次hash,同时查找两个位置。
而在判断负载的过程中,定义了一个负载计数器,来记录每次添加进去Key值的数目,在编程中可以用count函数进行实现。
其探测顺序如下:
本方法提供了一种将DFS代码映射到哈希表的算法,具体步骤如下所示。在算法中,根据输入的DFS编码,使用哈希值获取用于确定是否存在冲突的哈希值,如果没有冲突,则直接存储相应的键值,如果存在冲突,则将该函数用于地址探索和比较,直到找到可用的地址并最终返回多重哈希编码。算法具体的步骤如下:
步骤1,输入DFS编码,由DFS编码转变为key值,即key←DFScode;
步骤2,把key值转变为哈希表中的值即t=h1(key)并存储在哈希表中。如果值存在冲突,进入到步骤3;
步骤3,首先在T1中用线性探测法即找到下一个不冲突的点,如果不存在冲突,则仍然保存在T1中,如果还存在冲突,把T1中用key替换冲突的值假设为key1,然后尝试使用h2(key)将key1存储在T2中,依此类推。
步骤4,得到最终的多重哈希编码值。
本实施例提供的基于电网图数据库的数据存储方法,主要用于解决图数据库下数据存储的问题,通过使用本发明中提出的方法可以根据当前GIS图数据库中的大量图数据,利用DFS数据编码和频繁子图筛选的方法相结合,并且多重哈希编码对电网GIS图数据库下图数据的有效存储。
在本实施例中还提供了一种基于电网图数据库的数据存储装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种基于电网图数据库的数据存储装置,如图7所示,包括:
获取模块51,用于获取若干待存储图数据。
处理模块52,用于对所述待存储图数据进行预处理,以形成多个特征图。;
确定模块53,用于利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应。
存储模块54,用于基于确定出的所述存储地址对所述特征图进行存储。
本发明实施例提供的基于电网图数据库的数据存储装置,利用至少两个哈希函数确定特征图在哈希表中的存储地址,以避免存储地址的冲突,即利用多重哈希编码的方式对电网图数据库中的数据进行有效存储,提高了数据的存储效率。
本实施例中的基于电网图数据库的数据存储装置是以功能单元的形式来呈现,这里的单元是指ASIC电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
上述各个模块的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
本发明实施例还提供一种电子设备,具有上述图7所示的基于电网图数据库的数据存储装置。
请参阅图8,图8是本发明可选实施例提供的一种电子设备的结构示意图,如图8所示,该电子设备可以包括:至少一个处理器61,例如CPU(Central Processing Unit,中央处理器),至少一个通信接口63,存储器64,至少一个通信总线62。其中,通信总线62用于实现这些组件之间的连接通信。其中,通信接口63可以包括显示屏(Display)、键盘(Keyboard),可选通信接口63还可以包括标准的有线接口、无线接口。存储器64可以是高速RAM存储器(Random Access Memory,易挥发性随机存取存储器),也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器64可选的还可以是至少一个位于远离前述处理器61的存储装置。其中处理器61可以结合图7所描述的装置,存储器64中存储应用程序,且处理器61调用存储器64中存储的程序代码,以用于执行上述任一方法步骤。
其中,通信总线62可以是外设部件互连标准(peripheral componentinterconnect,简称PCI)总线或扩展工业标准结构(extended industry standardarchitecture,简称EISA)总线等。通信总线62可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
其中,存储器64可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器也可以包括非易失性存储器(英文:non-volatile memory),例如快闪存储器(英文:flash memory),硬盘(英文:harddisk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储器64还可以包括上述种类的存储器的组合。
其中,处理器61可以是中央处理器(英文:central processing unit,缩写:CPU),网络处理器(英文:network processor,缩写:NP)或者CPU和NP的组合。
其中,处理器61还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(英文:application-specific integrated circuit,缩写:ASIC),可编程逻辑器件(英文:programmable logic device,缩写:PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:generic arraylogic,缩写:GAL)或其任意组合。
可选地,存储器64还用于存储程序指令。处理器61可以调用程序指令,实现如本申请图1至3实施例中所示的基于电网图数据库的数据存储方法。
本发明实施例还提供了一种非暂态计算机存储介质,所述计算机存储介质存储有计算机可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于电网图数据库的数据存储方法。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)、随机存储记忆体(Random Access Memory,RAM)、快闪存储器(FlashMemory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等;所述存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种基于电网图数据库的数据存储方法,其特征在于,包括:
获取若干待存储图数据;
对所述待存储图数据进行预处理,以形成多个特征图;
利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应;
基于确定出的所述存储地址对所述特征图进行存储。
2.根据权利要求1所述的方法,其特征在于,所述哈希函数为两个;所述利用至少两个哈希函数确定所述特征图在哈希表中的存储地址,包括:
对所述特征图转换为待存储关键值;其中,所述待存储关键值与所述特征图一一对应;
利用两个所述哈希函数分别计算所述待存储关键值在对应区间的存储地址;其中,两个所述哈希函数分别为第一哈希函数以及第二哈希函数,所述哈希表划分出的区间分别为第一区间以及第二区间;利用所述第一哈希函数计算出的存储地址为第一地址,利用所述第二哈希函数计算出的存储地址为第二地址;
根据计算出的所述存储地址,在划分出的区间中进行冲突检测,以确定所述待存储关键值在哈希表中的存储地址。
3.根据权利要求2所述的方法,其特征在于,所述根据计算出的所述存储地址,在划分出的区间中进行冲突检测,包括:
判断所述第一地址对应的空间是否为空;
当所述第一地址对应的空间为非空时,在所述第一区间中寻找下一个存储地址;
当所述下一个存储地址对应的空间为非空时,确定所述第一地址为所述待存储关键值在哈希表中的存储地址。
4.根据权利要求3所述的方法,其特征在于,所述基于确定出的所述存储地址对所述待存储关键值进行存储,包括:
提取所述第一地址对应空间内的关键值;
将所述待存储关键值存储在所述第一地址对应的空间;
将所述关键值存储在所述第二地址对应的空间。
5.根据权利要求3所述的方法,其特征在于,所述根据计算出的所述存储地址,在划分出的区间中进行冲突检测,还包括:
当所述第一地址对应的空间为空且所述第二地址对应的空间为空时,获取第一区间以及第二区间对应的负载计数值;其中,所述负载计数值用于表示对应区间内所存储的关键值的数量;
基于所述负载计数值的大小确定所述待存储关键值在哈希表中的存储地址。
6.根据权利要求1所述的方法,其特征在于,所述对所述待存储图数据进行预处理,以形成多个特征图,包括:
对所述待存储图数据进行遍历,以建立遍历树;
计算所述遍历树中所有标号图的边的支持度,以确定频繁图集;
以所述频繁图集中的所有的频繁边作为初始子图进行扩展,以得到频繁子图;
对所述频繁子图进行筛选,以形成所述多个特征图。
7.根据权利要求6所述的方法,其特征在于,所述对所述待存储图数据进行遍历,以建立遍历树,包括:基于最小DFS编码,对所述待存储图数据进行前序遍历,以建立DFS前缀树。
8.一种基于电网图数据库的数据存储装置,其特征在于,包括:
获取模块,用于获取若干待存储图数据;
处理模块,用于对所述待存储图数据进行预处理,以形成多个特征图;
确定模块,用于利用至少两个哈希函数确定所述特征图在哈希表中的存储地址;其中,所述哈希表划分出的区间与所述哈希函数一一对应;
存储模块,用于基于确定出的所述存储地址对所述特征图进行存储。
9.一种电子设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1-7中任一项所述的基于电网图数据库的数据存储方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的基于电网图数据库的数据存储方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811402405.2A CN109684418A (zh) | 2018-11-22 | 2018-11-22 | 基于电网图数据库的数据存储方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811402405.2A CN109684418A (zh) | 2018-11-22 | 2018-11-22 | 基于电网图数据库的数据存储方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109684418A true CN109684418A (zh) | 2019-04-26 |
Family
ID=66184925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811402405.2A Pending CN109684418A (zh) | 2018-11-22 | 2018-11-22 | 基于电网图数据库的数据存储方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109684418A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897983A (zh) * | 2020-07-23 | 2020-11-06 | 北京中数智汇科技股份有限公司 | 一种基于图数据库的网络拓扑图生成方法、装置和系统 |
CN115269745A (zh) * | 2022-07-27 | 2022-11-01 | 国网江苏省电力有限公司电力科学研究院 | 一种关系型数据至图数据映射方法、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692651A (zh) * | 2009-09-27 | 2010-04-07 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
CN103559016A (zh) * | 2013-10-23 | 2014-02-05 | 江西理工大学 | 一种基于图形处理器并行计算的频繁子图挖掘方法 |
CN104166942A (zh) * | 2014-07-02 | 2014-11-26 | 国家电网公司 | 基于cim模型的跨区域供电范围搜索方法及其系统 |
US9378263B2 (en) * | 2012-06-19 | 2016-06-28 | Salesforce.Com, Inc. | Method and system for creating indices and loading key-value pairs for NoSQL databases |
-
2018
- 2018-11-22 CN CN201811402405.2A patent/CN109684418A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101692651A (zh) * | 2009-09-27 | 2010-04-07 | 中兴通讯股份有限公司 | 一种哈希查找表的方法和装置 |
US9378263B2 (en) * | 2012-06-19 | 2016-06-28 | Salesforce.Com, Inc. | Method and system for creating indices and loading key-value pairs for NoSQL databases |
CN103559016A (zh) * | 2013-10-23 | 2014-02-05 | 江西理工大学 | 一种基于图形处理器并行计算的频繁子图挖掘方法 |
CN104166942A (zh) * | 2014-07-02 | 2014-11-26 | 国家电网公司 | 基于cim模型的跨区域供电范围搜索方法及其系统 |
Non-Patent Citations (1)
Title |
---|
谭伟,杨书新: "一种基于双哈希编码的超图集合查询方法", 《计算机应用与软件》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111897983A (zh) * | 2020-07-23 | 2020-11-06 | 北京中数智汇科技股份有限公司 | 一种基于图数据库的网络拓扑图生成方法、装置和系统 |
CN115269745A (zh) * | 2022-07-27 | 2022-11-01 | 国网江苏省电力有限公司电力科学研究院 | 一种关系型数据至图数据映射方法、设备及存储介质 |
CN115269745B (zh) * | 2022-07-27 | 2023-11-14 | 国网江苏省电力有限公司电力科学研究院 | 一种关系型数据至图数据映射方法、设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Wang et al. | Fast large-scale trajectory clustering | |
US10482122B2 (en) | System and method for multiresolution and multitemporal image search | |
CN102915347B (zh) | 一种分布式数据流聚类方法及系统 | |
Rieck et al. | Clique community persistence: A topological visual analysis approach for complex networks | |
CN110291518A (zh) | 合并树无用单元指标 | |
JP5092165B2 (ja) | データ構築方法とシステム | |
US11720606B1 (en) | Automated geospatial data analysis | |
CN110383261A (zh) | 用于多流存储装置的流选择 | |
US11416473B2 (en) | Using path encoding method and relational set operations for search and comparison of hierarchial structures | |
CN108536813B (zh) | 轨迹查询方法、电子设备及存储介质 | |
CN107783762A (zh) | 界面生成方法、装置、存储介质和计算机设备 | |
CN107004025A (zh) | 图像检索装置及检索图像的方法 | |
WO2014176182A1 (en) | Auto-completion of partial line pattern | |
CN110888880A (zh) | 基于空间索引的邻近分析方法、装置、设备及介质 | |
Peters | Quadtree-and octree-based approach for point data selection in 2D or 3D | |
CN109684418A (zh) | 基于电网图数据库的数据存储方法及装置 | |
CN106462591A (zh) | 使用存储器中的智能索引的分区过滤 | |
CN108446378B (zh) | 基于用户搜索的方法、系统及计算机存储介质 | |
Brisaboa et al. | Compact trip representation over networks | |
CN115495504A (zh) | 数据查询方法和装置、电子设备、计算机可读存储介质 | |
CN109241102A (zh) | 数据处理方法及装置、存储介质和电子设备 | |
KR20200000208A (ko) | 소셜 데이터 수집 분석 시스템 | |
CN104123357A (zh) | 一种查询卡口的方法和装置 | |
CN110825846B (zh) | 数据处理方法及装置 | |
CN104932982B (zh) | 一种消息访存的编译方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190426 |
|
RJ01 | Rejection of invention patent application after publication |