CN112307272B - 确定对象之间关系信息的方法、装置、计算设备及存储介质 - Google Patents
确定对象之间关系信息的方法、装置、计算设备及存储介质 Download PDFInfo
- Publication number
- CN112307272B CN112307272B CN202011187291.1A CN202011187291A CN112307272B CN 112307272 B CN112307272 B CN 112307272B CN 202011187291 A CN202011187291 A CN 202011187291A CN 112307272 B CN112307272 B CN 112307272B
- Authority
- CN
- China
- Prior art keywords
- vertex
- order
- distance
- vertexes
- path length
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 44
- 238000012216 screening Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 claims description 17
- 241000544061 Cuculus canorus Species 0.000 claims description 15
- 238000004364 calculation method Methods 0.000 claims description 9
- 230000003993 interaction Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 15
- 238000001914 filtration Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
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/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
技术领域
本申请涉及数据库技术领域,特别涉及确定对象之间关系信息的方法、装置、计算设备及存储介质。
背景技术
在一些应用场景中,图式数据结构(简称图)可以用于表示对象之间的关系信息。图包括顶点和边。顶点可以表示对象。边表示对象之间的关系信息。这里,图可以用于表征社交网路、电商网络或者电信网络等等关系网络。顶点例如可以表示用户标识、商品标识、通信节点标识等对象。关系信息例如可以表示社交关系、用户与商品之间关系或者通信节点之间关系等等。
目前,为了在图中查询两个顶点之间的n阶路径(即确定两个对象之间的关系信息),路径查询方案通常采用深度优先遍历或广度优先遍历方式,从一个顶点进行n阶遍历操作。在n的阶数较大时,n阶深度的遍历方式计算复杂度较高。
因此,如何提高对象之间关系信息的查询效率是需要解决的技术问题。
发明内容
本申请提出了定对象之间关系信息的方法、装置、计算设备及存储介质,能够提高对象之间关系信息的查询效率。
根据本申请一个方面,提供一种确定对象之间关系信息的方法,包括:
获取图的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度;
根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,其中,所述第一距离表示从第一顶点出发的遍历阶数,所述第二距离表示从第二顶点出发的遍历阶数;
根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数,其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度;
从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中;
从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,并且,对于每种路径长度,在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,将该顶点确定为该种路径长度的一个中间点;
对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径。
在一些实施例中,所述根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,包括:
确定所述最长路径长度除以二的商,并将该商作为第一距离;
将最长路径长度与第一距离的差值作为第二距离。
在一些实施例中,所述从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中,包括:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中;
所述从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,包括:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。
在一些实施例中,上述方法进一步包括:获取对图中顶点的筛选条件;
所述从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中,包括:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在对应阶数的记录表中;
所述从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,包括:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在记录表中。
在一些实施例中,所述对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径,包括:
对于每种路径长度的每个中间点,基于第一顶点的记录表,确定该中间点到第一顶点的路径;
对于每种路径的每个中间点,基于第二顶点的记录表,确定该中间点到第二顶点的路径;
对于每种路径的每个中间点,根据该中间点到第一顶点的路径和到第二顶点的路径,确定第一顶点与第二顶点之间的该种路径长度的包含该中间点的每条路径。
根据本申请一个方面,提供一种确定对象之间关系信息的装置,包括:
接口单元,获取图的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度;
管理单元,根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,其中,所述第一距离表示从第一顶点出发的遍历阶数,所述第二距离表示从第二顶点出发的遍历阶数;根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数,其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度;
查询单元,从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中;从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,并且,对于每种路径长度,在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,将该顶点确定为该种路径长度的一个中间点;
路径确定单元,对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径。
在一些实施例中,所述查询单元根据下述方式从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中;
所述查询单元根据下述方式从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。
在一些实施例中,所述接口单元进一步用于:获取对图中顶点的筛选条件;
所述查询单元根据下述方式从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在对应阶数的记录表中;
所述查询单元根据下述方式从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在记录表中。
根据本申请一个方面,提供一种计算设备,包括:
存储器;
处理器;
程序,存储在该存储器中并被配置为由所述处理器执行,所述程序包括用于执行确定对象之间关系信息的方法的指令。
根据本申请一个方面,提供一种存储介质,存储有程序,所述程序包括指令,其特征在于,所述指令当由计算设备执行时,使得所述计算设备执行确定对象之间关系信息的方法。
综上,根据本申请实施例的确定对象之间关系信息的方案,通过检索两个顶点之间的中间点的方式和检索中间点分别到两个顶点的路径方式,可以避免按照两个顶点之间的阶数进行遍历检索操作,并按照第一距离和第二距离进行遍历操作,从而减少的计算复杂度,提升了对关系信息的查询效率。例如,假定两个顶点之间的阶数为r,按照阶数r遍历的复杂度为r的n次方。本申请实施例的确定对象之间关系信息的方案可以将复杂度为r的n次方的图算法简化成了多个r的(n/2)次方的计算过程,从而极大的减少的计算复杂度,提升了查询效率。另外,通过将顶点记录在记录表中,本申请实施例的确定对象之间关系信息的方案能够避免在内存中直接存储顶点,而可以在哈希表中存储顶点的映射结果,从而能够节省存储资源,进而便于对规模较大的图进行查询操作。
附图说明
图1示出了根据本申请一些实施例的应用场景的示意图;
图2示出了图管理系统120的示意图;
图3示出了根据本申请一些实施例的确定对象之间关系信息的方法300的流程图;
图4示出了根据本申请一些实施例的图管理系统120中图式数据结构的示意图;
图5示出了根据本申请一些实施例的确定第一顶点的记录表的示意图;
图6示出了根据本申请一些实施例的确定第二顶点的记录表的示意图;
图7示出了根据本申请一些实施例的确定两个顶点的遍历阶数的方法700的流程图;
图8示出了根据本申请一些实施例的确定两个顶点之间路径的方法800的流程图;
图9示出了根据本申请一些实施例的确定中间点到第一顶点的路径的示意图;
图10示出了根据本申请一些实施例的确定中间点到第二顶点的路径的示意图;
图11示出了根据本申请一些实施例的第一顶点和第二顶点之间的路径的示意图;
图12示出了根据本申请一些实施例的确定对象之间关系信息的装置1200的流程图;
图13示出了根据本申请一些实施例的计算设备的示意图。
具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请进一步详细说明。
图1示出了根据本申请一些实施例的应用场景的示意图。
如图1所示,应用场景可以包括终端110和图管理系统120。其中,图管理系统120可以管理图式数据结构的数据。图管理系统120可以管理分布式的图或者非分布式的图,本申请对此不做限制。图管理系统120中图用于表示对象之间的关系信息。这里,关系信息例如可以表示社交关系、用户与商品之间关系或者通信节点之间关系等等。
终端110可以是笔记本电脑、服务器等各种设备。终端110可以确定待确定关系信息的两个对象。换言之,终端110可以确定图管理系统120的图中两个顶点。另外,终端110还可以确定两个顶点之间待查询的路径长度。例如,终端110可以指定待查询的路径长度为5阶以内(即指定路径长度为1、2、3、4和5)。又例如,终端110可以执行待查询的路径长度为5阶。
终端110可以向图管理系统120发送确定的两个顶点和待查询的路径长度。在此基础上,图管理系统120可以查询两个顶点之间的可达路径。这里,可达路径可以表示顶点之间的关系信息。
图2示出了图管理系统120的示意图。
如图2所示,图管理系统120可以包括交互层121、图计算引擎122和图数据库123。交互层121可以与终端110等设备进行通信。交互层121可以接收查询任务。查询任务例如可以包括两个顶点和两个顶点之间待查询的路径长度。图计算引擎122可以执行查询任务,以便通过图数据库123确定对象之间的关系信息。
图3示出了根据本申请一些实施例的确定对象之间关系信息的方法300的流程图。方法300例如可以在图管理系统120中执行。
如图3所示,在步骤S301中,获取图的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度。这里,第一顶点和第二顶点表示不同的对象。第一顶点和第二顶点之间的可达路径可以表示对象之间的关系信息。例如,图4示出了图管理系统120中图式数据结构的示意图。图4中顶点a为第一顶点,顶点b为第二顶点。待查询的路径长度例如为r阶或者r阶以内。
在步骤S302中,根据待查询的路径长度中最长路径长度,确定第一距离和第二距离。其中,第一距离表示从第一顶点出发的遍历阶数,第二距离表示从第二顶点出发的遍历阶数。例如,最大路径长度为r,第一距离例如为r1,第二距离例如为r2。r=r1+r2。例如r=4,r1=2,r2=2。
这里,步骤S302可以分配第一顶点的遍历检索的深度以及第二顶点的遍历检索的深度,从而可以避免按照最大路径长度进行遍历的麻烦,从而降低计算复杂度。
在步骤S303中,根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数。其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度。例如,路径长度包括2阶、3阶和4阶。对于2阶的路径长度,第一目标阶数为1,第二目标阶数为1。对于3阶的路径长度,第一目标阶数为2,第二目标阶数为1。对于4阶的路径长度,第一目标阶数为2,第二目标阶数为2。
在步骤S304中,从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中。例如图5示出了确定第一顶点的记录表的示意图。图5中第一距离为2。第一顶点a的第一阶的顶点标记为a-1,第一阶的记录表标记为c-1。第一顶点a的第二阶的顶点标记为a-2,第二阶的记录表标记为c-2。这里,记录表例如可以是布隆过滤器或者布谷鸟过滤器。
在步骤S305中,从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中。并且,对于每种路径长度,步骤S305在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,将该顶点确定为该种路径长度的一个中间点。换言之,对于每种路径长度,步骤S305可以检索既存在于第一顶点的记录表中,又存在于第二顶点的记录表中的中间点。例如,图6示出了确定第二顶点的记录表的示意图。图6中第二距离为2。第二顶点b的第一阶的顶点标记为b-1,第一阶的记录表标记为d-1。第一顶点b的第二阶的顶点标记为b-2,第二阶的记录表标记为d-2。
在步骤S306中,对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径。
综上,根据本申请实施例的确定对象之间关系信息的方法300,通过检索两个顶点之间的中间点的方式和检索中间点分别到两个顶点的路径方式,可以避免按照两个顶点之间的阶数进行遍历检索操作,并按照第一距离和第二距离进行遍历操作,从而减少的计算复杂度,提升了对关系信息的查询效率。例如,假定两个顶点之间的阶数为r,按照阶数r遍历的复杂度为r的n次方。方法300可以将复杂度为r的n次方的图算法简化成了多个r的(n/2)次方的计算过程,从而极大的减少的计算复杂度,提升了查询效率。另外,通过将顶点记录在记录表中,方法300能够避免在内存中直接存储顶点,而是在哈希表中存储顶点的映射结果,从而能够节省存储资源,进而便于对规模较大的图进行查询操作。
在一些实施例中,步骤S302可以实施为方法700。如图7所示,在步骤S701中,确定最长路径长度除以二的商,并将该商作为第一距离。在步骤S702中,将最长路径长度与第一距离的差值作为第二距离。综上,方法700可以均衡的分配第一距离和第二距离,从而方便于降低计算复杂度,从而提高查询效率。
在一些实施例中,步骤S304可以从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。步骤S305从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。这里,通过将顶点记录在布隆过滤器或者布谷鸟过滤器中,能够避免在内存中直接存储顶点,而是在哈希表中存储顶点的映射结果,从而能够节省存储资源,进而便于对规模较大的图进行查询操作。例如,在未采用记录表时,存储资源与最大路径长度r的阶数成指数关系。通过布隆过滤器或者布谷鸟过滤器,本申请实施例可以使得存储资源与r成线性关系保证了即使阶数r很大,存储资源也在可控范围内。
在一些实施例中,方法300可以在分布式图计算引擎中执行。例如,步骤304可以将不同分区生成的每个阶的记录表合并到该阶的一个总记录表。步骤305也可以将不同分区生成的每个阶的记录表合并到该阶的一个总记录表。
在一些实施例中,步骤S306可以实施为方法800。
如图8所示,在步骤S801中,对于每种路径长度的每个中间点,基于第一顶点的记录表,确定该中间点到第一顶点的路径。这里,步骤S801可以利用记录表过滤中间点的各阶顶点,从而使得中间点到第一顶点的路径上各顶点存在于第一顶点的记录表中。
例如,一个中间点为e,e有到a的2阶路径,以点e为中心,遍历2阶内的路径。与点e距离为1的点在记录表c-1中存在,且终点为a。如图9所示,e-f-a为满足条件的c到a的路径。
在步骤S802中,对于每种路径的每个中间点,基于第二顶点的记录表,确定该中间点到第二顶点的路径。这里,步骤S802可以利用记录表过滤中间点的各阶顶点,从而使得中间点到第二顶点的路径上各顶点存在于第二顶点的记录表中。例如,中间点e有到b的2阶路径,以点e为中心,遍历2阶内的路径。与点e距离为1的点必须在记录表d-1中存在,且终点为b。如图10所示,e-g-b为满足条件的c到b的路径。
在步骤S803中,对于每种路径的每个中间点,根据该中间点到第一顶点的路径和到第二顶点的路径,确定第一顶点与第二顶点之间的该种路径长度的包含该中间点的每条路径。例如,基于图9中路径e-f-a以及图10中路径e-g-b,步骤S803可以确定a到b的路径。例如,图11示出了根据本申请一些实施例的第一顶点a和第二顶点b之间的路径。a到b的路径包括a-f-e-g-b。
在一些实施例中,步骤S301还可以获取对图中顶点的筛选条件。这里,筛选条件可以是顶点的属性字段或者顶点对应的边的属性字段。步骤S304可以从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足筛选条件的顶点记录在对应阶数的记录表中。步骤S305可以从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足筛选条件的顶点记录在记录表中。
综上,通过利用筛选条件进行顶点筛选,本申请实施例可以获取到满足筛选条件的可达路径。
图12示出了根据本申请一些实施例的确定对象之间关系信息的装置1200的流程图。装置1200例如可以部署在图管理系统120。
装置1200包括接口单元1201、管理单元1202、查询单元1203和路径确定单元1204。
接口单元1201,获取图的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度。
管理单元1202,根据待查询的路径长度中最长路径长度,确定第一距离和第二距离。其中,第一距离表示从第一顶点出发的遍历阶数,第二距离表示从第二顶点出发的遍历阶数。管理单元1202根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数。其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度。
查询单元1203,从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中。另外,查询单元1203从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中。并且,对于每种路径长度,在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,查询单元1203将该顶点确定为该种路径长度的一个中间点。
路径确定单元1204,对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径。
综上,根据本申请实施例的确定对象之间关系信息的装置1200,通过检索两个顶点之间的中间点的方式和检索中间点分别到两个顶点的路径方式,可以避免按照两个顶点之间的阶数进行遍历检索操作,并按照第一距离和第二距离进行遍历操作,从而减少的计算复杂度,提升了对关系信息的查询效率。例如,假定两个顶点之间的阶数为r,按照阶数r遍历的复杂度为r的n次方。装置1200可以将复杂度为r的n次方的图算法简化成了多个r的(n/2)次方的计算过程,从而极大的减少的计算复杂度,提升了查询效率。另外,通过将顶点记录在记录表中,装置1200能够避免在内存中直接存储顶点,而是在哈希表中存储顶点的映射结果,从而能够节省存储资源,进而便于对规模较大的图进行查询操作。
在一些实施例中,查询单元1203可以从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。另外,查询单元1203从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。
在一些实施例中,接口单元1201还可以获取对图中顶点的筛选条件。在此基础上,查询单元1203可以从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在对应阶数的记录表中。查询单元1203从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在记录表中。
接口单元1201可以确定最长路径长度除以二的商,并将该商作为第一距离。另外,接口单元1201将最长路径长度与第一距离的差值作为第二距离。
在一些实施例中,对于每种路径长度的每个中间点,路径确定单元1204基于第一顶点的记录表,确定该中间点到第一顶点的路径。对于每种路径的每个中间点,路径确定单元1204基于第二顶点的记录表,确定该中间点到第二顶点的路径。对于每种路径的每个中间点,根据该中间点到第一顶点的路径和到第二顶点的路径,路径确定单元1204可以确定第一顶点与第二顶点之间的该种路径长度的包含该中间点的每条路径。装置1200更具体实施方式与方法300一致,这里不再赘述。
图13示出了根据本申请一些实施例的计算设备的示意图。如图13所示,该计算设备包括一个或者多个处理器(CPU)1302、通信模块1304、存储器1306、用户接口1310,以及用于互联这些组件的通信总线1308。
处理器1302可通过通信模块1304接收和发送数据以实现网络通信和/或本地通信。
用户接口1310包括一个或多个输出设备1312,其包括一个或多个扬声器和一个或多个屏幕。用户接口1310也包括一个或多个输入设备1314。用户接口1310例如可以是按钮,但不限于此。
存储器1306可以是高速随机存取存储器,诸如DRAM、SRAM、DDR RAM、或其他随机存取固态存储设备;或者非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备,或其他非易失性固态存储设备。
存储器1306存储处理器1302可执行的指令集,包括:
操作系统1316,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
应用1318,包括用于实现上述确定对象之间关系信息方案的各种程序。这种程序能够实现上述各实例中的处理流程,比如可以包括确定对象之间关系信息的方法300。
另外,本申请的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和\或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如CD-ROM等)、磁光存储介质(如MO等)等。
因此本申请还公开了一种非易失性存储介质,其中存储有程序。该程序包括指令,所述指令当由处理器执行时,使得计算设备执行根据本申请的确定对象之间关系信息的方法。
另外,本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述确定对象之间关系信息的方法的硬件也可以构成本申请。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种基于图式数据结构查询对象之间关系信息的方法,其特征在于,该方法包括:在用于管理图式数据结构的数据的图管理系统侧,其中,图式数据结构包括:用于表示以通信节点为对象的顶点、以及用于表示通信节点之间的关系信息的边,所述图式数据结构用于表征通信节点的关系网络的电信网络,所述对象包括通信节点标识信息,所述图管理系统包括:与终端进行通信的交互层、执行查询任务的图计算引擎、以及图数据库,
交互层接收来自终端查询任务,该查询任务包括:两个顶点和两个顶点之间待查询的路径长度,
获取图式数据结构中的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度;
图计算引擎根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,其中,所述第一距离表示从第一顶点出发的遍历阶数,所述第二距离表示从第二顶点出发的遍历阶数;
根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数,其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度;
从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中;
从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,并且,对于每种路径长度,在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,将该顶点确定为该种路径长度的一个中间点;
对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径,得到两顶点之间的可达路径,所述可达路径表示对象之间关系信息。
2.如权利要求1所述的方法,其特征在于,所述根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,包括:
确定所述最长路径长度除以二的商,并将该商作为第一距离;
将最长路径长度与第一距离的差值作为第二距离。
3.如权利要求1所述的方法,其特征在于,所述从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中,包括:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中;
所述从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,包括:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。
4.如权利要求1所述的方法,其特征在于,进一步包括:获取对图中顶点的筛选条件;
所述从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中,包括:
从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在对应阶数的记录表中;
所述从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,包括:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在记录表中。
5.如权利要求1所述的方法,其特征在于,所述对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径,包括:
对于每种路径长度的每个中间点,基于第一顶点的记录表,确定该中间点到第一顶点的路径;
对于每种路径的每个中间点,基于第二顶点的记录表,确定该中间点到第二顶点的路径;
对于每种路径的每个中间点,根据该中间点到第一顶点的路径和到第二顶点的路径,确定第一顶点与第二顶点之间的该种路径长度的包含该中间点的每条路径。
6.一种基于图式数据结构查询对象之间关系信息的图管理系统,其特征在于,所述图管理系统包括:与终端进行通信的交互层、执行查询任务的图计算引擎、以及图数据库,所述交互层包括:
接口单元,接收来自终端查询任务,该查询任务包括:两个顶点和两个顶点之间待查询的路径长度,获取图的第一顶点和第二顶点,并确定第一顶点和第二顶点之间待查询的路径长度;
所述图计算引擎包括:
管理单元,根据待查询的路径长度中最长路径长度,确定第一距离和第二距离,其中,所述第一距离表示从第一顶点出发的遍历阶数,所述第二距离表示从第二顶点出发的遍历阶数;根据待查询的每种路径长度的阶数,确定该种路径长度对应的第一目标阶数和第二目标阶数,其中,第一目标阶数表示待确定的中间点到第一顶点的路径长度,第二目标阶数表示待确定的中间点到第二顶点的路径长度;
查询单元,从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中;从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中,并且,对于每种路径长度,在确定该种路径长度的第二目标阶数对应的任一顶点存在于第一顶点的与该种路径长度的第一目标阶数对应的记录表时,将该顶点确定为该种路径长度的一个中间点;
路径确定单元,对于每种路径长度的每个中间点,根据第一顶点的记录表和第二顶点的记录表,确定该种路径长度的包含该中间点的每条路径,得到两顶点之间的可达路径,所述可达路径表示对象之间关系信息;
其中,
图式数据结构包括:用于表示以通信节点为对象的顶点、以及用于表示通信节点之间的关系信息的边,所述图式数据结构用于表征通信节点的关系网络的电信网络,所述对象包括标识信息。
7.如权利要求6所述的图管理系统,其特征在于,所述查询单元根据下述方式从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中;
所述查询单元根据下述方式从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点记录在对应阶数的布隆过滤器或者布谷鸟过滤器中。
8.如权利要求6所述的图管理系统,其特征在于,所述接口单元进一步用于:获取对图中顶点的筛选条件;
所述查询单元根据下述方式从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点记录在对应阶数的记录表中:从第一顶点出发,遍历第一距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在对应阶数的记录表中;
所述查询单元根据下述方式从第二顶点出发,遍历第二距离内的每阶顶点,将每阶顶点记录在对应阶数的记录表中:从第二顶点出发,遍历第二距离内的每阶顶点,并且将每阶顶点中满足所述筛选条件的顶点记录在记录表中。
9.一种计算设备,其特征在于,包括:
存储器;
处理器;
程序,存储在该存储器中并被配置为由所述处理器执行,所述程序包括用于执行权利要求1-5中任一项所述的方法的指令。
10.一种存储介质,存储有程序,所述程序包括指令,其特征在于,所述指令当由计算设备执行时,使得所述计算设备执行如权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187291.1A CN112307272B (zh) | 2020-10-30 | 2020-10-30 | 确定对象之间关系信息的方法、装置、计算设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011187291.1A CN112307272B (zh) | 2020-10-30 | 2020-10-30 | 确定对象之间关系信息的方法、装置、计算设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112307272A CN112307272A (zh) | 2021-02-02 |
CN112307272B true CN112307272B (zh) | 2024-02-09 |
Family
ID=74332555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011187291.1A Active CN112307272B (zh) | 2020-10-30 | 2020-10-30 | 确定对象之间关系信息的方法、装置、计算设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112307272B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117236721A (zh) * | 2023-11-09 | 2023-12-15 | 湖南财信数字科技有限公司 | 企业异常行为的监控方法、系统、计算机设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275879B1 (en) * | 2008-03-31 | 2012-09-25 | Emc Corporation | Generalized virtualizer IO path model and general virtual transformation model for storage assets |
CN109344208A (zh) * | 2018-08-14 | 2019-02-15 | 北京奇虎科技有限公司 | 路径查询方法、装置及电子设备 |
CN111061918A (zh) * | 2018-10-16 | 2020-04-24 | 杭州海康威视数字技术股份有限公司 | 图数据的处理方法、装置及存储介质 |
CN111241350A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 图数据查询方法、装置、计算机设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8954279B2 (en) * | 2013-06-25 | 2015-02-10 | Facebook, Inc. | Human-like global positioning system (GPS) directions |
US10810257B2 (en) * | 2015-08-27 | 2020-10-20 | Oracle International Corporation | Fast processing of path-finding queries in large graph databases |
-
2020
- 2020-10-30 CN CN202011187291.1A patent/CN112307272B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8275879B1 (en) * | 2008-03-31 | 2012-09-25 | Emc Corporation | Generalized virtualizer IO path model and general virtual transformation model for storage assets |
CN109344208A (zh) * | 2018-08-14 | 2019-02-15 | 北京奇虎科技有限公司 | 路径查询方法、装置及电子设备 |
CN111061918A (zh) * | 2018-10-16 | 2020-04-24 | 杭州海康威视数字技术股份有限公司 | 图数据的处理方法、装置及存储介质 |
CN111241350A (zh) * | 2020-01-07 | 2020-06-05 | 平安科技(深圳)有限公司 | 图数据查询方法、装置、计算机设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
An intermediate algebra for optimizing RDF graph pattern matching on MapReduce;Padmashree Ravindra 等;The Semanic Web:Research and Applications;全文 * |
Spark-GraphX框架下的大规模加权图最短路径查询;宋宝燕 等;辽宁大学学报(自然科学版)(第04期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112307272A (zh) | 2021-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287182B (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
KR102564170B1 (ko) | 데이터 객체 저장 방법, 장치, 및 이를 이용한 컴퓨터 프로그램이 저장되는 컴퓨터 판독가능한 저장 매체 | |
CN104156380A (zh) | 一种分布式存储器哈希索引方法及系统 | |
CN106407303A (zh) | 数据存储、查询方法及装置 | |
US8392397B2 (en) | System and method for provenance function window optimization | |
US20100228914A1 (en) | Data caching system and method for implementing large capacity cache | |
WO2024041376A1 (zh) | 分布式图数据处理系统、方法、装置、设备及存储介质 | |
CN110858210B (zh) | 数据查询方法及装置 | |
CN113760996A (zh) | 一种数据整合方法及系统、设备和存储介质 | |
CN113656397A (zh) | 一种针对时序数据的索引构建及查询的方法、装置 | |
CN112307272B (zh) | 确定对象之间关系信息的方法、装置、计算设备及存储介质 | |
CN113779286B (zh) | 管理图数据的方法及装置 | |
US8548980B2 (en) | Accelerating queries based on exact knowledge of specific rows satisfying local conditions | |
KR102354343B1 (ko) | 블록체인 기반의 지리공간 데이터를 위한 공간 데이터 인덱싱 방법 및 장치 | |
CN111752941B (zh) | 一种数据存储、访问方法、装置、服务器及存储介质 | |
CN110069466B (zh) | 一种面向分布式文件系统的小文件存储方法及装置 | |
WO2023066198A1 (zh) | 分布式数据处理 | |
WO2020136790A1 (ja) | エッジシステム、情報処理方法及び情報処理プログラム | |
CN115878625A (zh) | 数据处理方法和装置及电子设备 | |
KR101744017B1 (ko) | 실시간 검색을 위한 데이터 인덱싱 방법 및 장치 | |
CN114691612A (zh) | 数据写入方法及装置、数据读取方法及装置 | |
CN110968267B (zh) | 数据管理方法、装置、服务器及系统 | |
CN115904211A (zh) | 一种存储系统、数据处理方法及相关设备 | |
CN113590623A (zh) | 一种用于数据深分页查询的方法、装置及设备 | |
Wang et al. | Interactive multiple-user location-based keyword queries on road networks |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |