CN114003775A - 图数据处理、查询方法及其系统 - Google Patents

图数据处理、查询方法及其系统 Download PDF

Info

Publication number
CN114003775A
CN114003775A CN202111274430.9A CN202111274430A CN114003775A CN 114003775 A CN114003775 A CN 114003775A CN 202111274430 A CN202111274430 A CN 202111274430A CN 114003775 A CN114003775 A CN 114003775A
Authority
CN
China
Prior art keywords
graph data
nodes
query
graph
endpoints
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
Application number
CN202111274430.9A
Other languages
English (en)
Inventor
赵培龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202111274430.9A priority Critical patent/CN114003775A/zh
Publication of CN114003775A publication Critical patent/CN114003775A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

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

图数据处理、查询方法及其系统
技术领域
本说明书涉及信息技术领域,特别涉及一种图数据处理、查询方法及其系统。
背景技术
图数据是一种高度结构化的数据,包含节点和边。节点可以表示实体,连接节点的边可以表示关系,图数据可以描述现实世界中存在的各种实体及其关系。由于单机资源的有限性,在大规模图数据中查询数据会出现计算延迟严重甚至无法计算出结果的情况。
因此,希望提供一种能在大规模图数据中实现高效查询的方法。
发明内容
本说明书实施例之一提供一种图数据处理方法,图数据包括节点与边。所述方法包括:确定图数据中的端点;将所述图数据拆分成多个连通子图,使得各个连通子图的端点包含在所述图数据的端点中;将所述多个连通子图分发给多个计算设备存储,以供查询。其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。
本说明书实施例之一提供一种图数据处理系统,图数据包括节点与边。所述系统包括:端点确定模块,用于确定图数据中的端点;图数据拆分模块,用于将图数据拆分成多个连通子图,使得各个连通子图的端点包含在所述图数据的端点中;分发模块,用于将所述多个连通子图分发给多个计算设备存储,以供查询。其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。
本说明书实施例之一提供一种图数据处理装置,包括处理器和存储设备。其中,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的图数据处理方法。
本说明书实施例之一提供一种图数据查询方法,其中,图数据被拆分成多个连通子图,每个连通子图的端点包含在所述图数据的端点中,所述多个连通子图被分发给多个计算设备存储。其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。所述方法包括:获取查询请求;将所述查询请求发送给所述多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询,得到查询结果;接收所述多个计算设备返回的查询结果,并输出。
本说明书实施例之一提供一种图数据查询系统,其中,图数据被拆分成多个连通子图,每个连通子图的端点包含在所述图数据的端点中,所述多个连通子图被分发给多个计算设备存储。其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。所述系统包括:查询请求获取模块,用于获取查询请求;查询请求发送模块,用于将所述查询请求发送给所述多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询,得到查询结果;查询结果接收模块,用于接收所述多个计算设备返回的查询结果,并输出。
本说明书实施例之一提供一种图数据处理装置,包括处理器和存储设备。其中,所述存储设备用于存储指令,当所述处理器执行指令时,实现如本说明书任一实施例所述的图数据查询方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本说明书一些实施例所示的社交网络图谱的示意图;
图2是根据本说明书一些实施例所示的重复子图的展开示意图;
图3是根据本说明书一些实施例所示的分布式图数据查询的应用场景示意图;
图4是根据本说明书一些实施例所示的图数据拆分方法的示例性流程图;
图5是根据本说明书一些实施例的图数据拆分实例;
图6是根据本说明书一些实施例所示的图数据查询方法的示例性流程图;
图7是根据本说明书一些实施例所示的图数据查询示意图;
图8是根据本说明书一些实施例所示的图数据处理系统的示例性模块图;
图9是根据本说明书一些实施例所示的图数据查询系统的示例性模块图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
本说明书涉及图数据的存储与查询,知识图谱是图数据的一种典型应用,本说明书将以知识图谱为主进行介绍,在无特别说明的情况下,知识图谱的相关术语的解释亦适用于其他图数据。
知识图谱,本质上,是一种揭示实体之间关系的语义网络。图谱中的节点表示实体。节点可以有多种类型,称作节点类型,用于指示各类实体。图谱中的边表示关系。边也可以有多种类型,称作边类型,用于指示各类关系。实体可以指现实世界中的事物,例如,人、地名、概念、药物、公司等等。关系可用于表达不同实体之间的联系,例如,某人“居住在”北京、张三和李四是“朋友”、逻辑回归是深度学习的“先导知识”等等。
知识图谱可以是有向图或无向图,即,知识图谱中的边可以是有向的,也可以是无向的。有向的边可以是单向的,也可以是双向的,以指示关系的方向性。当知识图谱为无向图时,边可以表示关系不具有方向性或关系是双向的(如“朋友”关系)。指向一个节点的边可称作该节点的入边,从一个节点指出(即指向其它节点)的边可称作该节点的出边。
知识图谱的实例可称作数据图,数据图包含具体的知识数据,每条知识可表示为三元组,该三元组包含两个实体及其关系。例如,如图1所示,在社交网络图谱中,既可以有“人”的实体,如张三和李四,也可以有“公司”的实体,如A公司和B公司。人和人之间的关系可以是“朋友”或“同事”,人与公司之间的关系可以是“现任职于”或“曾任职于”。如前所述,图1中的关系/边可以具有方向性,例如,“朋友”关系可以是双向的,“现任职于”或“曾任职于”的关系可以是单向的。
图的长度可指图中两个节点的跳数的最大值。当两个节点仅通过一条边连接时,这两个节点的跳数为1。当两个节点通过N(大于1)条边依次连接时,这两个节点的跳数为N。
在一些实施例中,由于知识图谱的数据在逻辑上本身就是一种图结构,因此也可以通过图查询技术来完成特定查询图的查找,其核心问题是判断查询图是否是图数据(如数据图)的子图,因此也称作子图匹配问题。可以理解,查询图也是一种包含节点和边的图结构,查询图可以与用户的查询请求对应,例如,查询图可以指示用户输入的查询条件。在一些场景下,查询图可以是重复子图形式,重复子图是一种包含可展开节点的图结构。例如,如图2所示,重复子图包含可展开节点B(括号中的数字3表示展开得到3个同类型节点),节点B经展开后得到节点B0、B1和B2。展开得到的三个节点呈现出一种前缀关系,以“朋友”关系为例,A的朋友是B0,B0的朋友是B1,B1的朋友是B2。另外,可展开节点和其他节点之间的虚线边(箭头)表示该其它节点与展开后的两个或以上节点均具有边连接。例如,如图2所示,展开后得到节点G指向节点B0的关系p0、节点G指向节点B1的关系p1和节点G指向节点B2的关系p2。
基于知识图谱的数据查询有着诸多应用,如搜索、推荐、智能问答等。基于知识图谱的数据规模,可以将知识图谱进行单机存储或分布式存储,相应的,基于知识图谱的数据查询可分为单机和分布式两种方式。受限于机器存储容量以及计算性能,对于规模较大的图,需要进行分布式存储及查询。
图3是根据本说明书一些实施例所示的分布式图数据查询的应用场景示意图。场景100可以包括处理设备110和多个计算设备120,每个计算设备120可称作一个机器节点。
处理设备110可以将图数据拆分成多个子图,将这些子图划分成若干分组,并将这些分组分发给多个计算设备120存储,以供查询。图数据拆分可以一定程度上解决单机资源受限的问题,即提高了可计算图的规模。
每个计算设备120可以接收查询请求,基于接收到的查询请求在其存储的分组中进行查询,得到查询结果。进而,每个计算设备120可以返回查询结果。在一些实施例中,可以由单独设备(如处理设备110)获取查询请求并将该查询请求发送给多个计算设备120中的每一个,再由该单独设备接收多个计算设备120返回的查询结果并输出。在另一些实施例中,也可以由计算设备120直接接收查询请求并输出查询结果。可以理解,这里的输出是面向用户(端)的。
在一些实施例中,通过将整个图划分到不同的机器节点上,在每个机器节点上各自计算,最后可将单机计算(查询)结果汇总输出。其中,当查询图中的节点分布在不同的机器节点上时,需要机器节点间通信以沿查询路径继续查询,即带来了网络通信的额外开销。随着查询图长度的增长,机器节点间的交互通信量可以呈指数式增长,这会加剧系统的网络开销,最终导致无法计算出结果。值得注意的是,当查询请求中的查询图是重复子图形式时,需要对重复子图进行展开处理,再将经过展开处理的重复子图形式的查询图发送给计算设备,重复子图形式查询图一般具有较大的展开长度,因此对于重复子图形式的查询图,由查询图长度引发的通信开销问题尤为突出。
本说明书实施例提供一种能够有效减少机器节点间交互的图数据拆分方法,甚至可以将单机的计算(查询)结果直接输出给用户端。
图4是根据本说明书一些实施例所示的图数据拆分方法的示例性流程图。流程400可以由处理设备110执行。如图4所示,流程400可以包括:
步骤410,确定图数据中的端点。在一些实施例中,步骤410可以由端点确定模块810实现。
图数据可以指未经拆分(拆分前)的数据图。端点可以包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。可以理解,端点是图数据中只有单向关系的节点,非端点节点则可以具有多向关系。对于无向图,可以根据节点拥有的边的数量来确定该节点是否为端点,例如,当节点只有一条边时,该节点为端点。对于有向图,可以根据节点拥有的边的类型来确定该节点是否为端点,例如,当节点只拥有出边或只拥有入边时,认为该节点的关系是单向的,即为端点。
步骤420,将图数据拆分成多个连通子图,使得各个连通子图的端点包含在图数据的端点中。在一些实施例中,步骤420可以由图数据拆分模块820实现。
连通子图的端点包含在所述图数据的端点中,意味着不会将图数据中的非端点节点作为拆分出的连通子图的端点。由于非端点节点是图数据中具有多向关系的节点,若将图数据中的非端点节点(记为节点M)作为拆分出的连通子图的端点,意味着该节点的其他向关系被截断,当将拆分出的连通子图分机存储时,进一步会出现以下情况:当查询路径经过节点M时,由于节点M的邻居节点存储在另一计算设备上(节点M在当前计算设备存储的子图中是端点),当前计算设备需要与存储有节点M的邻居节点的另一计算设备进行通信以沿查询路径继续查询。换言之,通过“端到端”的拆分,可以有效减少由于图数据中的路径被截断导致计算设备间需要通信的情况。当节点间具有边(对边的方向可不作限制),则可认为两者连通。按这种“端到端”的方式拆分得到的子图中任意两个节点间由至少一条边连接,因而被称作“连通”子图。可以理解,拆分出的连通子图的集合包含了图数据的全部节点及边,但不一定覆盖图数据中的所有路径。所述所有路径包括图数据中任意两个节点之间有边可达的路径。对于有向图,单个路径可以具有唯一方向,例如,A→B→C是一条路径,A→B←C包含A→B和B←C两条路径。仅作为示例,图5所示的图数据可以拆分出连通子图:I←H←A→B→C、J→A→D→E、C←B→F→G,但这些子图的集合并不包含图数据中的所有路径。例如,未包含路径A→B→F→G。需要说明的是,当连通子图的集合能越大程度的覆盖图数据中的所有路径(如图5可以拆分出端点C分别到端点G、E、I、J,端点G分别到端点E、I、J,端点E到端点I、J,端点I到端点J共10个连通子图)时,用于对图数据进行分布式存储的计算设备间的交互越少。因此,为了能尽可能包含图数据的所有路径,被拆分出来的连通子图在较大程度上是冗余的。当拆分出的多个连通子图的集合可以包括图数据中的所有路径时,无论查询路径是哪条,都可以在单个计算设备上独立获得查询结果。在此情况下,存储连通子图的多个计算设备之间甚至可以不联网。
在一些实施例中,图数据拆分模块820可以从图数据的某个端点开始,搜索依次具有边连接的非端点节点,直至搜索到图数据的一个或多个其他端点。
在一些实施例中,图数据拆分模块820可以从图数据的某个端点开始,搜索依次具有边连接的非端点节点,当出现分叉节点时,选择分叉节点的其中部分边,如n条边,并继续搜索直至图数据的一个或多个其他端点,得到一个连通子图。对于所述分叉节点处未遍历的边,图数据拆分模块820可以重新从图数据的所述某个端点开始,重新搜索依次具有边连接的所述非端点节点,并且在所述分叉节点处,选择所述分叉节点中未遍历的边并继续搜索直至图数据的一个或多个其他端点,得到新的连通子图。其中,分叉节点是指具有三条或更多边的非端点节点,如图5中的节点A、节点B。在一些实施例中,n可以取小于或等于(分叉节点总边数-1)的正整数。在一些实施例中,n可以取小于或等于(分叉节点总边数-2)的正整数,如此无论分叉节点具有几条边(至少三条边),拆分过程中在分叉节点处始终都有至少两种选择,从而可以拆分出更多的连通子图,有利于减轻单机的存储压力和处理压力。仅作为示例,n可以取1。
图5示出了根据本说明书一些实施例的图数据拆分实例。
如图5所示,图数据包括端点C、G、E、I、J和非端点节点H、D、A、B、F。其中,节点A和B是分叉节点。拆分时,可以选择从仅有入边的端点(如端点C、G、E、I)开始搜索。当出现分叉节点(节点A或节点B)时,可以选择分叉节点的全部或部分边(如未遍历的所有边)继续搜索,直至搜索到一个或多个其他端点(如端点I、J)。例如,从端点I开始,经过节点H到达分叉节点A,可以在分叉节点A处选择A→B这一条边继续搜索,到达分叉节点B,在分叉节点B处选择B→C、B→F分别继续搜索,最后得到连通子图:I←H←A→B→C、I←H←A→B→F→G。
在一些实施例中,可以设置适当的终止条件,以判断对图数据的拆分是否完成。例如,当图数据拆分模块820确认当前拆分出的连通子图的集合包含图数据中的所有节点,即完成节点的遍历时,可以认为对图数据的拆分已完成。又如,当图数据拆分模块820确认当前拆分出的连通子图的集合包含图数据中的所有路径时,可以认为对图数据的拆分已完成。
图5的右方示出了一种拆分实例,如图5所示,该图数据可以被拆分成七个连通子图。图5所示的拆分可以实现一定前提下的单机查询,这里的前提是指查询过程中搜索方向是单一的,即要么一直沿着节点的入边搜索,要么一直沿着节点的出边搜索。
步骤430,将所述多个连通子图分发给多个计算设备存储,以供查询。在一些实施例中,步骤430可以由分发模块830实现。
每个计算设备接收到的连通子图可以视作所述多个连通子图的一个分组。在一些实施例中,分组的数量可以等于计算设备的数量。例如,当有N个计算设备时,每个计算设备可得到一个分组,即一个连通子图。
图6是根据本说明书一些实施例所示的图数据查询方法的示例性流程图。流程600可以由处理设备110执行,也可以由其他设备执行。其中,图数据可以按流程400被拆分成多个连通子图,所述多个连通子图被分发给多个计算设备存储,以供查询。如图6所示,流程600可以包括:
步骤610,获取查询请求。在一些实施例中,步骤610可以由查询请求获取模块910实现。
所述查询请求可以包括用户输入的查询条件。在一些实施例中,所述查询请求可以包括查询图。进一步地,所述查询请求可以包括重复子图形式的查询图。
步骤620,将所述查询请求发送给多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询。在一些实施例中,步骤620可以由查询请求发送模块920实现。
对于重复子图形式的查询图,可以将经过展开处理的重复子图形式的查询图发送给计算设备。当然,也可以由计算设备对重复子图形式的查询图进行展开处理。
基于“端到端”的图数据拆分,所述多个计算设备可以互相独立地进行图数据查询。在一些实施例中,所述多个计算设备可以并行查询,以提高查询效率。
下面结合图7对图6所示的图数据查询方法进行举例说明。在第三方支付场景中,第三方支付平台可为用户提供平台内部账户间的免费转账服务,以及为用户提供银行账户和平台内部账户之间的免费转账服务(从平台内部账户到银行账户的转账可以有时间、额度等限制)。当一笔资金经由第三方支付平台从一个银行账户转移到另一个银行账户,第三方支付平台需要承担此转账操作的手续费,而用户由于享受平台的免费转账服务无需为此转账操作支付相应费用,若一些用户恶意利用平台提供的免费转账服务在银行账户间转账,则会使平台蒙受损失。因此,平台需要在图数据中找出此类转账行为匹配的路径,以便采取进一步措施来止损。如图7所示,反映账户间转账行为的图数据被拆分成若干连通子图。在查询时,查询请求可以包括以平台内部账户为重复节点(最多可以展开成3个同类型节点)的重复子图的展开结果。通过展开处理可以得到与此类转账行为匹配的3种路径,即搜索到的路径属于这3种路径中任意一种路径的都可以作为查询结果。图7中的每个连通子图都可以作为查询结果,即可以在单机实现查询。应当理解,图7仅仅是为了示意,在大数据场景下连通子图的规模通常远超查询图的规模。通过“端对端”的拆分,支持在单机实现较深路径的查询,有利于为平台挖掘更多有用信息。举例来说,若在分叉节点Q处拆分数据图,分叉节点Q会分布在不同计算设备中,在搜索包含分叉节点Q的路径时就需要不同计算设备进行通信以获得查询结果。
步骤630,接收所述多个计算设备返回的查询结果,并输出。在一些实施例中,步骤630可以由查询结果接收模块930实现。
在一些实施例中,也可以由计算设备直接向用户端返回查询结果。
关于流程600的更多细节,可以参考流程400及其相关描述。
应当注意的是,上述有关流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
图8是根据本说明书一些实施例所示的图数据处理系统的示例性模块图。系统800可以在处理设备110上实现。
如图8所示,系统800可以包括端点确定模块810、图数据拆分模块820和分发模块830。
端点确定模块810可以用于确定图数据中的端点。
图数据拆分模块820可以用于基于所述图数据的端点将图数据拆分成多个连通子图,使得连通子图的端点包含在所述图数据的端点中。
分发模块830可以用于将所述多个连通子图分发给多个计算设备存储,以供查询。
其中,端点可以包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。
关于系统800及其模块的更多细节,可以参考图4及其相关描述。
图9是根据本说明书一些实施例所示的图数据查询系统的示例性模块图。系统900可以在处理设备110或其他设备上实现。其中,图数据可以按流程400被拆分成多个连通子图,所述多个连通子图被分发给多个计算设备存储,以供查询。
如图9所示,系统900可以包括查询请求获取模块910、查询请求发送模块920和查询结果接收模块930。
查询请求获取模块910可以用于获取查询请求。
查询请求发送模块920可以用于将所述查询请求发送给所述多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询,得到查询结果。
查询结果接收模块930可以用于接收所述多个计算设备返回的查询结果,并输出。
关于系统900及其模块的更多细节,可以参考图6及其相关描述。
应当理解,图8、图9所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于系统及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解系统的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子系统与其他模块连接。例如,在一些实施例中,端点确定模块810和图数据拆分模块820可以是一个系统中的不同模块,也可以是一个模块实现这两个模块的功能。诸如此类的变形,均在本说明书的保护范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)图数据拆分可以一定程度上解决单机资源受限的问题,即提高了可计算图的规模;(2)通过“端到端”的拆分,可以有效减少由于图数据中的路径被截断导致计算设备间需要通信的情况;(3)当拆分出的多个连通子图的集合可以包括图数据中的所有路径时,无论查询路径是哪条,都可以在单个计算设备上独立获得查询结果。在此情况下,存储连通子图的多个计算设备之间甚至可以不联网;(4)存储连通子图的多个计算设备可以并行查询,以提高查询效率。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本说明书权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (12)

