CN104657507A - 基于分布式***的图数据的模式检测方法和装置 - Google Patents
基于分布式***的图数据的模式检测方法和装置 Download PDFInfo
- Publication number
- CN104657507A CN104657507A CN201510113796.6A CN201510113796A CN104657507A CN 104657507 A CN104657507 A CN 104657507A CN 201510113796 A CN201510113796 A CN 201510113796A CN 104657507 A CN104657507 A CN 104657507A
- Authority
- CN
- China
- Prior art keywords
- message
- graph
- node
- input message
- checked
- 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.)
- Granted
Links
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种基于分布式***的图数据的模式检测方法和装置,该方法包括:根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;其中,延迟次数为查询执行计划中处理图节点的后代图节点到该处理图节点的最长路径的边数;获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点;第二待查图节点为与处理图节点关联的后代图节点。本发明实施例提供的基于分布式***的图数据的模式检测方法和装置提高了图数据中模式检测的准确性。
Description
技术领域
本发明实施例涉及计算机技术,尤其涉及一种基于分布式***的图数据的模式检测方法和装置。
背景技术
随着科学技术的发展,图的应用也越来越广泛,尤其是在社交网络、生物信息、交通导航等领域产生了规模庞大的动态图数据,因此,如何在动态图数据中进行模式检测是一个非常重要的问题。
现有技术中,通常采用持续查询的方式进行动态图数据的模式检测,由于图数据规模庞大,持续查询方式一般利用图数据分布式处理框架来支持,其中,典型的分布式框架包括微软的Trinity***、Google的Pregel***,例如:开源实现Giraph等。具体地,在持续查询的方式中,用户将需要检测的查询模式提交到持续查询***中,持续查询***会持续监控底层图数据的变化,一旦发现查询模式在底层图数据中出现,将自动提醒用户查询模式存在。而且,为了处理大规模图数据中的不同类型的操作,持续查询一般以超步为单位来运行,通过多超步实现动态图数据的模式检测。
然而,现有技术中通过多超步实现动态图数据的模式检测时,由于底层图数据在调整过程中,每个图节点所处理的数据可能对应不同版本的数据,使得查询结果是不同版本数据混杂的结果,造成了查询过程中的漏报和误报的现象,使得模式检测的准确性较低。
发明内容
本发明实施例提供一种基于分布式***的图数据的模式检测方法和装置,以提高图数据中模式检测的准确性。
第一方面,本发明实施例提供一种基于分布式***的图数据的模式检测方法,包括:
根据查询模式产生查询执行计划,并通过所述查询执行计划确定处理图节点的延迟次数;其中,所述延迟次数为所述查询执行计划中所述处理图节点的后代图节点到所述处理图节点的最长路径的边数;
获取第一待查图节点发送的输入消息,根据所述延迟次数对所述输入消息进行处理,生成输出消息;
根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点;所述第二待查图节点为与所述处理图节点关联的后代图节点。
结合第一方面,在第一方面的第一种可能的实现方式中,所述输入消息携带有创建所述输入消息的创建时间戳和消息类型标识;
所述根据所述延迟次数对所述输入消息进行处理,生成输出消息,具体包括:
根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法;
若确定所述输入消息不合法,则缓存所述输入消息,并将所述输入消息的同类消息的数量加1;所述同类消息为具有相同的所述第一待查图节点和相同的所述创建时间戳的消息;
若确定所述输入消息合法,则根据所述同类消息生成所述输出消息。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述同类消息生成所述输出消息,具体包括:
根据所述消息类型标识判断所述输入消息所属的类型;
若所述输入消息所属的类型为删除消息,则将所述同类消息的个数减去所述合法的输入消息的个数,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息;或者,
若所述输入消息所属的类型为增加消息,则缓存所述输入消息,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述消息类型标识为删除消息;
所述根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法,具体包括:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳等于所述计算结果,则所述输入消息合法。
结合第一方面的第一种或第二种可能的实现方式,在第一方面的第四种可能的实现方式中,所述消息类型标识为增加消息;
所述根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法,具体包括:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳小于所述计算结果,则所述输入消息合法。
结合第一方面的第二种可能的实现方式,在第一方面的第五种可能的实现方式中,所述根据所述更新后的输入消息,生成输出消息,具体包括:
根据所述更新后的输入消息,判断所述处理图节点是否满足传递规则;所述传递规则为所述处理图节点接收所有与所述处理图节点有关联关系的待查图节点发送的输入消息;
若是,则生成增加消息;
若否,则生成删除消息。
结合第一方面、第一方面的第一种至第一方面的第五种任一种可能的实现方式,在第一方面的第六种可能的实现方式中,所述根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点,具体包括:
若确定所述处理图节点和所述第二待查图节点之间的边合法,则判断之前是否向所述第二待查图节点发送过所述输出消息;
若之前未向所述第二待查图节点发送过所述输出消息,则将所述输出消息发送给所述第二待查图节点。
第二方面,本发明实施例提供一种基于分布式***的图数据的模式检测装置,包括:
确定模块,用于根据查询模式产生查询执行计划,并通过所述查询执行计划确定处理图节点的延迟次数;其中,所述延迟次数为所述查询执行计划中所述处理图节点的后代图节点到所述处理图节点的最长路径的边数;
获取模块,用于获取第一待查图节点发送的输入消息;
处理模块,用于根据所述延迟次数对所述输入消息进行处理,生成输出消息;
发送模块,用于根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点;所述第二待查图节点为与所述处理图节点关联的后代图节点。
结合第二方面,在第二方面的第一种可能的实现方式中,所述获取模块获取的输入消息携带有创建所述输入消息的创建时间戳和消息类型标识;
所述处理模块包括:
判断单元,用于根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法;
存储单元,用于若所述判断单元判断出所述输入消息不合法,则缓存所述输入消息,并将所述输入消息的同类消息的数量加1;所述同类消息为具有相同的所述第一待查图节点和相同的所述创建时间戳的消息;
处理单元,用于若所述判断单元判断出所述输入消息合法,则根据所述同类消息生成所述输出消息。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述处理单元具体用于:
根据所述消息类型标识判断所述输入消息所属的类型;
若所述输入消息所属的类型为删除消息,则将所述同类消息的个数减去所述合法的输入消息的个数,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息;或者,
若所述输入消息所属的类型为增加消息,则缓存所述输入消息,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述获取单元获取的所述输入消息的所述消息类型标识为删除消息;
所述判断单元,具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳等于所述计算结果,则所述输入消息合法。
结合第二方面的第一种或第二种可能的实现方式,在第二方面的第四种可能的实现方式中,所述获取单元获取的所述输入消息的所述消息类型标识为增加消息;
所述判断单元,具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳小于所述计算结果,则所述输入消息合法。
结合第二方面的第二种可能的实现方式,在第二方面的第五种可能的实现方式中,所述处理单元具体用于:
根据所述更新后的输入消息,判断所述处理图节点是否满足传递规则;所述传递规则为所述处理图节点接收所有与所述处理图节点有关联关系的待查图节点发送的输入消息;
若是,则生成增加消息;
若否,则生成删除消息。
结合第二方面、第二方面的第一种至第二方面的第五种任一种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括判断模块;其中,
所述判断模块,用于在确定出所述处理图节点和所述第二待查图节点之间的边合法后,判断之前是否向所述第二待查图节点发送过所述输出消息;
所述发送模块,用于若所述判断模块判断出之前未向所述第二待查图节点发送过所述输出消息,则将所述输出消息发送给所述第二待查图节点。
本发明实施例提供的基于分布式***的图数据的模式检测方法和装置,根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;通过获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点。由于根据延迟次数对获取到的输入消息进行处理,使得每个图节点处理的数据都是同一版本的数据,克服了现有技术中查询结果是不同版本数据混杂的结果,避免了查询过程中的漏报和误报的现象,从而提高了图数据中模式检测的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的基于分布式***的图数据的模式检测方法实施例一的流程示意图;
图2为本发明提供的查询模式结构示意图;
图3为本发明提供的查询执行计划结构示意图;
图4为本发明提供的基于分布式***的图数据的模式检测方法实施例二的流程示意图;
图5为本发明提供的基于分布式***的图数据的模式检测方法实施例三的流程示意图;
图6为本发明基于分布式***的图数据的模式检测装置实施例一的结构示意图;
图7为本发明基于分布式***的图数据的模式检测装置实施例二的结构示意图;
图8为本发明基于分布式***的图数据的模式检测装置实施例三的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例适用于搜索大规模图数据的场景,其具体适用于应用于分布式***中的图节点进行图数据的模式检测的场景。分布式***中的图数据处理框架例如可以是Pregel、Giraph等,数据处理框架以超步为单位执行查询,以接受用户对底层数据的更新请求。该分布式***包括至少一个图节点,该图节点例如可以是计算机,也可以是计算机中的服务器,还可以是面向用户的通信设备。可选的,下述实施例的技术方案均以计算机作为执行主体来介绍。
图1为本发明提供的基于分布式***的图数据的模式检测方法实施例一的流程示意图。如图1所示,该方法包括:
步骤101、根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;其中,延迟次数为查询执行计划中处理图节点的后代图节点到处理图节点的最长路径的边数。
在本实施例中,计算机首先获取用户的查询模式。可选地,该查询模式可以是用户预先配置在计算机中的,还可以是用户通过其他设备发送给计算机的。当计算机获取到查询模式之后,根据该查询模式构建查询执行计划,并将查询执行计划中的消息转换规则附加到处理图节点中,处理图节点再加载到分布式***中的图数据处理框架中,其中,消息转换规则是指处理图节点应该获得查询执行计划中哪些图节点发送的消息,应该将生成的消息发送给哪些图节点等。具体地,获取到查询模式之后,通常会选择一个图节点作为汇总节点,从汇总节点出发,进行宽度优先搜索(BreadthFirst Search;简称:BFS),通过BFS确定图查询模式中边的方向,进一步确定每个图节点的消息传递规则。其中,可以通过中心节点策略或degree最大策略等方式选择汇总节点,以减少图查询模式匹配的时延,减少图查询模式匹配的消息等,对于汇总节点的选择方式,本发明实施例在此不作特别限制。
另外,该查询执行计划中包含有各图节点的延迟次数,因此,根据查询执行计划可以确定出处理图节点的延迟次数。需要进行说明的是,该延迟次数为查询执行计划中各待查图节点到处理图节点的超步数中的最大值,也即各待查图节点到处理图节点的有向路径中的最大值所对应的边的个数。
在具体的实现过程中,由于本发明是基于动态大图中的模式检测方法,大图意味着需要分布式的计算模式,动态则意味着查询执行计划需要增量运行,因此,本发明中采用Exploration的思路产生查询执行计划,也即从某个待查图节点开始向其邻居探索,如果满足查询条件,就继续探索,直到找到匹配的数据子图为止。
需要进行说明的是,将查询执行计划中的消息转换规则附加到处理图节点中时,其附加策略可以有多种,例如:图查询节点和数据节点的标记一致,或者考虑图查询节点和数据节点的局部性结构,将查询节点上的消息转换规则附加到数据节点上,此时,不仅要求图查询节点和数据节点的标记一致,而且需要考虑图查询节点的直接邻居都可以在数据节点的邻居找到。
举例来说,图2为本发明提供的查询模式结构示意图,图3为本发明提供的查询执行计划结构示意图,如图2和图3所示,当获取到查询模式之后,根据该查询模式构建查询执行计划,在该查询执行计划中的每个图节点中,都标记有该图节点的ID和延迟次数,其中,图节点的ID用来唯一的标识该图节点,如图节点c上标记有(4,3),其含义为图节点c的ID为4,延迟次数为3,说明当前汇报的查询结果反映前3个超步之前图数据的状态。
步骤102、获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息。
在本实施例中,第一待查图节点例如可以为查询执行计划中,与处理图节点关联的前一个图节点,值得注意的是,查询执行计划中有多个待查图节点,本发明中对待查图节点的个数不作特别限制。本实施例中以任意一个图节点作为处理图节点,并以与该处理图节点关联的前一个图节点作为第一图节点为例进行说明。
当获取到第一待查图节点发送的输入消息之后,会判断消息缓存队列中是否存在与输入消息的发送图节点相同的发送图节点、以及创建时间的消息,若存在,则将输入消息的出现次数加1,也即需要统计由同一个第一待查图节点发送的、而且具有相同创建时间的同类消息的出现次数;若不存在,则将该输入消息存入消息缓存队列中,同时,将输入消息的出现次数初始化为1。根据统计后的输入消息以及处理图节点的延迟次数对该输入消息进行处理,以生成输出消息。继续参见图3中的执行计划结构示意图,如果将ID为2的图节点b(2,1)作为处理图节点,则ID为0的图节点a(0,0)和ID为1的图节点e(1,0)均为与图节点b(2,1)有关联关系的前一个节点,即第一待查图节点,图节点b(2,1)获取到图节点a(0,0)和图节点e(1,0)发送的输入消息之后,根据自身的延迟次数对输入消息进行处理,生成输出消息。
步骤103、根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点;第二待查图节点为与处理图节点关联的后代图节点。
在本实施例中,第二待查图节点例如可以为查询执行计划中,与处理图节点关联的后代图节点,当生成输出消息之后,可以沿着处理图节点与第二待查图节点之间的边,将该输出消息发送给第二待查图节点。继续参见图3中的执行计划结构示意图,ID为2的处理图节点b(2,1)对输入消息进行处理生成输出消息之后,会沿着处理图节点b(2,1)和ID为4的图节点c(4,3)的边,将该输出消息发送给汇聚图节点c(4,3)。
本发明实施例提供的基于分布式***的图数据的模式检测方法,根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;通过获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点。由于根据延迟次数对获取到的输入消息进行处理,使得每个图节点处理的数据都是同一版本的数据,克服了现有技术中查询结果是不同版本数据混杂的结果,避免了查询过程中的漏报和误报的现象,从而提高了查询的准确性。
图4为本发明提供的基于分布式***的图数据的模式检测方法实施例二的流程示意图。在上述实施例的基础上,对根据延迟次数对输入消息进行处理,生成输出消息的实施例,做详细说明。进一步地,如图4所示,上述步骤102具体包括:
步骤401、根据当前时间戳、创建时间戳、延迟次数和消息类型标识,判断输入消息是否合法。
在本实施例中,获取到的输入消息中还可以携带有创建输入消息的创建时间戳和消息类型标识。其中,消息类型标识用于标识输入消息的类型,例如增加消息或删除消息。计算机获取到输入消息之后,根据当前时间戳、输入消息中的携带的创建时间戳、消息类型标识以及确定出的延迟次数,判断该输入消息是否合法。通过输入消息是否合法的判断处理,可以获得当前超步的有效的删除消息,去移除增加消息。需要注意的是,增加消息和删除消息的有效性不一样,如果没有删除消息,增加消息会一直有效。
在具体的实现过程中,若消息类型标识为删除消息,则在当前超步内判断输入消息是否合法的具体过程为:将当前时间戳减去延迟次数,获得计算结果;若创建时间戳等于计算结果,则输入消息合法。其中,当前时间戳为当前时刻,创建时间戳为创建输入消息的时间。若消息类型标识为增加消息,则在当前超步内判断输入消息是否合法的具体过程为:将当前时间戳减去延迟次数,获得计算结果;若创建时间戳小于计算结果,则输入消息合法。
若输入消息不合法,则执行步骤402,若输入消息合法,则执行步骤403。
步骤402、缓存输入消息,并将输入消息的同类消息的数量加1;同类消息为具有相同的第一待查图节点和相同的创建时间戳的消息。
在本实施例中,同类消息为具有相同的第一待查图节点和相同的创建时间戳的消息,也即由同一个图节点发送的、在同一时间创建的消息。当判断出输入消息尚未合法,将该输入消息进行缓存,并将和该输入消息具有相同的发送图节点以及创建时间的同类消息的数量加1。
步骤403、根据同类消息生成输出消息。
在本实施例中,在获取到第一待查图节点发送的输入消息之后,会首先判断之前是否接收过由同一个待查图节点发送的、且与该输入消息的创建时间戳相同的输入消息,若之前接收过,则将该输入消息的出现次数加1,若之前没有接收过,则缓存该输入消息。
当判断出输入消息为合法时,则需要根据消息类型标识判断输入消息所属的类型,如果该输入消息所属的类型为删除消息,则将同类消息的个数减去合法的输入消息的个数,获得更新后的输入消息,并根据该更新后的输入消息,生成输出消息;需要进行说明的是,删除的输入消息的数量可以为一条,也可以为多条。如果输入消息所属的类型为增加消息,则缓存该输入消息,获得更新后的输入消息,并根据更新后的输入消息,生成输出消息。
本发明实施例提供的基于分布式***的图数据的模式检测方法,根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;通过获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点。由于根据延迟次数对获取到的输入消息进行处理,使得每个图节点处理的数据都是同一版本的数据,克服了现有技术中查询结果是不同版本数据混杂的结果,避免了查询过程中的漏报和误报的现象,从而提高了查询的准确性。另外,由于检测中以超步为运行单位,可以降低模式检测的代价,提高模式检测的可扩展性,而且输入消息及图节点中均带有创建时间戳,提高了检测的准确性。
进一步地,在上述各实施例的基础上,根据更新后的输入消息,生成输出消息,具体包括:根据更新后的输入消息,判断处理图节点是否满足传递规则,若满足,则生成增加消息,而且生成的增加消息的创建时间戳为:当前时间减去延迟次数;若不满足,则生成删除消息,而且生成的删除消息的创建时间戳也为:当前时间减去延迟次数。其中,传递规则为处理图节点接收所有与处理图节点有关联关系的待查图节点发送的消息。以图3所示的查询执行计划为例进行说明:假设ID为2的图节点b(2,1)为处理图节点,则根据查询执行计划,图节点b(2,1)应该接收ID为0的图节点a(0,0)和ID为1的图节点e(1,0)发送的消息。当对输入消息进行合法性判断及删除或者缓存的处理之后,根据更新后的消息,判断图节点b(2,1)是否接收到了图节点a(0,0)和图节点e(1,0)发送的输入消息,若接收到了,则说明图节点b(2,1)满足传递规则,否则,图节点b(2,1)不满足传递规则。
图5为本发明提供的基于分布式***的图数据的模式检测方法实施例三的流程示意图。在上述各实施例的基础上,对根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点的实施例,做详细说明。进一步地,如图5所示,该方法包括:
步骤501、若确定处理图节点和第二待查图节点之间的边合法,则判断之前是否向第二待查图节点发送过输出消息。
在本实施例中,第二待查图节点为与处理图节点有关联关系的后代图节点。当生成输出消息之后,首先需要判断处理图节点与第二待查图节点之间的边是否合法。在具体的实现过程中,在同一个超步内部,可能有边或者图节点的更新,另外,边的删除操作也是一次性的,如果没有删除操作,则新增边是持久有效的。在实际应用过程中,可以通过以下方法判断在当前超步中边的有效性:如果是增加边,则判断该增加边的创建时间戳是否小于当前时间戳减去处理图节点的延迟次数,若小于,则判断出该增加边合法;如果是删除边,则判断该删除边的创建时间戳是否等于当前时间戳减去处理图节点的延迟次数,若等于,则判断出该删除边有效。在确定出处理图节点和第二待查图节点之间的边有效之后,通过判定当前是否有删除操作,若当前有删除操作而且该操作有效,则移除处理图节点和第二待查图节点之间的边。
经过判断及移除操作之后,若确定出处理图节点和第二待查图节点之间存在边,此时,还需要判断之前是否向第二待查图节点发送过相同的输出消息,需要进行说明的是,相同的输出消息是指除创建时间戳以外的其他相关参数均相同的消息,其他相关参数例如可以是:发送方图节点、接收方图节点等。
步骤502、若之前未向第二待查图节点发送过输出消息,则将输出消息发送给第二待查图节点。
在本实施例中,若判断出之前并未向第二待查图节点发送过相同的输出消息,则将生成的输出消息发送给第二待查图节点;若判断出之前已经向第二待查图节点发送过相同的输出消息,则不会重复向第二待查图节点发送该输出消息,以减少输出消息的发送量,节省了资源。
本发明实施例提供的基于分布式***的图数据的模式检测方法,根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;通过获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点。由于根据延迟次数对获取到的输入消息进行处理,使得每个图节点处理的数据都是同一版本的数据,克服了现有技术中查询结果是不同版本数据混杂的结果,避免了查询过程中的漏报和误报的现象,从而提高了查询的准确性。另外,在判断出之前并未向第二待查图节点发送过输出消息之后,才将输出消息发送给第二待查图节点,可以减少输出消息的发送量,节省了资源。
图6为本发明基于分布式***的图数据的模式检测装置实施例一的结构示意图。如图6所示,本发明实施例提供的基于分布式***的图数据的模式检测装置包括确定模块11、获取模块12、处理模块13和发送模块14。
其中,确定模块11用于根据查询模式产生查询执行计划,并通过所述查询执行计划确定处理图节点的延迟次数;其中,所述延迟次数为所述查询执行计划中所述处理图节点的后代图节点到所述处理图节点的最长路径的边数;获取模块12用于获取第一待查图节点发送的输入消息;处理模块13用于根据所述延迟次数对所述输入消息进行处理,生成输出消息;发送模块14用于根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点;所述第二待查图节点为与所述处理图节点关联的后代图节点。
本发明实施例提供的基于分布式***的图数据的模式检测装置,根据查询模式产生查询执行计划,并通过查询执行计划确定处理图节点的延迟次数;通过获取第一待查图节点发送的输入消息,根据延迟次数对输入消息进行处理,生成输出消息;根据处理图节点和第二待查图节点之间的边,将输出消息发送给第二待查图节点。由于根据延迟次数对获取到的输入消息进行处理,使得每个图节点处理的数据都是同一版本的数据,克服了现有技术中查询结果是不同版本数据混杂的结果,避免了查询过程中的漏报和误报的现象,从而提高了查询的准确性。
图7为本发明基于分布式***的图数据的模式检测装置实施例二的结构示意图,如图7所示,本实施例在图6所示实施例的基础上,所述获取模块12获取的输入消息携带有创建所述输入消息的创建时间戳和消息类型标识;所述处理模块13包括:
判断单元131用于根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法;
存储单元132用于若所述判断单元判断出所述输入消息不合法,则缓存所述输入消息,并将所述输入消息的同类消息的数量加1;所述同类消息为具有相同的所述第一待查图节点和相同的所述创建时间戳的消息;
处理单元133用于若所述判断单元判断出所述输入消息合法,则根据所述同类消息生成所述输出消息。
本实施例的基于分布式***的图数据的模式检测装置,可以用于执行本发明任意实施例所提供的基于分布式***的图数据的模式检测方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
可选地,所述处理单元133具体用于:
根据所述消息类型标识判断所述输入消息所属的类型;
若所述输入消息所属的类型为删除消息,则将所述同类消息的个数减去所述合法的输入消息的个数,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息;或者,
若所述输入消息所属的类型为增加消息,则缓存所述输入消息,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息。
可选地,所述获取模块12获取的所述输入消息的所述消息类型标识为删除消息;
所述判断单元131具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳等于所述计算结果,则所述输入消息合法。
可选地,所述获取模块12获取的所述输入消息的所述消息类型标识为增加消息;
所述判断单元131具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳小于所述计算结果,则所述输入消息合法。
可选地,所述处理单元133具体用于:
根据所述更新后的输入消息,判断所述处理图节点是否满足传递规则;所述传递规则为所述处理图节点接收所有与所述处理图节点有关联关系的待查图节点发送的输入消息;
若是,则生成增加消息;
若否,则生成删除消息。
本实施例的基于分布式***的图数据的模式检测装置,可以用于执行本发明任意实施例所提供的基于分布式***的图数据的模式检测方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
图8为本发明基于分布式***的图数据的模式检测装置实施例三的结构示意图,如图8所示,本实施例在图6所示实施例的基础上,所述装置还包括判断模块15;其中,
所述判断模块15用于在确定出所述处理图节点和所述第二待查图节点之间的边合法后,判断之前是否向所述第二待查图节点发送过所述输出消息;
所述发送模块14用于若所述判断模块判断出之前未向所述第二待查图节点发送过所述输出消息,则将所述输出消息发送给所述第二待查图节点。
本实施例的基于分布式***的图数据的模式检测装置,可以用于执行本发明任意实施例所提供的基于分布式***的图数据的模式检测方法的技术方案,其实现原理和技术效果类似,此处不再赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
Claims (14)
1.一种基于分布式***的图数据的模式检测方法,其特征在于,包括:
根据查询模式产生查询执行计划,并通过所述查询执行计划确定处理图节点的延迟次数;其中,所述延迟次数为所述查询执行计划中所述处理图节点的后代图节点到所述处理图节点的最长路径的边数;
获取第一待查图节点发送的输入消息,根据所述延迟次数对所述输入消息进行处理,生成输出消息;
根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点;所述第二待查图节点为与所述处理图节点关联的后代图节点。
2.根据权利要求1所述的方法,其特征在于,所述输入消息携带有创建所述输入消息的创建时间戳和消息类型标识;
所述根据所述延迟次数对所述输入消息进行处理,生成输出消息,具体包括:
根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法;
若确定所述输入消息不合法,则缓存所述输入消息,并将所述输入消息的同类消息的数量加1;所述同类消息为具有相同的所述第一待查图节点和相同的所述创建时间戳的消息;
若确定所述输入消息合法,则根据所述同类消息生成所述输出消息。
3.根据权利要求2所述的方法,其特征在于,所述根据所述同类消息生成所述输出消息,具体包括:
根据所述消息类型标识判断所述输入消息所属的类型;
若所述输入消息所属的类型为删除消息,则将所述同类消息的个数减去所述合法的输入消息的个数,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息;或者,
若所述输入消息所属的类型为增加消息,则缓存所述输入消息,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息。
4.根据权利要求2或3所述的方法,其特征在于,所述消息类型标识为删除消息;
所述根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法,具体包括:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳等于所述计算结果,则所述输入消息合法。
5.根据权利要求2或3所述的方法,其特征在于,所述消息类型标识为增加消息;
所述根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法,具体包括:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳小于所述计算结果,则所述输入消息合法。
6.根据权利要求3所述的方法,其特征在于,所述根据所述更新后的输入消息,生成输出消息,具体包括:
根据所述更新后的输入消息,判断所述处理图节点是否满足传递规则;所述传递规则为所述处理图节点接收所有与所述处理图节点有关联关系的待查图节点发送的输入消息;
若是,则生成增加消息;
若否,则生成删除消息。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点,具体包括:
若确定所述处理图节点和所述第二待查图节点之间的边合法,则判断之前是否向所述第二待查图节点发送过所述输出消息;
若之前未向所述第二待查图节点发送过所述输出消息,则将所述输出消息发送给所述第二待查图节点。
8.一种基于分布式***的图数据的模式检测装置,其特征在于,包括:
确定模块,用于根据查询模式产生查询执行计划,并通过所述查询执行计划确定处理图节点的延迟次数;其中,所述延迟次数为所述查询执行计划中所述处理图节点的后代图节点到所述处理图节点的最长路径的边数;
获取模块,用于获取第一待查图节点发送的输入消息;
处理模块,用于根据所述延迟次数对所述输入消息进行处理,生成输出消息;
发送模块,用于根据所述处理图节点和第二待查图节点之间的边,将所述输出消息发送给所述第二待查图节点;所述第二待查图节点为与所述处理图节点关联的后代图节点。
9.根据权利要求8所述的装置,其特征在于,所述获取模块获取的输入消息携带有创建所述输入消息的创建时间戳和消息类型标识;
所述处理模块包括:
判断单元,用于根据当前时间戳、所述创建时间戳、所述延迟次数和所述消息类型标识,判断所述输入消息是否合法;
存储单元,用于若所述判断单元判断出所述输入消息不合法,则缓存所述输入消息,并将所述输入消息的同类消息的数量加1;所述同类消息为具有相同的所述第一待查图节点和相同的所述创建时间戳的消息;
处理单元,用于若所述判断单元判断出所述输入消息合法,则根据所述同类消息生成所述输出消息。
10.根据权利要求9所述的装置,其特征在于,所述处理单元具体用于:
根据所述消息类型标识判断所述输入消息所属的类型;
若所述输入消息所属的类型为删除消息,则将所述同类消息的个数减去所述合法的输入消息的个数,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息;或者,
若所述输入消息所属的类型为增加消息,则缓存所述输入消息,获得更新后的输入消息,并根据所述更新后的输入消息,生成输出消息。
11.根据权利要求9或10所述的装置,其特征在于,所述获取模块获取的所述输入消息的所述消息类型标识为删除消息;
所述判断单元,具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳等于所述计算结果,则所述输入消息合法。
12.根据权利要求9或10所述的装置,其特征在于,所述获取模块获取的所述输入消息的所述消息类型标识为增加消息;
所述判断单元,具体用于:
将所述当前时间戳减去所述延迟次数,获得计算结果;
若所述创建时间戳小于所述计算结果,则所述输入消息合法。
13.根据权利要求10所述的装置,其特征在于,所述处理单元具体用于:
根据所述更新后的输入消息,判断所述处理图节点是否满足传递规则;所述传递规则为所述处理图节点接收所有与所述处理图节点有关联关系的待查图节点发送的输入消息;
若是,则生成增加消息;
若否,则生成删除消息。
14.根据权利要求8-13所述的装置,其特征在于,所述装置还包括判断模块;其中,
所述判断模块,用于在确定出所述处理图节点和所述第二待查图节点之间的边合法后,判断之前是否向所述第二待查图节点发送过所述输出消息;
所述发送模块,用于若所述判断模块判断出之前未向所述第二待查图节点发送过所述输出消息,则将所述输出消息发送给所述第二待查图节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510113796.6A CN104657507B (zh) | 2015-03-16 | 2015-03-16 | 基于分布式***的图数据的模式检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510113796.6A CN104657507B (zh) | 2015-03-16 | 2015-03-16 | 基于分布式***的图数据的模式检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104657507A true CN104657507A (zh) | 2015-05-27 |
CN104657507B CN104657507B (zh) | 2017-12-08 |
Family
ID=53248634
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510113796.6A Active CN104657507B (zh) | 2015-03-16 | 2015-03-16 | 基于分布式***的图数据的模式检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104657507B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559166A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 用于分布式处理***中基于指纹的状态检测方法及设备 |
CN110889000A (zh) * | 2018-09-10 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110213801A1 (en) * | 2010-03-01 | 2011-09-01 | International Business Machines Corporation | Efficient computation of top-k aggregation over graph and network data |
CN102799624A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于Datalog的分布式环境下大图数据查询方法 |
CN103279543A (zh) * | 2013-05-13 | 2013-09-04 | 清华大学 | 海量图数据上的路径模式查询*** |
CN103970860A (zh) * | 2014-05-07 | 2014-08-06 | 华为技术有限公司 | 一种数据处理的方法、装置及*** |
-
2015
- 2015-03-16 CN CN201510113796.6A patent/CN104657507B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110213801A1 (en) * | 2010-03-01 | 2011-09-01 | International Business Machines Corporation | Efficient computation of top-k aggregation over graph and network data |
CN102799624A (zh) * | 2012-06-19 | 2012-11-28 | 北京大学 | 基于Datalog的分布式环境下大图数据查询方法 |
CN103279543A (zh) * | 2013-05-13 | 2013-09-04 | 清华大学 | 海量图数据上的路径模式查询*** |
CN103970860A (zh) * | 2014-05-07 | 2014-08-06 | 华为技术有限公司 | 一种数据处理的方法、装置及*** |
Non-Patent Citations (3)
Title |
---|
JUN GAO ET AL: "Continuous pattern detection over billion-edge graph using distributed framework", 《2014 IEEE 30TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
JUN GAO ET AL: "GLog: A high level graph analysis system using MapReduce", 《2014 IEEE 30TH INTERNATIONAL CONFERENCE ON DATA ENGINEERING》 * |
许世峰等: "基于穿行次数的大规模图数据路径查询", 《计算机研究与发展》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106559166A (zh) * | 2015-09-25 | 2017-04-05 | 伊姆西公司 | 用于分布式处理***中基于指纹的状态检测方法及设备 |
CN110889000A (zh) * | 2018-09-10 | 2020-03-17 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN110889000B (zh) * | 2018-09-10 | 2022-08-16 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN104657507B (zh) | 2017-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110908997B (zh) | 数据血缘构建方法、装置、服务器及可读存储介质 | |
Montresor et al. | Distributed k-core decomposition | |
CN102592103B (zh) | 文件安全处理方法、设备及*** | |
CN111191080B (zh) | 一种数据处理的方法及装置 | |
CN109413016B (zh) | 一种基于规则的报文检测方法和装置 | |
CN112738172A (zh) | 区块链节点的管理方法、装置、计算机设备和存储介质 | |
JP2014225117A (ja) | 伝達情報変動検知方法、伝達情報変動検知装置および伝達情報変動検知プログラム | |
CN104503983A (zh) | 为搜索引擎提供网站认证数据的方法及装置 | |
CN106022936B (zh) | 适用论文合作网络的基于社团结构的影响最大化算法 | |
CN113342500B (zh) | 任务执行方法、装置、设备及存储介质 | |
CN104657507A (zh) | 基于分布式***的图数据的模式检测方法和装置 | |
CN104580428A (zh) | 一种数据路由方法、数据管理装置和分布式存储*** | |
CN112383513B (zh) | 基于代理ip地址池的爬虫行为检测方法、装置及存储介质 | |
CN107920067B (zh) | 一种主动对象存储***上的入侵检测方法 | |
CN111049750B (zh) | 一种报文转发方法、***及设备 | |
CN109389271B (zh) | 应用性能管理方法及*** | |
Tang et al. | Distributed online tracking | |
KR101609457B1 (ko) | 대용량 그래프 데이터베이스에서 하한 경계값에 기초하여 메디안 노드를 검색하는 방법 | |
CN114579826B (zh) | 基于知识图谱的任务处理方法及装置 | |
CN107959662B (zh) | 网站安全检测的方法和*** | |
CN110442616A (zh) | 一种针对大数据量的页面访问路径分析方法与*** | |
Wei et al. | Optimal pruned tree-cut mapping-based fast shielding for large-scale networks | |
Lakemond et al. | Resection‐Intersection Bundle Adjustment Revisited | |
Yoon et al. | Abnormal network flow detection based on application execution patterns from Web of Things (WoT) platforms | |
CN111767060A (zh) | 多阶段灰度验证方法、装置、电子设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |