CN115080807A - 数据查询方法、装置及电子设备 - Google Patents
数据查询方法、装置及电子设备 Download PDFInfo
- Publication number
- CN115080807A CN115080807A CN202210854777.9A CN202210854777A CN115080807A CN 115080807 A CN115080807 A CN 115080807A CN 202210854777 A CN202210854777 A CN 202210854777A CN 115080807 A CN115080807 A CN 115080807A
- Authority
- CN
- China
- Prior art keywords
- degree
- edges
- edge
- node
- query
- 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
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012216 screening Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims abstract description 11
- 238000005070 sampling Methods 0.000 claims description 8
- 238000004422 calculation algorithm Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 7
- 238000001914 filtration Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开关于一种数据查询方法、装置及电子设备。应用于图数据库,所述方法包括:响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种数据查询方法、装置及电子设备。
背景技术
图数据库是一种针对海量的图网络结构形式的数据(也称图数据)存储和遍历查询而设计的数据库。
在实际应用中大规模的图数据通常遵循幂律分布,超级节点关联的出度边或入度边的规模可能超过百万、甚至千万级别。这样的情况下,响应查询请求以在图数据库中进行遍历查询时,需要进行多跳遍历,而每跳遍历的结果数量也将成指数增加,从而导致爆炸性结果。假设图数据中节点的出度边的数量平均为100条,那么经过3跳遍历的结果将达到100万条。此时对图数据库的I/O、CPU、网络带宽等资源将消耗巨大,导致查询耗时大幅上升。
因此,如何降低图数据库进行遍历查询的耗时成为亟待解决的问题。
发明内容
本公开提供一种数据查询方法、装置及电子设备,以至少解决相关技术中存在图数据库进行遍历查询的耗时较长的问题。本公开的技术方案如下:
根据本公开实施例的第一方面,提供一种数据查询方法,应用于图数据库,所述方法包括:
响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
可选的,在所述将筛选出的出度边指向的目的数据节点确定为新的起始节点之前,还包括:
从所述第一数量的出度边中,筛选出第二数量的目标出度边;
所述将筛选出的出度边指向的目的数据节点确定为新的起始节点,包括:
将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
可选的,所述图数据库中的出度边具有时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
所述遍历所述图数据库中与所述起始节点关联的出度边,包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
可选的,所述从所述出度边中筛选出第一数量的出度边,包括:
获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
可选的,所述基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边,包括:
基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
可选的,所述获取与所述起始节点关联的各个出度边的特征值,包括:
获取各个出度边对应的权重属性;其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;
基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
可选的,所述基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,包括:
基于加权随机采样算法,为各个出度边生成对应的随机数;
根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
根据本公开实施例的第二方面,提供一种数据查询装置,应用于图数据库,包括:
响应单元,被配置为执行响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
遍历单元,被配置为执行遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
循环单元,被配置为执行将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
返回单元,被配置为执行将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
可选的,在所述循环单元之前,还包括:
筛选单元,被配置为执行从所述第一数量的出度边中,筛选出第二数量的目标出度边;
所述循环单元,进一步被配置为执行将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
可选的,所述图数据库中的出度边具有时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
所述遍历单元中遍历所述图数据库中与所述起始节点关联的出度边,进一步包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
可选的,所述遍历单元中从所述出度边中筛选出第一数量的出度边,进一步包括:
获取子单元,被配置为执行获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
确定子单元,被配置为执行基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
可选的,所述确定子单元,进一步被配置为执行基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
可选的,所述获取子单元,进一步被配置为执行获取各个出度边对应的权重属性;其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
可选的,所述获取子单元中基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,进一步包括:
基于加权随机采样算法,为各个出度边生成对应的随机数;根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
根据本公开实施例的第三方面,一种电子设备,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现前述任一项所述的数据查询方法。
根据本公开实施例的第四方面,一种计算机可读存储介质,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行前述任一项所述的数据查询方法。
根据本公开实施例的第五方面,一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现前述任一项所述的数据查询方法。
本公开的实施例提供的技术方案至少带来以下有益效果:在图数据库进行数据查询过程中每一轮的遍历最多确定第一数量的与起始节点关联的出度边,以及最多将第一数量的出度边指向的目标数据节点确定为下一轮遍历时新的起始节点。如此,通过限制下一轮遍历查询的规模从而减少查询耗时。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理,并不构成对本公开的不当限定。
图1是根据一示例性实施例示出的一种数据查询方法的流程图。
图2是根据一示例性实施例示出的图数据库的架构示意图。
图3是根据一示例性实施例示出的反映目的数据节点重要程度的示意图。
图4是根据一示例性实施例示出的一种数据查询装置的框图。
图5是根据一示例性实施例示出的一种电子设备的结构图。
具体实施方式
为了使本领域普通人员更好地理解本公开的技术方案,下面将结合附图,对本公开实施例中的技术方案进行清楚、完整地描述。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
图1是根据一示例性实施例示出的一种数据查询方法的流程图,应用于图数据库,包括以下步骤:
步骤110,响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
步骤120,遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
步骤130,将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
步骤140,将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
为了便于理解,以下针对本说明书中图数据库涉及的相关技术概念进行说明。
在图数据库中可以将单个的数据抽象为数据节点(Vertex),并且对于存在关联的两个数据节点之间以“边(Edgr)”进行链接。所述边还可以设置有属性,例如后续实施例中涉及到的权重属性、时间属性等。
在一示例性的实施例,所述图数据库中的出度边可以具有上述的时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
相应地,步骤120中的所述遍历所述图数据库中与所述起始节点关联的出度边,可以包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
在实际应用中,数据之间的关联程度一般与时间的远近相关,例如对于相关性高的数据,在时间上通常更为接近。以余额为例,今日余额与昨日余额之间的相关性,显然高于今日余额与一周前的余额;或者,今日中午余额与昨日中午余额之间的相关性,显然低于今日中午余额与今日上午余额。
基于此,本说明书通过设置边的时间属性,可以使与起始节点相关的出度边在时间上有序可寻,进而可以过滤掉请求方要求的时间范围外的数据,而只对时间范围内的数据进行遍历查询。如此,可以进一步减少图数据库遍历查询的数据量,从而进一步降低遍历查询的耗时。
图数据的边可以具有方向,对于某个数据节点,如果存在一条边是从该数据节点出发,指向另一个数据节点,那么对于该数据节点来说,这条边可以称为出度边;而对于另一个数据节点来说,由于这条边是指向自身的,因此这条边可以称为入度边。
以下参考图2所示的图数据库的示意图加以说明。在图2中,数据节点V0和V1之间存在关联,因此可以通过边进行链接;进一步的,由于该边的方向是从V0指向V1的,因此,对于V0来说,该边属于出度边,而对于V1来说,该边属于入度边。
以下继续以图2为例介绍图数据库的构成。如图2所示,所述图数据库可以包括图查询引擎(QueryEngine)和分布式存储引擎(StorageEngine)。
其中,所述分布式存储引擎包括若干的存储引擎;每一次参与遍历查询的存储引擎的数量可以根据起始节点的数量决定。在图2中,由于起始节点有3个(即V1、V2和V3),因此对应的存储引擎也有3个。
所述图查询引擎用于确定遍历查询的起始节点,并向每个起始节点对应的存储引擎并行请求执行遍历查询;以及收集每个存储引擎返回的出度边,并从中确定最多第一数量的目标出度边,进一步将所述目标出度边对应的目的数据节点确定为新的起始节点,以进行下一轮遍历查询。
所述存储引擎基于查询请求指定的起始节点,遍历图数据库以获取与所述起始节点关联的出度边。
在本说明书中,所述图数据库支持设置存储引擎在每次遍历查询后,最多能够返回给图查询引擎的与起始节点关联的出度边的数量,这一数量可以称为第一数量N;也就是说存储引擎每次遍历查询后最多可以返回给图查询引擎N个与起始节点关联的出度边。
以下依然以图2所示的图数据库为例,在实现时,(假设N大于3)图数据库中的图查询引擎在接收到请求方发起的查询请求后,可以以该查询请求指定的查询数据对应在图数据库中的数据节点(如图2中的V0)为起始节点,请求对应的存储引擎执行第一轮的遍历查询:
针对起始节点V0,存储引擎可以遍历图数据库中与V0关联的3条出度边:分别为V0指向V1的出度边、V0指向V2的出度边和V0指向V3的出度边;由于N大于3,存储引擎可以将这3条出度边返回给图查询引擎。
上述示例介绍的是查询到的与起始节点关联的出度边的数量小于或等于第一数量N的情况,这种情况较为简单,直接将查询到的出度边返回给图查询引擎即可;但是,当查询到的与起始节点关联的出度边的数量大于第一数量N时,则需要从查询到的与起始节点关联的出度边中筛选出第一数量个的出度边。以下将进一步介绍如何从遍历到的大于N条的出度边中确定返回给图查询引擎的N条的出度边。
在实现时,存储引擎在对每个起始节点进行遍历查询时,可以构建一个大小为第一数量N的容器vector;存储引擎可以将先遍历到的N个的出度边加入容器,则此时容器已满;对于后续遍历到的出度边,则可以通过与容器中已有出度边中最小特征值(value_min)进行比较;如果该遍历到的出度边的特征值(value_curr)大于 value_min,将该遍历到的出度边替换容器中最小特征值对应的出度边。如此,在存储引擎遍历的所有出度边中总是会将数据重要程度更高的出度边作为遍历结果返回给图查询引擎。
在一示例性的实施例中,步骤120中的所述从所述出度边中筛选出第一数量的出度边,可以包括:
获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
应用上述示例,由于特征值可以用于表征出度边指向的目的数据节点的重要程度,而请求方想要查询的数据通常也是重要程度高的数据;那些重要程度低的数据请求方一般不关注即使查询到了也不会使用;因此通过特征值可以优先将重要程度更高的目的数据节点筛选出来作为下一轮遍历查询的起始节点。如此可以确保返回给请求方的尽量是重要程度高的数据,从而保障查询结果的准确性。
在一示例性的实施例中,所述基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边,可以包括:
基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
如前所述特征值表征的是出度边指向的目的数据节点的重要程度;通常,特征值越大,数据节点的重要程度越高;反之,特征值越小,数据节点的重要程度越低。基于此,在本说明书中可以根据特征值的大小对于起始节点关联的各个出度边进行排序,并从大到小依次筛选出第一数量个的出度边。如此,优先将重要程度更高的目的数据节点筛选出来作为下一轮遍历查询的起始节点,从而确保返回给请求方的尽量是重要程度高的数据,以保障查询结果的准确性。
在一示例性的实施例中,所述获取与所述起始节点关联的各个出度边的特征值,可以包括:
获取各个出度边对应的权重属性(weight);其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;
基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
在实际应用中,对于某个数据节点是否重要,可以通过该数据节点具有的入度边的数量进行判断;一般的,入度边越多说明数据越重要。
如图3所示反映目的数据节点重要程度的示意图,在以V1、V2和V3作为起始节点进行遍历查询时,遍历到的出度边对应的目的数据节点分别为:V1_1、V1_2、V1_m、V1_n、V2_1、V2_2、V2_m、V2_n、V3_1、V3_2、V3_m、V3_n;
其中,V1_m的入度边有2条,V1_n的入度边有3条,V3_1的入度边有2条;即指向的V1_n的出度边的权重属性大于指向的V1_m的出度边的权重属性;指向的V1_m的出度边的权重属性等于指向的V3_1的出度边的权重属性;指向的V3_1的出度边的权重属性大于剩余出度边的权重属性。说明V1_n的数据的重要程度最高,V1_m和V3_1的数据的重要程度次高,剩余的数据节点的重要程度最低。
因此,在筛选N个的出度边时,由于指向V1_n的3条出度边的权重属性最高,因此对应的特征值也相应最高,可以优先将这3条出度边筛选出来。如果此时筛选出的出度边的数量依然小于N,则再将权重属性次高的指向V1_m和V3_1的出度边筛选出来;如果此时筛选出的出度边的数量依然小于M,则根据特征值的大小将剩余出度边依次筛选出来,直至筛选出的出度边的数量达到N个。
通过上述实施例,利用目的数据节点的入度边的数量,作为衡量目的数据节点的重要程度的依据,可以快速确定各个出度边对应的权重属性,进而提高数据查询速度。
然而,在实际应用中,经常出现不同目的数据节点的入度边的数量相同的情况,从而导致不同出度边的特征值经常相同;在特征值相同较为普遍时,容易出行难以根据特征值,从与起始节点关联的各个出度边中确定出第一数量的出度边。
为此,在一示例性的实施例中,所述基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,可以包括:
基于加权随机采样算法(Weighted Random Sampling),为各个出度边生成对应的随机数;
根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
在实现时,可以以出度边的随机数为底,以出度边指向的目的数据节点的入度边的数量的倒数为指数,计算乘方;并将乘方计算的结果确定为出度边的特征值。计算公式如下所示:
Value=ui^(1/weight);其中,Value表示出度边的特征值,ui表示出度边对应的随机数,weight表示出度边的权重属性(即出度边指向的目的数据节点的入度边的数量)。进一步的,ui=random(0,1),表示随机数为0至1之间的数值。
通过上述实施例,利用加权随机采样算法生成的随机数,与出度边的权重属性一起计算特征值;可以离散由于权重属性相同导致的特征值大量相同,难以有效筛选出度边的问题。
在介绍了各个存储引擎是如何从所述出度边中筛选出第一数量的出度边之后,可以发现在图数据库进行数据查询过程中每一轮的遍历最多确定第一数量的与起始节点关联的出度边,以及最多将第一数量的出度边指向的目标数据节点确定为下一轮遍历时新的起始节点。如此,通过限制下一轮遍历查询的规模从而减少查询耗时。
然而,即使限制了每个存储引擎返回的出度边数量,但是对于图查询引擎来说,下一轮新的起始节点的数量依然有K*N(K为本轮遍历查询时存储引擎的数量),因此下一轮遍历查询的规模依然很大。
为此,在一示例性的实施例中,在步骤130将筛选出的出度边指向的目的数据节点确定为新的起始节点之前,还可以包括:
从所述第一数量的出度边中,筛选出第二数量的目标出度边;其中,所述第二数量可以小于所述第一数量;
相应地,所述步骤130,可以包括:
将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
在本说明书中,所述图数据库还支持设置图查询引擎从各个存储引擎返回的出度边中最多能够筛选出的目标出度边的数量,这一数量可以称为第二数量M;也就是说图查询引擎在每次遍历查询后从最多K*N个的出度边中,最多能够筛选出M个的目标出度边。进而,将这M个的目标出度边指向的目的数据节点作为下一轮遍历查询时新的起始节点。
通过上述实施例,在筛选出第一数量的出度边的基础上,进一步从中筛选出第二数量的目的出度边,从而将下一轮遍历查询的规模限制在第二数量个的起始节点;如此可以进一步减少图数据库遍历查询的数据量,从而进一步降低遍历查询的耗时。
继续以图2所示的图数据库为例加以说明。在图2中,分别针对V1,V2和V3这3个起始节点,各自由对应的存储引擎遍历图数据库中与起始节点关联的出度边,并将从遍历到的出度边中筛选出第一数量N个的出度边返回给图查询引擎。以V1这一起始节点为例,存储引擎可以筛选出第一数量N条的出度边:分别为V1指向V1_1的出度边、V1指向V1_2的出度边、…、V1指向V1_m的出度边、…、V1指向V1_n的出度边。
接着,图查询引擎在接收到3个存储引擎返回的总数3N条的出度边后,进一步可以从中筛选出第二数量M个的目标出度边。
这里图查询引擎筛选第二数量M个的目标出度边的过程与前述存储引擎筛选第一数量N个的出度边相同,同样可以是基于出度边的特征值进行筛选;因此这里关于筛选过程不再进行赘述。
图查询引擎在确定了最多M个的目标出度边之后,将目标出度边对应的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询。然后,图查询引擎就可以将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
综上,本说明书实施例通过在图数据库进行数据查询过程中每一轮的遍历最多确定第一数量的与起始节点关联的出度边,以及最多将第一数量的出度边指向的目标数据节点确定为下一轮遍历时新的起始节点。如此,通过限制下一轮遍历查询的规模从而减少查询耗时。
与前述图1所示数据查询方法实施例相对应,本说明书还提供了图4所示数据查询装置的实施例。所述装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。
图4是与前述图1对应的一种数据查询装置框图。应用于图数据库,参照图4,该装置包括响应单元310,遍历单元320、循环单元330和返回单元340。
其中,响应单元310,被配置为执行响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
遍历单元320,被配置为执行遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
循环单元330,被配置为执行将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
返回单元340,被配置为执行将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
可选的,在所述循环单元330之前,还包括:
筛选单元,被配置为执行从所述第一数量的出度边中,筛选出第二数量的目标出度边;
所述循环单元330,进一步被配置为执行将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
可选的,所述图数据库中的出度边具有时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
所述遍历单元320中遍历所述图数据库中与所述起始节点关联的出度边,进一步包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
可选的,所述遍历单元320中从所述出度边中筛选出第一数量的出度边,进一步包括:
获取子单元,被配置为执行获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
确定子单元,被配置为执行基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
可选的,所述确定子单元,进一步被配置为执行基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
可选的,所述获取子单元,进一步被配置为执行获取各个出度边对应的权重属性;其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
可选的,所述获取子单元中基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,进一步包括:
基于加权随机采样算法,为各个出度边生成对应的随机数;根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
在示例性实施例中,还提供了一种电子设备,包括处理器;用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以完成上述任一实施例所述的数据查询方法。
在示例性实施例中,还提供了一种包括指令的计算机可读存储介质,当该计算机可读存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行上述任一实施例所述的数据查询方法。
在示例性实施例中,还提供一种计算机程序产品,包括计算机程序/指令,所述计算机程序或指令被处理器执行时完成上述任一实施例所述的数据查询方法。
图5是根据本公开的实施例示出的一种电子设备的示意框图。参照图5,电子设备400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件418。上述电子设备可以采用类似的硬件架构。
处理组件402通常控制电子设备400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述三维虚拟形象的生成方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在电子设备400的操作。这些数据的示例包括用于在电子设备400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为电子设备400的各种组件提供电力。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为电子设备400生成、管理和分配电力相关联的组件。
多媒体组件408包括在电子设备400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当电子设备400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的或具有焦距和光学变焦能力的光学透镜系统。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当电子设备400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件418发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,选项等。这些选项可包括但不限于:主页选项、音量选项、启动选项和锁定选项。
传感器组件414包括一个或多个传感器,用于为电子设备400提供各个方面的状态评估。例如,传感器组件414可以检测到电子设备400的打开/关闭状态,组件的相对定位,例如所述组件为电子设备400的显示器和小键盘,传感器组件414还可以检测电子设备400或电子设备400一个组件的位置改变,用户与电子设备400接触的存在或不存在,电子设备400方位或加速/减速和电子设备400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件418被配置为便于电子设备400和其他设备之间有线或无线方式的通信。电子设备400可以接入基于通信标准的无线网络,如WiFi,运营商网络(如2G、3G、4G或4G),或它们的组合。在一个示例性实施例中,通信组件418经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件418还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在本公开一实施例中,电子设备400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述任一实施例所述的数据查询方法。
在本公开一实施例中,还提供了一种包括指令的计算机可读存储介质,例如包括指令的存储器404,上述指令可由电子设备400的处理器420执行以完成上述任一实施例所述的数据查询方法。例如,所述计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
Claims (17)
1.一种数据查询方法,其特征在于,应用于图数据库,所述方法包括:
响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
2.根据权利要求1所述的方法,其特征在于,在所述将筛选出的出度边指向的目的数据节点确定为新的起始节点之前,还包括:
从所述第一数量的出度边中,筛选出第二数量的目标出度边;
所述将筛选出的出度边指向的目的数据节点确定为新的起始节点,包括:
将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
3.根据权利要求1所述的方法,其特征在于,所述图数据库中的出度边具有时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
所述遍历所述图数据库中与所述起始节点关联的出度边,包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
4.根据权利要求1所述的方法,其特征在于,所述从所述出度边中筛选出第一数量的出度边,包括:
获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
5.根据权利要求4所述的方法,其特征在于,所述基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边,包括:
基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
6.根据权利要求4所述的方法,其特征在于,所述获取与所述起始节点关联的各个出度边的特征值,包括:
获取各个出度边对应的权重属性;其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;
基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
7.根据权利要求6所述的方法,其特征在于,所述基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,包括:
基于加权随机采样算法,为各个出度边生成对应的随机数;
根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
8.一种数据查询装置,其特征在于,应用于图数据库,包括:
响应单元,被配置为执行响应于针对图数据库的查询请求,确定所述查询请求指定的查询数据对应在所述图数据库中的数据节点,并以所述数据节点为起始节点执行以下遍历查询:
遍历单元,被配置为执行遍历所述图数据库中与所述起始节点关联的出度边,并从所述出度边中筛选出第一数量的出度边;其中,所述出度边表示所述图数据库中从所述起始节点出发指向其他数据节点的有向边;
循环单元,被配置为执行将筛选出的出度边指向的目的数据节点确定为新的起始节点,重复执行上述遍历查询,直到确定出的新的起始节点没有关联的出度边时结束遍历查询;
返回单元,被配置为执行将所述遍历查询过程中确定的所述目的数据节点对应的数据返回给发起所述查询请求的请求方。
9.根据权利要求8所述的装置,其特征在于,在所述循环单元之前,还包括:
筛选单元,被配置为执行从所述第一数量的出度边中,筛选出第二数量的目标出度边;
所述循环单元,进一步被配置为执行将筛选出的所述目标出度边指向的目的数据节点确定为新的起始节点。
10.根据权利要求8所述的装置,其特征在于,所述图数据库中的出度边具有时间属性,所述时间属性表示所述出度边指向的其他数据节点存储到所述图数据库中的存储时刻;
所述遍历单元中遍历所述图数据库中与所述起始节点关联的出度边,进一步包括:
根据所述查询请求指定的时间范围,遍历所述图数据库中与所述起始节点关联、并且时间属性位于所述时间范围内的出度边。
11.根据权利要求8所述的装置,其特征在于,所述遍历单元中从所述出度边中筛选出第一数量的出度边,进一步包括:
获取子单元,被配置为执行获取与所述起始节点关联的各个出度边的特征值;其中,所述特征值用于表征出度边指向的目的数据节点的重要程度;
确定子单元,被配置为执行基于所述特征值,从与所述起始节点关联的各个出度边中确定出所述第一数量的出度边。
12.根据权利要求11所述的装置,其特征在于,所述确定子单元,进一步被配置为执行基于所述特征值的大小,对与所述起始节点关联的各个出度边进行排序,从大到小依次获取第一数量的出度边。
13.根据权利要求11所述的装置,其特征在于,所述获取子单元,进一步被配置为执行获取各个出度边对应的权重属性;其中,所述权重属性包括出度边指向的目的数据节点的入度边的数量,所述入度边表示所述图数据库中从其他数据节点出发指向所述目的数据节点的有向边;基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值;其中,所述入度边的数量与所述特征值成正相关关系。
14.根据权利要求13所述的装置,其特征在于,所述获取子单元中基于所述出度边指向的目的数据节点的入度边的数量,计算出度边的特征值,进一步包括:
基于加权随机采样算法,为各个出度边生成对应的随机数;根据各个出度边指向的目的数据节点的入度边的数量和各个出度边的随机数,计算各个出度边的特征值。
15.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令,以实现如权利要求1-7中任一项所述的数据查询方法。
16.一种计算机可读存储介质,其特征在于,当所述计算机可读存储介质中的指令由电子设备的处理器执行时,使得所述电子设备能够执行如权利要求1-7中任一项所述的数据查询方法。
17.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-7中任一项所述的数据查询方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210854777.9A CN115080807A (zh) | 2022-07-20 | 2022-07-20 | 数据查询方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210854777.9A CN115080807A (zh) | 2022-07-20 | 2022-07-20 | 数据查询方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115080807A true CN115080807A (zh) | 2022-09-20 |
Family
ID=83260559
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210854777.9A Pending CN115080807A (zh) | 2022-07-20 | 2022-07-20 | 数据查询方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115080807A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180173760A1 (en) * | 2016-12-15 | 2018-06-21 | Microsoft Technology Licensing, Llc | Utilization of probabilistic characteristics for reduction of graph database traversals |
CN111462824A (zh) * | 2020-06-04 | 2020-07-28 | 东北大学 | 一种面向基因调控网络的可达概率查询方法 |
CN113254527A (zh) * | 2021-04-22 | 2021-08-13 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
CN113569057A (zh) * | 2021-07-29 | 2021-10-29 | 辽宁大学 | 一种面向本体标签知识图谱的样例查询方法 |
CN113760971A (zh) * | 2021-11-09 | 2021-12-07 | 通联数据股份公司 | 用于检索图数据库的数据的方法、计算设备和存储介质 |
CN114564752A (zh) * | 2022-04-28 | 2022-05-31 | 蓝象智联(杭州)科技有限公司 | 一种基于图联邦的黑名单传播方法 |
CN114662012A (zh) * | 2022-04-11 | 2022-06-24 | 东北大学 | 一种面向基因调控网络的社区查询分析方法 |
-
2022
- 2022-07-20 CN CN202210854777.9A patent/CN115080807A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180173760A1 (en) * | 2016-12-15 | 2018-06-21 | Microsoft Technology Licensing, Llc | Utilization of probabilistic characteristics for reduction of graph database traversals |
CN111462824A (zh) * | 2020-06-04 | 2020-07-28 | 东北大学 | 一种面向基因调控网络的可达概率查询方法 |
CN113254527A (zh) * | 2021-04-22 | 2021-08-13 | 杭州欧若数网科技有限公司 | 分布式存储图数据的优化方法、电子装置和存储介质 |
CN113569057A (zh) * | 2021-07-29 | 2021-10-29 | 辽宁大学 | 一种面向本体标签知识图谱的样例查询方法 |
CN113760971A (zh) * | 2021-11-09 | 2021-12-07 | 通联数据股份公司 | 用于检索图数据库的数据的方法、计算设备和存储介质 |
CN114662012A (zh) * | 2022-04-11 | 2022-06-24 | 东北大学 | 一种面向基因调控网络的社区查询分析方法 |
CN114564752A (zh) * | 2022-04-28 | 2022-05-31 | 蓝象智联(杭州)科技有限公司 | 一种基于图联邦的黑名单传播方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101813195B1 (ko) | 연락처 정보 추천 방법, 장치, 프로그램 및 기록매체 | |
EP4109827A1 (en) | Group display method and device | |
CN105517112B (zh) | 显示WiFi网络信息的方法和装置 | |
CN106250430A (zh) | 智能设备列表的排序方法及装置 | |
CN112187862A (zh) | 一种任务处理方法、装置和用于任务处理的装置 | |
CN112783779A (zh) | 测试用例的生成方法、装置、电子设备和存储介质 | |
CN113239232A (zh) | 图神经网络推荐系统、方法、装置、电子设备及存储介质 | |
WO2024159967A1 (zh) | 政务数据资源目录的更新方法、装置、电子设备及介质 | |
CN114428589A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
CN111382161B (zh) | 状态数据处理方法、装置、电子设备及存储介质 | |
US11797218B2 (en) | Method and device for detecting slow node and computer-readable storage medium | |
CN116303303A (zh) | 批量数据处理方法、装置、设备及介质 | |
CN116841713A (zh) | 任务扫描方法、装置、电子设备以及存储介质 | |
CN115080807A (zh) | 数据查询方法、装置及电子设备 | |
CN113177162B (zh) | 搜索结果的排序方法、装置、电子设备和存储介质 | |
CN112988822B (zh) | 数据查询方法、装置、设备、可读存储介质以及产品 | |
CN110909886B (zh) | 一种机器学习网络运行方法、装置及介质 | |
CN114036917A (zh) | 报告生成方法、装置、计算机设备及存储介质 | |
CN114066370A (zh) | 库存服务调用方法、装置、设备、存储介质及程序产品 | |
CN114281859A (zh) | 数据处理方法、设备及存储介质 | |
CN110046035B (zh) | 系统切换方法、装置及电子设备 | |
CN111625536B (zh) | 一种数据访问方法及装置 | |
CN111814968B (zh) | 用于机器学习模型的分布式训练的方法和装置 | |
CN114885013B (zh) | 打包信息上报方法、装置、电子设备及存储介质 | |
CN118193603A (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: 20220920 |
|
RJ01 | Rejection of invention patent application after publication |