1.一种图数据处理方法,图数据包括节点与边,所述方法包括:
确定图数据中的端点;
将所述图数据拆分成多个连通子图,使得各个连通子图的端点包含在所述图数据的端点中;
将所述多个连通子图分发给多个计算设备存储,以供查询;
其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。
2.如权利要求1所述的方法,其中,所述多个连通子图的集合包括所述图数据中的全部路径。
3.如权利要求1所述的方法,其中,所述将所述图数据拆分成多个连通子图,包括:
从图数据的某个端点开始,搜索依次具有边连接的非端点节点,当出现分叉节点时,选择分叉节点的其中n条边并继续搜索直至图数据的一个或多个其他端点,得到一个连通子图;所述分叉节点为具有三条或更多条边的非端点节点,n取小于或等于(分叉节点总边数-2)的正整数。
4.如权利要求3所述的方法,其中,所述将所述图数据拆分成多个连通子图,还包括:
重新从所述某个端点开始,重新搜索依次具有边连接的所述非端点节点直到所述分叉节点,并在所述分叉节点处,选择所述分叉节点中未遍历的边并继续搜索直至图数据的一个或多个其他端点,得到新的连通子图。
5.一种图数据处理系统,图数据包括节点与边,所述系统包括:
端点确定模块,用于确定图数据中的端点;
图数据拆分模块,用于将所述图数据拆分成多个连通子图,使得各个连通子图的端点包含在所述图数据的端点中;
分发模块,用于将所述多个连通子图分发给多个计算设备存储,以供查询;
其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点。
6.一种图数据处理装置,包括处理器和存储设备,其中,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求1~4中任一项所述的图数据处理方法。
7.一种图数据查询方法,其中,图数据被拆分成多个连通子图,每个连通子图的端点包含在所述图数据的端点中,所述多个连通子图被分发给多个计算设备存储;其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点;
所述方法包括:
获取查询请求;
将所述查询请求发送给所述多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询,得到查询结果;
接收所述多个计算设备返回的查询结果,并输出。
8.如权利要求7所述的方法,其中,所述图数据按照如权利要求2~4中任意一项所述的方式拆分。
9.如权利要求7所述的方法,其中,所述查询请求包括重复子图形式的查询图。
10.如权利要求7所述的方法,所述多个计算设备之间不联网。
11.一种图数据查询系统,其中,图数据被拆分成多个连通子图,每个连通子图的端点包含在所述图数据的端点中,所述多个连通子图被分发给多个计算设备存储;其中,端点包括以下节点中的一种或多种:只有一条边的节点、只有出边的节点、只有入边的节点;
所述系统包括:
查询请求获取模块,用于获取查询请求;
查询请求发送模块,用于将所述查询请求发送给所述多个计算设备中的每一个,以使所述多个计算设备中的每一个基于所述查询请求在其存储的连通子图中进行查询,得到查询结果;
查询结果接收模块,用于接收所述多个计算设备返回的查询结果,并输出。
12.一种图数据查询装置,包括处理器和存储设备,其中,所述存储设备用于存储指令,当所述处理器执行指令时,实现如权利要求7~10中任一项所述的图数据查询方法。
CN202111274430.9A 2021-10-29 2021-10-29 图数据处理、查询方法及其系统 Pending CN114003775A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111274430.9A CN114003775A (zh) 2021-10-29 2021-10-29 图数据处理、查询方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111274430.9A CN114003775A (zh) 2021-10-29 2021-10-29 图数据处理、查询方法及其系统

