基于大规模数据更新的数据查询方法、装置以及设备
文献发布时间:2024-04-18 19:58:30
技术领域
本申请涉及大数据领域,尤其涉及一种基于大规模数据更新的数据查询方法、装置以及设备。
背景技术
随着大数据的发展,数据的数据量越来越多,在很多场景下需要对大规模数据进行存储和更新。其中,数据,例如是实体。实体,例如是,人员、企业、帐户或要跟踪的任何其他项目、等等。
现有技术中,可以将实体存储到图数据库中,其中,图数据库中包括实体和实体的关联关系,关联关系为实体之间的关联关系。可以从图数据库中查询到实体、以及与实体之间具有关联关系的实体。
但是现有技术中,会出现图数据库更新不及时的情况,进而不能及时从图数据库中查询到实体、以及与实体之间具有关联关系的各实体。
发明内容
本申请提供一种基于大规模数据更新的数据查询方法、装置以及设备,用以解决图数据库更新不及时,不能及时从图数据库中查询到数据的问题。
第一方面,本申请提供一种基于大规模数据更新的数据查询方法,包括:
响应于查询访问请求,从图数据库中查询与所述查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,所述查询访问请求用于指示查询待查询的实体所匹配的实体;所述图数据库中包括至少一个实体,所述图数据库中的实体之间具有关联关系;所述第一实体列表中包括至少一个实体,所述第一实体列表中的实体为与所述待查询的实体之间匹配的实体,所述第一实体列表中还包括所述待查询的实体;
若根据所述第一实体列表,从预存的HASH结构中获取到与所述第一实体列表中的实体匹配的关系链,则合并各所述关系链和所述第一实体列表,得到查询结果;其中,所述预存的HASH结构中包括至少一个实体,所述预存的HASH结构中的实体之间具有关联关系;所述关系链包括与所述第一实体列表中的实体匹配的至少一个实体;
返回所述查询结果。
在一种可能得实现方式中,从预存的HASH结构中获取到与所述第一实体列表中的实体匹配的关系链,包括:
从所述预存的HASH结构中获取与所述第一实体列表中的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第i个实体;其中,i为大于等于1的正整数;
重复以下步骤,直至达到第一预设条件:根据所述第i个实体,从所述预存的HASH结构中获取与所述第i个实体之间具有关联关系的第i+1个实体;
确定i的取值加1;
其中,所述第一预设条件为查询不到与所述第i个实体之间具有关联关系的第i+1个实体。
在一种可能得实现方式中,所述方法还包括:
响应于更新数据请求,在List结构中存储所述更新数据请求所指示的实体、以及所述更新数据请求所指示的实体的关联关系;其中,所述更新数据请求表征用于存储数据,所述更新数据请求中包括待存储的实体、与待存储的实体之间具有关联关系的实体;
同时,根据所述更新数据请求所指示的实体的关联关系,生成所述预存的HASH结构。
在一种可能得实现方式中,所述方法还包括:
针对所述List结构中的每一实体,将所述List结构中的实体和实体的关联关系,同步到所述图数据库中,并在所述预存的HASH结构中删除该实体的关联关系。
在一种可能得实现方式中,所述List结构和所述预存的HASH结构为Redis内存数据库中存储的两种数据类型;或者,所述List结构和所述预存的HASH结构为内存中存储的两种数据类型。
在一种可能得实现方式中,从图数据库中查询与所述查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表,包括:
从所述图数据库中获取与所述待查询的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第j个实体;其中,j为大于等于1的正整数;
重复以下步骤,达到第二预设条件:根据所述第j个实体,从所述图数据库中获取与所述第j个实体之间具有关联关系的第j+1个实体;
确定j的取值加1;
其中,所述第二预设条件为查询不到与所述第j个实体之间具有关联关系的第j+1个实体。
在一种可能得实现方式中,合并各所述关系链和所述第一实体列表,得到查询结果,包括:
合并各所述关系链所指示的实体和所述第一实体列表中的实体,得到初始结果;
根据预设的实体与优先级之间的对应关系,确定所述初始结果中的实体的优先级;
根据所述初始结果中的实体的优先级,调整所述初始结果中的实体的次序,得到所述查询结果。
在一种可能得实现方式中,所述方法还包括:
若根据所述第一实体列表,从预存的HASH结构中未获取到与所述第一实体列表中的实体匹配的关系链,则确定所述第一实体列表,为所述查询结果。
第二方面,本申请提供一种基于大规模数据更新的数据查询装置,包括:
第一查询单元,用于响应于查询访问请求,从图数据库中查询与所述查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,所述查询访问请求用于指示查询待查询的实体所匹配的实体;所述图数据库中包括至少一个实体,所述图数据库中的实体之间具有关联关系;所述第一实体列表中包括至少一个实体,所述第一实体列表中的实体为与所述待查询的实体之间匹配的实体,所述第一实体列表中还包括所述待查询的实体;
第一处理单元,用于若根据所述第一实体列表,从预存的HASH结构中获取到与所述第一实体列表中的实体匹配的关系链,则合并各所述关系链和所述第一实体列表,得到查询结果;其中,所述预存的HASH结构中包括至少一个实体,所述预存的HASH结构中的实体之间具有关联关系;所述关系链包括与所述第一实体列表中的实体匹配的至少一个实体;
第二处理单元,用于返回所述查询结果。
在一种可能得实现方式中,所述第一处理单元,包括:
第一处理模块,用于从所述预存的HASH结构中获取与所述第一实体列表中的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第i个实体;其中,i为大于等于1的正整数;
第二处理模块,用于重复以下步骤,直至达到第一预设条件:根据所述第i个实体,从所述预存的HASH结构中获取与所述第i个实体之间具有关联关系的第i+1个实体;
第三处理模块,用于确定i的取值加1;
其中,所述第一预设条件为查询不到与所述第i个实体之间具有关联关系的第i+1个实体。
在一种可能得实现方式中,所述装置还包括:
第三处理单元,用于响应于更新数据请求,在List结构中存储所述更新数据请求所指示的实体、以及所述更新数据请求所指示的实体的关联关系;其中,所述更新数据请求表征用于存储数据,所述更新数据请求中包括待存储的实体、与待存储的实体之间具有关联关系的实体;
同时,第四处理模块,用于根据所述更新数据请求所指示的实体的关联关系,生成所述预存的HASH结构。
在一种可能得实现方式中,所述装置还包括:
第五处理单元,用于针对所述List结构中的每一实体,将所述List结构中的实体和实体的关联关系,同步到所述图数据库中,并在所述预存的HASH结构中删除该实体的关联关系。
在一种可能得实现方式中,所述List结构和所述预存的HASH结构为Redis内存数据库中存储的两种数据类型;或者,所述List结构和所述预存的HASH结构为内存中存储的两种数据类型。
在一种可能得实现方式中,所述第一查询单元,包括:
第四处理模块,用于从所述图数据库中获取与所述待查询的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第j个实体;其中,j为大于等于1的正整数;
第五处理模块,重复以下步骤,达到第二预设条件:用于根据所述第j个实体,从所述图数据库中获取与所述第j个实体之间具有关联关系的第j+1个实体;
第六处理模块,用于确定j的取值加1;
其中,所述第二预设条件为查询不到与所述第j个实体之间具有关联关系的第j+1个实体。
在一种可能得实现方式中,所述第一处理单元,包括:
第七处理模块,用于合并各所述关系链所指示的实体和所述第一实体列表中的实体,得到初始结果;
第八处理模块,用于根据预设的实体与优先级之间的对应关系,确定所述初始结果中的实体的优先级;
第九处理模块,用于根据所述初始结果中的实体的优先级,调整所述初始结果中的实体的次序,得到所述查询结果。
在一种可能得实现方式中,所述装置还包括:
第六处理单元,用于若根据所述第一实体列表,从预存的HASH结构中未获取到与所述第一实体列表中的实体匹配的关系链,则确定所述第一实体列表,为所述查询结果。
第三方面,本申请提供一种电子设备,包括:处理器,以及与所述处理器通信连接的存储器;
所述存储器存储计算机执行指令;
所述处理器执行所述存储器存储的计算机执行指令,以实现上述第一方面提供的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,所述计算机执行指令被处理器执行时用于实现上述第一方面提供的方法。
第五方面,本申请提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述第一方面提供的方法。
本申请提供的基于大规模数据更新的数据查询方法、装置以及设备,首先依据查询访问请求,在图数据库中查询,与查询访问请求中待查询的实体有关联关系的实体,得到第一实体列表。再依据第一实体列表,在预存的HASH结构中查询,与第一实体列表中的实体有关联关系的实体,如果在预存的HASH结构中,可以查询到与第一实体列表中的实体有关联关系的实体,就将这些实体组成各实体关系链,接着将各实体关系链和第一实体列表进行合并,得到查询结果。通过上述技术手段,在图数据库中查询数据时,在预存的HASH结构中也进行数据查询,这样既可以查询到图数据库中的数据,还可以查询到未及时更新到图数据库中的实时数据,保证最终查询到实时完整的数据。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1为本申请实施例提供的一种基于大规模数据更新的数据查询方法的流程图;
图2为本申请实施例提供的另一种基于大规模数据更新的数据查询方法的流程图;
图3为本申请实施例提供的一种基于大规模数据更新的数据查询装置;
图4为本申请实施例提供的另一种基于大规模数据更新的数据查询装置;
图5为本申请实施例提供一种电子设备的结构示意图;
图6为根据一示例性实施例示出的一种电子设备的框图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
需要说明的是,本申请基于大规模数据更新的数据查询方法、装置以及设备可用于大数据领域,也可用于除大数据领域之外的任意领域,本申请基于大规模数据更新的数据查询方法、装置以及设备的应用领域不做限定。
本申请具体的应用场景为,对图数据库进行数据查询时,需要查询到实时完整的数据。
图数据库是一种以图结构进行语义查询,使用顶点、边、属性来表示和存储数据的数据库。图数据库应用图形理论存储实体之间的关系信息。比如,Neo4j是一个高性能、非关系型的图形数据库,该数据库是目前应用最为广泛且开源的数据库。
现有的关于图数据库更新与查找数据的方法如下:图数据库接收到更新请求数据,首先将该数据缓存在图数据库的内存里,然后图数据库将内存中缓存的数据,依次更新到图数据库的磁盘中。
在上述方式中,会出现图数据库更新不及时的情况,对图数据库进行数据查询时,只查询图数据库磁盘内的数据,不能及时从图数据库中查询到实体、以及与实体之间具有关联关系的各实体。
本申请提出了一种大规模数据更新场景下满足图数据库实时查找要求的方法,使用内存数据库缓存待更新数据。在对图数据库进行实时查询数据时,会同时查询内存数据库,如果内存数据库中存在涉及的查询数据,那么就将内存数据库的查询结果与图数据库的查询结果进行合并,作为最终的查询结果输出。
本申请提供的基于大规模数据更新的数据查询的方法、装置以及设备,旨在解决现有技术的如上技术问题。
下面以具体地实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本申请的实施例进行描述。
图1为本申请实施例提供的一种基于大规模数据更新的数据查询方法的流程图,如图1所示,本实施例中的方法,可以包括:
S101、响应于查询访问请求,从图数据库中查询与查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,查询访问请求用于指示查询待查询的实体所匹配的实体;图数据库中包括至少一个实体,图数据库中的实体之间具有关联关系;第一实体列表中包括至少一个实体,第一实体列表中的实体为与待查询的实体之间匹配的实体,第一实体列表中还包括待查询的实体。
示例性地,本实施例的执行主体可以为电子设备、或者终端设备、或者基于大规模数据更新的数据查询装置或设备、或者其他可以执行本实施例的装置或设备,对此不作限制。以执行主体为电子设备进行介绍。
用户在电子设备中输入查询条件,进而电子设备根据用户所输入的查询条件,生成查询访问请求;其中,查询访问请求用于指示查询待查询的实体所匹配的实体。电子设备根据查询访问请求,查询图数据库,获取与待查询的实体所匹配的实体,从而获取第一实体列表;其中,第一实体列表中包括待查询的实体、与待查询的实体所匹配的实体。
举例来说,用户在电子设备中输入查询条件。其中,查询条件可以为,实体、实体之间关系、实体的属性、实体之间关系的属性。一个示例中,实体可以为,人员、企业、帐户或要跟踪的任何其他项目。更具体的,当实体为人时,实体的属性可以为,身高、体重、年龄;当实体为人时,实体之间的关系可以为,家庭关系、朋友关系;当实体之间关系为家庭关系时,实体之间关系的属性可以为,夫妻、兄弟。
电子设备根据用户所输入的查询条件,生成查询访问请求。一个示例中,当用户所输入的查询条件为实体a时,查询访问请求的含义为,请求在图数据库中查询,与待查询的实体a有关联关系的实体。
电子设备根据查询访问请求中的待查询的实体,从图数据库中查询,与待查询的实体有关联关系的实体,获取与待查询的实体所匹配的实体,然后将与待查询的实体有关联关系的实体、待查询的实体合并为第一实体列表,从而电子设备获取第一实体列表;其中,图数据库中存储数据包括实体、实体之间关系;一个示例中,电子设备根据查询访问请求中的待查询的实体a,在图数据库中查询到,与实体a有关联关系的实体为,实体b、实体c,那么实体a、实体b、实体c合并为第一实体列表,电子设备获取第一实体列表。
S102、若根据第一实体列表,从预存的HASH结构中获取到与第一实体列表中的实体匹配的关系链,则合并各关系链和第一实体列表,得到查询结果;其中,预存的HASH结构中包括至少一个实体,预存的HASH结构中的实体之间具有关联关系;关系链包括与第一实体列表中的实体匹配的至少一个实体。
示例性地,电子设备根据第一实体列表,在预存的HASH结构中查询,与第一实体列表中的实体匹配的关系链;其中,预存的HASH结构中包括至少一个实体,预存的HASH结构中的实体之间具有关联关系;该关系链包括与第一实体列表中的实体匹配的至少一个实体。如果电子设备在预存的HASH结构中获取到,与第一实体列表中的实体匹配的关系链,就将该查询到的各实体关系链和第一实体列表合并,作为查询结果。
举例来说,电子设备根据第一实体列表,在预存的HASH结构中查询,与第一实体列表中的实体匹配的关系链;其中,第一实体列表包括实体a、实体b、实体c;预存的HASH结构中,存储有至少一对实体之间的直接关联关系;该关系链中的实体与第一实体列表中的实体有直接或间接或次间接的关联关系。电子设备在预存的HASH结构中获取到,与实体a、实体b、实体c有关联关系的实体关系链为,a-d、a-g-j-k、b-e–m、c-f-n;其中,实体d、实体g分别与实体a有直接关联关系,实体j与实体a有间接关联关系,实体k与实体a有次间接关联关系;实体e与实体b有直接关联关系,实体m与实体b有间接关联关系;实体f与实体c有直接关联关系,实体n与实体c有间接关联关系。将这四个与实体a、实体b、实体c有关联关系的实体关系链与第一实体列表合并,作为查询结果。
S103、返回查询结果。
示例性地,参见步骤S102的介绍,电子设备就可以获得查询结果,电子设备将查询结果返回给用户。
本实施例依据查询访问请求,在图数据库中查询,与查询访问请求中待查询的实体有关联关系的实体,得到第一实体列表。再依据第一实体列表,在预存的HASH结构中查询,与第一实体列表中的实体有关联关系的实体,如果在预存的HASH结构中,可以查询到与第一实体列表中的实体有关联关系的实体,就将这些实体组成各实体关系链,接着将各实体关系链和第一实体列表进行合并,得到查询结果。通过本实施例中的方法,在图数据库中查询数据时,在预存的HASH结构中也进行数据查询,这样既可以查询到图数据库中的数据,还可以查询到未及时更新到图数据库中的实时数据,保证最终查询到实时完整的数据。
图2为本申请实施例提供的另一种基于大规模数据更新的数据查询方法的流程图,如图2所示,本实施例中的方法,可以包括:
S201、响应于更新数据请求,在List结构中存储更新数据请求所指示的实体、以及更新数据请求所指示的实体的关联关系;其中,更新数据请求表征用于存储数据,更新数据请求中包括待存储的实体、与待存储的实体之间具有关联关系的实体。
同时,根据更新数据请求所指示的实体的关联关系,生成预存的HASH结构。
一个示例中,List结构和预存的HASH结构为Redis内存数据库中存储的两种数据类型;或者,另一个示例中,List结构和预存的HASH结构为内存中存储的两种数据类型。
示例性地,本实施例的执行主体可以为电子设备、或者终端设备、或者基于大规模数据更新的数据查询装置或设备、或者其他可以执行本实施例的装置或设备,对此不作限制。以执行主体为电子设备进行介绍。用户在电子设备中输入待更新数据,进而电子设备根据用户所输入的待更新数据,生成更新数据请求;其中,更新数据请求表征用于存储数据,更新数据请求中包括待存储的实体、与待存储的实体之间具有关联关系的实体。电子设备根据更新数据请求,在List结构中存储更新数据请求所指示的实体、以及更新数据请求所指示的实体的关联关系。同时,电子设备根据更新数据请求所指示的实体的关联关系,生成预存的HASH结构。其中,List结构和预存的HASH结构为Redis内存数据库中存储的两种数据类型;或者,List结构和预存的HASH结构为内存中存储的两种数据类型。
举例来说,用户在电子设备中输入待更新数据,进而电子设备根据用户所输入的待更新数据,生成更新数据请求;其中,更新数据请求中包括待存储的实体a、与待存储的实体a之间具有关联关系的实体b、实体c。
电子设备根据更新数据请求,使用RPUSH,将更新数据请求中的待存储的实体a、与待存储的实体a之间具有关联关系的实体b、实体c,以List结构的数据类型,进行数据入栈,缓存到Redis内存数据库中;其中,在List结构中存储的数据用于图数据库数据同步。
同时,电子设备根据更新数据请求,将更新数据请求中每一对实体之间的关系,即,实体a与实体b的关联关系、实体a与实体c的关联关系,以HASH结构的数据类型,预存在Redis内存数据库中。具体的,由于HASH结构的数据支持键值对(key-value)的快速插入和访问,所以在以HASH结构存储数据时,将待存储的每一对实体之间的关系的关键词(键key)设置为,数据查询时可能会被用作查询条件的关键词,例如,待存储的每一对实体之间的关系的关键词(键key)可以设置为,实体、实体的属性、实体之间关系、实体之间关系的属性;实体a与实体b的关联关系的关键词(键key)可以设置为,实体a、实体b;实体a与实体c的关联关系的关键词(键key)可以设置为,实体a、实体c。在HASH结构中存储的数据用于数据查询,在数据查询时,可以依据关键词(key)快速定位HASH结构中数据的位置,并访问数据。
本实施例的S201,将更新数据请求中的待存储的实体、与待存储的实体之间具有关联关系的实体,分别以List结构、HASH结构缓存在Redis内存数据库中,或者内存中。在List结构中存储的数据用于图数据库数据同步,也就是将Redis内存数据库中的List结构的数据,或者内存中的List结构的数据,存储到图数据库中;在HASH结构中存储的数据用于数据查询,也就是,在数据查询时,依据关键词(key)快速定位HASH结构中数据的位置,并访问数据。
S202、针对List结构中的每一实体,将List结构中的实体和实体的关联关系,同步到图数据库中,并在预存的HASH结构中删除该实体的关联关系。
示例性地,电子设备针对Redis内存数据库中List结构中的每一实体,将List结构中的实体和实体的关联关系,同步到图数据库中。同时,电子设备删除Redis内存数据库中预存的HASH结构中的该实体的关联关系。或者,电子设备针对内存中List结构中的每一实体,将List结构中的实体和实体的关联关系,同步到图数据库中。同时,电子设备删除内存中预存的HASH结构中的该实体的关联关系。
举例来说,电子设备使用LPOP,将Redis内存数据库中List结构的数据:实体a、与实体a之间具有关联关系的实体b、与实体a之间具有关联关系的实体c,进行数据出栈,存储到图数据库中。
同时,电子设备删除Redis内存数据库中预存的HASH结构中的实体a的关联关系实体a-实体b、实体a-实体c。
本实施例的S202,将Redis内存数据库中的List结构的数据,或者内存中的List结构的数据,存储到图数据库中,同时删除该数据对应的HASH结构中的数据,实现了图数据库的数据同步。
S203、响应于查询访问请求,从图数据库中查询与查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,查询访问请求用于指示查询待查询的实体所匹配的实体;图数据库中包括至少一个实体,图数据库中的实体之间具有关联关系;第一实体列表中包括至少一个实体,第一实体列表中的实体为与待查询的实体之间匹配的实体,第一实体列表中还包括待查询的实体。
一个示例中,从图数据库中查询与查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表,包括:
S203的第一个步骤、从图数据库中获取与待查询的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第j个实体;其中,j为大于等于1的正整数。
S203的第二个步骤、重复以下步骤,达到第二预设条件:根据第j个实体,从图数据库中获取与第j个实体之间具有关联关系的第j+1个实体。
S203的第三个步骤、确定j的取值加1。
其中,第二预设条件为查询不到与第j个实体之间具有关联关系的第j+1个实体。
示例性地,用户在电子设备中输入查询条件,进而电子设备根据用户所输入的查询条件,生成查询访问请求;其中,查询访问请求用于指示查询待查询的实体所匹配的实体。电子设备根据查询访问请求,访问图数据库,以获取所需要的实体。
首先,电子设备查询图数据库;电子设备依据实体之间的关联关系,从图数据库中获取与待查询的实体之间具有关联关系的实体。此时,电子设备先将该具有关联关系的实体,记为第1个实体。
然后,电子设备根据第1个实体,从图数据库中获取与第1个实体之间具有关联关系的实体。将该具有关联关系的实体记为第2个实体。
接着,电子设备根据第2个实体,从图数据库中获取与第2个实体之间具有关联关系的实体。将该具有关联关系的实体记为第3个实体。
以此类推,电子设备根据第j个实体,从图数据库中获取与第j个实体之间具有关联关系的实体。将该具有关联关系的实体记为第j+1个实体。直至电子设备根据第j+1个实体,从图数据库中没有获取到与第j+1个实体之间具有关联关系的第j+2个实体。
电子设备将待查询的实体、第1个实体、第2个实体、第3个实体、直至第j+1个实体合并为第一实体列表,从而电子设备获取第一实体列表。
举例来说,用户在电子设备中输入查询条件:实体a。电子设备根据用户所输入的查询条件,生成查询访问请求;查询访问请求用于指示,在图数据库中查询与待查询的实体a所匹配的实体。
首先,电子设备根据查询访问请求中的待查询的实体a,从图数据库获取,与待查询的实体a之间具有关联关系的实体b。
然后,电子设备根据实体b,从图数据库中获取与实体b之间具有关联关系的实体c。
接着,电子设备根据实体c,在图数据库中没有获取到与实体c之间具有关联关系的实体。
电子设备将实体a、实体b、实体c合并为第一实体列表,从而电子设备获取第一实体列表。
本实施例的S203,依据查询访问请求,在图数据库中查询,与查询访问请求中待查询的实体有关联关系的实体,可以得到第一实体列表,该第一实体列表中的实体,与查询访问请求中待查询的实体有关联关系。
S204、若根据第一实体列表,从预存的HASH结构中获取到与第一实体列表中的实体匹配的关系链,则合并各关系链和第一实体列表,得到查询结果;其中,预存的HASH结构中包括至少一个实体,预存的HASH结构中的实体之间具有关联关系;关系链包括与第一实体列表中的实体匹配的至少一个实体。
一个示例中,从预存的HASH结构中获取到与第一实体列表中的实体匹配的关系链,包括:
S204的第一个步骤、从预存的HASH结构中获取与第一实体列表中的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第i个实体;其中,i为大于等于1的正整数。
S204的第二个步骤、重复以下步骤,直至达到第一预设条件:根据第i个实体,从预存的HASH结构中获取与第i个实体之间具有关联关系的第i+1个实体。
S204的第三个步骤、确定i的取值加1。
其中,第一预设条件为查询不到与第i个实体之间具有关联关系的第i+1个实体。
一个示例中,合并各关系链和第一实体列表,得到查询结果,包括:
S204的第四个步骤、合并各关系链所指示的实体和第一实体列表中的实体,得到初始结果。
S204的第五个步骤、根据预设的实体与优先级之间的对应关系,确定初始结果中的实体的优先级。
S204的第六个步骤、根据述初始结果中的实体的优先级,调整初始结果中的实体的次序,得到查询结果。
示例性地,电子设备根据第一实体列表,访问预存的HASH结构,如果获取到所需要的实体关系链,就合并各关系链和第一实体列表,作为查询结果。
首先,电子设备查询预存的HASH结构;电子设备依据关键词(key):第一实体列表中的实体,从预存的HASH结构中获取与第一实体列表中的实体之间具有关联关系的实体。此时,电子设备先将该具有关联关系的实体,记为第1个实体。
然后,电子设备根据第1个实体,从预存的HASH结构中获取与第1个实体之间具有关联关系的实体。将该具有关联关系的实体记为第2个实体。
接着,电子设备根据第2个实体,从预存的HASH结构中获取与第2个实体之间具有关联关系的实体。将该具有关联关系的实体记为第3个实体。
接着,电子设备根据第3个实体,从预存的HASH结构中获取与第3个实体之间具有关联关系的实体。将该具有关联关系的实体记为第4个实体。
以此类推,电子设备根据第i个实体,从预存的HASH结构中获取与第i个实体之间具有关联关系的实体。将该具有关联关系的实体记为第i+1个实体。直至电子设备根据第j+1个实体,从图数据库中没有获取到与第i+1个实体之间具有关联关系的第i+2个实体。
电子设备将各关系链:第一实体列表中的实体-第1个实体-第2个实体-第3个实体-第4个实体-第i+1个实体、第一实体列表进行合并,获取初始结果。根据预设的实体与优先级之间的对应关系,确定初始结果中的实体的优先级。根据述初始结果中的实体的优先级,调整初始结果中的实体的次序,得到查询结果。
举例来说,电子设备根据第一实体列表中的实体:实体a、实体b、实体c,从预存的HASH结构中查询,分别与实体a、实体b、实体c之间具有关联关系的实体。
对于第一实体列表中的实体a,首先,电子设备根据实体a,从预存的HASH结构中获取与实体a之间具有关联关系的实体d、实体g,关系为a-d、a-g。然后,根据实体d,从预存的HASH结构中获取与实体d之间具有关联关系的实体h,关系为d-h。根据实体h,从预存的HASH结构中没有获取与实体h之间具有关联关系的实体。电子设备获取第一条关系链:a-d-h。接着,根据实体g,从预存的HASH结构中获取与实体g之间具有关联关系的实体j,关系为g-j。根据实体j,从预存的HASH结构中获取与实体j之间具有关联关系的实体k,关系为j-k。根据实体k,从预存的HASH结构中没有获取与实体k之间具有关联关系的实体。电子设备获取第二条关系链:a-g-j-k。
对于第一实体列表中的实体b,电子设备根据实体b,从预存的HASH结构中获取与实体b之间具有关联关系的实体e,关系为b-e。根据实体e,从预存的HASH结构中获取与实体e之间具有关联关系的实体m,关系为e-m。根据实体m,从预存的HASH结构中没有获取与实体m之间具有关联关系的实体。电子设备获取第三条关系链:b-e-m。
对于第一实体列表中的实体c,电子设备根据实体c,从预存的HASH结构中获取与实体c之间具有关联关系的实体f,关系为c-f。根据实体f,从预存的HASH结构中没有获取与实体f之间具有关联关系的实体。电子设备获取第四条关系链:c-f。
电子设备将上述得到的四条实体关系链:a-d-h、a-g-j-k、b-e-m、c-f与第一实体列表中的实体:实体a、实体b、实体c进行合并,获取初始结果;其中,初始结果中包括,与实体a有关联关系的实体为,实体b、实体c、实体d、实体h、实体g、实体j、实体k;与实体b有关联关系的实体为,实体e、实体m;与实体c有关联关系的实体为,实体f。
电子设备分析初始结果中的各实体与实体a之间关系的类型,依次按照直接关系、间接关系、次间接关系,确定初始结果中的实体的优先级。
电子设备根据述初始结果中的实体的优先级,得到查询结果:与实体a有直接关系的实体为,实体b、实体d、实体g;与实体a有间接关系的实体为,实体c、实体e、实体h、实体j;与实体a有次间接关系的实体为,实体f、实体k、实体m。
本实施例的S204,依据第一实体列表,在预存的HASH结构中查询,与第一实体列表中的实体有关联关系的实体,如果在预存的HASH结构中,可以查询到与第一实体列表中的实体有关联关系的实体,就将这些实体组成各实体关系链,接着将各实体关系链和第一实体列表进行合并,得到初始结果,然后按照初始结果中各实体的优先级,调整初始结果中的实体的次序,可以得到查询结果。
S205、若根据第一实体列表,从预存的HASH结构中未获取到与第一实体列表中的实体匹配的关系链,则确定第一实体列表,为查询结果。
一个示例中,确定第一实体列表,得到查询结果,包括:
S205的第一个步骤、确定第一实体列表中的实体,得到初始结果。
S205的第二个步骤、根据预设的实体与优先级之间的对应关系,确定初始结果中的实体的优先级。
S205的第三个步骤、根据述初始结果中的实体的优先级,调整初始结果中的实体的次序,得到查询结果。
示例性地,电子设备根据第一实体列表,访问预存的HASH结构,如果没有获取到所需要的实体关系链,就将第一实体列表作为查询结果。
举例来说,电子设备根据第一实体列表中的实体:实体a、实体b、实体c,从预存的HASH结构中查询,分别与实体a、实体b、实体c之间具有关联关系的实体。
对于第一实体列表中的实体a,电子设备根据实体a,从预存的HASH结构中没有获取与实体a之间具有关联关系的实体。
对于第一实体列表中的实体b,电子设备根据实体b,从预存的HASH结构中没有获取与实体b之间具有关联关系的实体。
对于第一实体列表中的实体c,电子设备根据实体c,从预存的HASH结构中没有获取与实体c之间具有关联关系的实体。
电子设备将第一实体列表作为初始结果;其中,初始结果中包括,与实体a有关联关系的实体为,实体b、实体c。
电子设备分析初始结果中的各实体与实体a之间关系的类型,依次按照直接关系、间接关系、次间接关系,确定初始结果中的实体的优先级。
电子设备根据述初始结果中的实体的优先级,得到查询结果:与实体a有直接关系的实体为,实体b;与实体a有间接关系的实体为,实体c。
本实施例的S205,在预存的HASH结构中查询,与第一实体列表中的实体有关联关系的实体,如果在预存的HASH结构中,没有查询到与第一实体列表中的实体有关联关系的实体,就将第一实体列表作为查询结果。
S206、返回查询结果。
示例性地,参见步骤S201至S205的介绍,电子设备就可以获取查询结果,电子设备将查询结果返回给用户。
图3为本申请实施例提供的一种基于大规模数据更新的数据查询装置,如图3所示,该装置300,包括:
第一查询单元301,用于响应于查询访问请求,从图数据库中查询与查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,查询访问请求用于指示查询待查询的实体所匹配的实体;图数据库中包括至少一个实体,图数据库中的实体之间具有关联关系;第一实体列表中包括至少一个实体,第一实体列表中的实体为与待查询的实体之间匹配的实体,第一实体列表中还包括待查询的实体。
第一处理单元302,用于若根据第一实体列表,从预存的HASH结构中获取到与第一实体列表中的实体匹配的关系链,则合并各关系链和第一实体列表,得到查询结果;其中,预存的HASH结构中包括至少一个实体,预存的HASH结构中的实体之间具有关联关系;关系链包括与第一实体列表中的实体匹配的至少一个实体。
第二处理单元303,用于返回查询结果。
本实施例提供的装置,可以参见上述实施例提供的方法,技术过程和效果相同,不再赘述。
图4为本申请实施例提供的另一种基于大规模数据更新的数据查询装置,如图4所示,该装置400,包括:
第一查询单元401,用于响应于查询访问请求,从图数据库中查询与查询访问请求所指示的待查询的实体对应的实体,得到第一实体列表;其中,查询访问请求用于指示查询待查询的实体所匹配的实体;图数据库中包括至少一个实体,图数据库中的实体之间具有关联关系;第一实体列表中包括至少一个实体,第一实体列表中的实体为与待查询的实体之间匹配的实体,第一实体列表中还包括待查询的实体。
第一处理单元402,用于若根据第一实体列表,从预存的HASH结构中获取到与第一实体列表中的实体匹配的关系链,则合并各关系链和第一实体列表,得到查询结果;其中,预存的HASH结构中包括至少一个实体,预存的HASH结构中的实体之间具有关联关系;关系链包括与第一实体列表中的实体匹配的至少一个实体。
第二处理单元403,用于返回查询结果。
一个示例中,第一处理单元402,包括:
第一处理模块4021,用于从预存的HASH结构中获取与第一实体列表中的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第i个实体;其中,i为大于等于1的正整数。
第二处理模块4022,重复以下步骤,直至达到第一预设条件:用于根据第i个实体,从预存的HASH结构中获取与第i个实体之间具有关联关系的第i+1个实体。
第三处理模块4023,用于确定i的取值加1。
其中,第一预设条件为查询不到与第i个实体之间具有关联关系的第i+1个实体。
一个示例中,装置还包括:
第三处理单元404,用于响应于更新数据请求,在List结构中存储更新数据请求所指示的实体、以及更新数据请求所指示的实体的关联关系;其中,更新数据请求表征用于存储数据,更新数据请求中包括待存储的实体、与待存储的实体之间具有关联关系的实体。
同时,第四处理单元405,用于根据更新数据请求所指示的实体的关联关系,生成预存的HASH结构。
一个示例中,装置还包括:
第五处理单元406,用于针对List结构中的每一实体,将List结构中的实体和实体的关联关系,同步到图数据库中,并在预存的HASH结构中删除该实体的关联关系。
一个示例中,List结构和预存的HASH结构为Redis内存数据库中存储的两种数据类型;或者,List结构和预存的HASH结构为内存中存储的两种数据类型。
一个示例中,第一查询单元401,包括:
第四处理模块4011,用于从图数据库中获取与待查询的实体之间具有关联关系的实体,确定该具有关联关系的实体,为第j个实体;其中,j为大于等于1的正整数。
第五处理模块4012,重复以下步骤,达到第二预设条件:用于根据第j个实体,从图数据库中获取与第j个实体之间具有关联关系的第j+1个实体。
第六处理模块4013,用于确定j的取值加1。
其中,第二预设条件为查询不到与第j个实体之间具有关联关系的第j+1个实体。
一个示例中,第一处理单元402,包括:
第七处理模块4024,用于合并各关系链所指示的实体和第一实体列表中的实体,得到初始结果。
第八处理模块4025,用于根据预设的实体与优先级之间的对应关系,确定初始结果中的实体的优先级。
第九处理模块4026,用于根据述初始结果中的实体的优先级,调整初始结果中的实体的次序,得到查询结果。
一个示例中,装置还包括:
第六处理单元407,用于若根据第一实体列表,从预存的HASH结构中未获取到与第一实体列表中的实体匹配的关系链,则确定第一实体列表,为查询结果。
本实施例提供的装置,可以参见上述实施例提供的方法,技术过程和效果相同,不再赘述。
图5为本申请实施例提供一种电子设备的结构示意图,如图5所示,该电子设备,包括:发送器501、接收器502、存储器503和处理器504。
存储器503,用于存储计算机指令。
处理器504,用于运行存储器503存储的计算机指令实现前述实施例提供任一实现方式的方法的技术方案。
接收器502,用于接收其他设备发送的指令和数据。
发送器501,用于向外部设备发送指令和数据。
图6为根据一示例性实施例示出的一种电子设备的框图,该设备可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)接口812,传感器组件814,以及通信组件816。
处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
多媒体组件808包括在装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器820执行以完成上述方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本申请还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,计算机执行指令被处理器执行时用于实现上述实施例提供的方法。
本申请还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述实施例提供的方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求书指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求书来限制。
- 基于数据更新生成车险报价单的方法、装置和计算机设备
- 基于分布式数据库的信息查询方法及装置、电子设备
- 一种存储器数据更新方法、装置、设备及存储介质
- 响应数据更新方法、装置及计算机设备
- 基于大数据的标签数据更新方法、装置、介质及电子设备
- 基于大数据的业务数据更新方法、装置、设备及存储介质