Publications (1)

Publication Number Publication Date
CN114003775A true CN114003775A (zh) 2022-02-01

Family

ID=79925331

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111274430.9A Pending CN114003775A (zh) 2021-10-29 2021-10-29 图数据处理、查询方法及其系统

Country Status (1)

Country Link
CN (1) CN114003775A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282073A (zh) * 2022-03-02 2022-04-05 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据读取方法及装置
CN114564571A (zh) * 2022-04-21 2022-05-31 支付宝(杭州)信息技术有限公司 一种图数据查询方法和系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244687A1 (en) * 2013-02-24 2014-08-28 Technion Research & Development Foundation Limited Processing query to graph database
US20180144424A1 (en) * 2016-11-18 2018-05-24 Yen4Ken, Inc. Method and system for content processing to query multiple healthcare-related knowledge graphs
CN108090179A (zh) * 2017-12-15 2018-05-29 北京海致星图科技有限公司 一种Spark并发子图查询的方法
WO2020147601A1 (zh) * 2019-01-16 2020-07-23 阿里巴巴集团控股有限公司 用于对图进行学习的系统
CN112925955A (zh) * 2021-03-25 2021-06-08 支付宝(杭州)信息技术有限公司 一种信息的处理方法、装置及设备
CN113434737A (zh) * 2021-07-23 2021-09-24 支付宝(杭州)信息技术有限公司 一种数据处理方法和系统
CN113434556A (zh) * 2021-07-22 2021-09-24 支付宝(杭州)信息技术有限公司 一种数据处理方法和系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140244687A1 (en) * 2013-02-24 2014-08-28 Technion Research & Development Foundation Limited Processing query to graph database
US20180144424A1 (en) * 2016-11-18 2018-05-24 Yen4Ken, Inc. Method and system for content processing to query multiple healthcare-related knowledge graphs
CN108090179A (zh) * 2017-12-15 2018-05-29 北京海致星图科技有限公司 一种Spark并发子图查询的方法
WO2020147601A1 (zh) * 2019-01-16 2020-07-23 阿里巴巴集团控股有限公司 用于对图进行学习的系统
CN112925955A (zh) * 2021-03-25 2021-06-08 支付宝(杭州)信息技术有限公司 一种信息的处理方法、装置及设备
CN113434556A (zh) * 2021-07-22 2021-09-24 支付宝(杭州)信息技术有限公司 一种数据处理方法和系统
CN113434737A (zh) * 2021-07-23 2021-09-24 支付宝(杭州)信息技术有限公司 一种数据处理方法和系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282073A (zh) * 2022-03-02 2022-04-05 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据读取方法及装置
CN114282073B (zh) * 2022-03-02 2022-07-15 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据读取方法及装置
WO2023165264A1 (zh) * 2022-03-02 2023-09-07 支付宝(杭州)信息技术有限公司 数据存储方法及装置、数据读取方法及装置
CN114564571A (zh) * 2022-04-21 2022-05-31 支付宝(杭州)信息技术有限公司 一种图数据查询方法和系统

Similar Documents

Publication Publication Date Title
Lenzen Optimal deterministic routing and sorting on the congested clique
Fan et al. Performance guarantees for distributed reachability queries
CN110555700B (zh) 区块链智能合约执行方法、装置、计算机可读存储介质
CN114003775A (zh) 图数据处理、查询方法及其系统
CN109189572B (zh) 一种资源预估方法及系统、电子设备和存储介质
CN110471900A (zh) 数据处理方法及终端设备
WO2022012576A1 (zh) 路径规划方法、装置、路径规划设备及存储介质
Lenzen et al. Distributed distance computation and routing with small messages
CN109739433A (zh) 数据处理的方法及终端设备
Parmentier Algorithms for non-linear and stochastic resource constrained shortest path
CN103810260A (zh) 基于拓扑特性的复杂网络社团发现方法
CN113704252A (zh) 规则引擎决策树实现方法、装置、计算机设备及计算机可读存储介质
JP2016081494A (ja) 分散コンピューティング環境におけるグラフデータの振り分け方法及び装置
WO2020147601A1 (zh) 用于对图进行学习的系统
CN111159577A (zh) 一种社群划分方法、装置、存储介质及电子装置
KR20150136734A (ko) 데이터 병렬 추론 방법 및 장치
CN104731800A (zh) 数据分析装置
CN107463671B (zh) 路径查询的方法和装置
CN111460237B (zh) 一种数据查询的方法、装置、可读存储介质和电子设备
WO2015165297A1 (zh) 一种不确定图查询方法及装置
Ma et al. Graph simulation on large scale temporal graphs
Abdolazimi et al. Connected components of big graphs in fixed mapreduce rounds
US20210149746A1 (en) Method, System, Computer Readable Medium, and Device for Scheduling Computational Operation Based on Graph Data
CN105488056B (zh) 一种对象处理方法与设备
Nikbazm et al. Agent-based resource discovery in cloud computing using bloom filters

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