关系发现的分布式计算方法和系统、计算机可读存储介质与流程

文档序号:17858453发布日期:2019-06-11 22:42阅读:185来源:国知局
关系发现的分布式计算方法和系统、计算机可读存储介质与流程

本申请涉及但不限于数据挖掘技术领域,尤其涉及一种关系发现的分布式计算方法和系统、计算机可读存储介质。



背景技术:

公安领域中基于事件数据的挖掘定义了一类关系,该类关系旨在通过分析、挖掘、推理的方式找到实体之间的关系,所以该类关系称为隐性关系。当前隐性关系的发现主要依赖事件数据,比如火车出行、上网和旅店住宿等数据。此类隐性关系把每次事件数据定义为一次活动,在每次相同的活动中多个实体之间的关系被定义为结伴,基于常识和经验假设多次活动就表现为具有“伙伴”关系。

现有的关系发现方法通常通过单台服务器实现,但是,在关系规则较多的情况下,这种关系发现方法通常比较耗时,计算效率通常比较低下。



技术实现要素:

本发明实施例提供了一种关系发现的分布式计算方法和系统、计算机可读存储介质,能够提高关系发现的计算效率。

本发明实施例的技术方案是这样实现的:

本发明实施例提供了一种关系发现的分布式计算方法,包括:

将事件数据分别同步至多台分布式主机;

按照预设的任务分配方式,在所述分布式主机上分别执行一个或多个关系发现的任务,以发现所述事件数据中的隐性关系,所述预设的任务分配方式包括以下至少之一:任务类型、事件类型、事件发生的时间。

在一实施例中,所述将事件数据分别同步至多台分布式主机,包括:

将所述事件数据整体分别同步至多台所述分布式主机;或者,

按照以下至少之一:所述事件类型、所述事件发生的时间,选择所述事件数据并将选择的事件数据同步至多台所述分布式主机。

在一实施例中,所述任务类型包括以下至少之一:数据编码、构建索引、第一数据同步、关系计算、第二数据同步、关系计算结果查询,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;所述第一数据同步是指将编码后的事件数据和/或构建索引后的事件数据同步至所述分布式主机;所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

在一实施例中,所述方法之前还包括:对所述事件数据进行数据编码和构建索引,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;

所述任务类型包括以下至少之一:关系计算、第二数据同步、关系计算结果查询,所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的关系发现的分布式计算方法的步骤。

本发明实施例还提供了一种关系发现的分布式计算系统,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的关系发现的分布式计算方法的步骤。

本发明实施例还提供了一种关系发现的分布式计算系统,包括多台分布式主机,还包括数据分发模块和任务执行模块,其中:

数据分发模块,用于将事件数据分别同步至多台分布式主机;

任务执行模块,用于按照预设的任务分配方式,在所述分布式主机上分别执行一个或多个关系发现的任务,以发现所述事件数据中的隐性关系,所述预设的任务分配方式包括以下至少之一:任务类型、事件类型、事件发生的时间。

在一实施例中,所述数据分发模块具体用于:

将所述事件数据整体分别同步至多台所述分布式主机;或者,

按照以下至少之一:所述事件类型、所述事件发生的时间,选择所述事件数据并将选择的事件数据同步至多台所述分布式主机。

在一实施例中,所述任务类型包括以下至少之一:数据编码、构建索引、第一数据同步、关系计算、第二数据同步、关系计算结果查询,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;所述第一数据同步是指将编码后的事件数据和/或构建索引后的事件数据同步至所述分布式主机;所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

在一实施例中,在将事件数据分别同步至多台分布式主机之前,所述数据分发模块还用于:对所述事件数据进行数据编码和构建索引,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;

所述任务类型包括以下至少之一:关系计算、第二数据同步、关系计算结果查询,所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

本发明实施例的技术方案,具有如下有益效果:

本发明实施例提供的关系发现的分布式计算方法和系统、计算机可读存储介质,通过按照以下至少之一:任务类型、事件类型、事件发生的时间,在多台分布式主机上分别执行一个或多个关系发现的任务,减少了关系发现的时间,提高了关系发现的计算效率。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例的一种关系发现的分布式计算方法的流程示意图;

图2为本发明实施例的一种数据同步方法的原理示意图;

图3为本发明实施例的另一种数据同步方法的原理示意图;

图4为本发明实施例的一种关系发现的单机执行过程示意图;

图5为本发明实施例的一种关系计算方法的原理示意图;

图6为本发明实施例的另一种关系计算方法的原理示意图;

图7为本发明实施例的一种关系发现的分布式计算系统的结构示意图;

图8为本发明实施例的另一种关系发现的分布式计算方法的流程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

从事件数据中通过分析、挖掘、推理的方式提取出的关系称为隐性关系。隐性关系的发现主要是通过专家提供的规则经验或者通过关联分析出可信的模式。伙伴关系是本申请挖掘的一种隐性关系的类型,该关系是一种互为伙伴的隐性关系。

实体是产生事件的一个个体,是事件发生的主体,比如火车事件,它是以人为主,则这个实体就是某个人,而表示一个人的方式有多种,如:身份证,护照号,军官证等,所以有时也将一个具体表示一个人的唯一id作为一个实体。

实体信息即实体的详细信息,例如火车事件,有车次、车厢、座位号、发站、到站等信息。

实体与实体事件是可能存在的,显性关系表示关系已经客观存在,可以通过事实直接作出判断,比如亲属关系。而隐性关系就是无法通过简单信息就可以判断的,需要一定的计算规则从历史数据做一些统计和计算才能够确定他们是否存在规则,这种关系是一种可能性也就是满足某个规则的两个实体只是有非常大的可能有这个关系。关系规则是指社交网络分析、实体关系分析等场景中的一些相似、相近、相关关系的识别领域知识。关系规则的产生大多依赖专家的历史经验和大量数据案例分析得到。

我们把实体人之间发生相同事件的情景称为一种模式,如果该模式频繁度高就说明具有一定的真实性,比如:两个人同坐火车到某地,然后到相同宾馆入住,如果这样的偶然事件发生的次数多了,我们很容易判断两个人定然是认识的,或是同时一起出差,也可能是同学、老乡等。也就是说从偶然转换成必然是在一定模式下提高了出现的频次,当频次达到一个量的时候就发生了变化。所以通过频繁模式来找两个人的关系是一种实现的手段。频繁模式主要是通过挖掘主体人在多个事件中出现的频繁程度来确定是否存在一定的关系。

如图1所示,根据本发明实施例的一种关系发现的分布式计算方法,包括如下步骤:

步骤101:将事件数据分别同步至多台分布式主机;

在本发明的一实施例中,所述步骤101具体包括:将所述事件数据整体分别同步至多台所述分布式主机。

在该实施例中,如图2所示,每台分布式主机上都存放了所述事件数据整体,每次进行关系计算时各台分布式主机只需要找到自己需要的数据使用即可。在该情况下,可以通过数据编码和压缩技术来存储所述事件数据整体。

在本发明的另一实施例中,所述步骤101具体包括:按照以下至少之一:所述事件类型、所述事件发生的时间,选择所述事件数据并将选择的事件数据同步至多台所述分布式主机。

在该实施例中,如图3所示,各台分布式主机上各自存储了所述事件数据的一部分,在后续步骤中,各台分布式主机在执行关系发现的任务时,只执行与各自存储的该部分事件数据相关的任务。当某台分布式主机出现故障,不能执行已分配的任务时,再由指定的其它分布式主机执行该分布式主机的任务,并将该分布式主机存储的该部分事件数据同步至所述指定的其它分布式主机上。由此,可以明确地将各部分事件数据分别同步到具体的分布式主机上,从而减少了不必要的数据传输,降低了网络负载。

在该实施例的一示例中,可以通过哈希(hash)计算哈希值将各部分事件数据分配到对应的分布式主机上,也可以通过预先设定的方式将各部分事件数据分配到指定的分布式主机上。

在本发明的一实施例中,所述方法之前还包括:对所述事件数据进行数据编码和构建索引,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值。

在该实施例的一示例中,所述编码后的数据以实体为关键字,以实体以外的字段为数据列。

步骤102:按照预设的任务分配方式,在所述分布式主机上分别执行一个或多个关系发现的任务,以发现所述事件数据中的隐性关系,所述预设的任务分配方式包括以下至少之一:任务类型、事件类型、事件发生的时间。

在本发明的一实施例中,当所述方法之前还包括:对所述事件数据进行数据编码和构建索引时,所述任务类型包括以下至少之一:关系计算、第二数据同步、关系计算结果查询,所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

在该实施例中,所述结果主机可以为其中的一台分布式主机,也可以为与各分布式主机通过网络相连的服务器。

在本发明的另一实施例中,所述任务类型包括以下至少之一:数据编码、构建索引、第一数据同步、关系计算、第二数据同步、关系计算结果查询,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;所述第一数据同步是指将编码后的事件数据和/或构建索引后的事件数据同步至所述分布式主机;所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

基于事件数据的关系发现主要是指,从事件数据中提取同一时间在同一地点发生的事件,如果频次达到一定次数后就认为事件中的实体是有关系的,如图4所示,该关系发现在单机执行模式下,主要包括以下三个阶段:

一、数据编码阶段(即标准数据构建阶段),该阶段主要指从原始数据中提取某一种实体或事件在关系计算时所需要的数据列,并对数据列进行编码的过程,例如:在火车乘车事件中,原始数据的每一行都包括乘车人、乘车日期、车次、车厢、座位号、始发站、到达站、售票窗口、售票员、售票火车站、订票日期等等很多信息,该阶段就是从这些数据中提取关系计算所需要的数据列(比如:乘车人、乘车日期、车次、车厢、始发站、到达站)。在该阶段之后,原始数据变成了以实体为关键字(key),以实体以外的字段为数据列(value)的数据结构。

二、构建索引阶段,为了提高规则计算效率,可以将标准数据按照某种规则分组,例如,分组规则可以是相同乘车日期并且相同车次和相同车厢,这样分组之后同一组内的数据有相同属性,将该属性称为索引,索引值用id表示。

三、关系计算阶段,在索引的基础上来计算关系,该关系是通过设定的具体的事件规则,比如:火车同车次同车厢3次,那么我们选择火车同车次同车厢索引,然后对索引中记录的key来实现两两碰撞。

在以上各个阶段中,关系计算阶段是最耗时的步骤,如果能分布式实现,就能大幅提升关系发现的效率。

现在我们把分布式实现基于规则的关系计算聚焦到单机执行模式的关系计算阶段。要想运行关系计算阶段,是需要依赖数据编码阶段和构建索引阶段生成的事件数据的,那么为了减少分布式计算中数据本地化需要的网络开销,假定当前实现关系计算阶段的分布式主机上已经存储了前两个阶段输出的数据,该阶段在本分布式主机上可以顺利执行而不需要依赖网络去获取需要的数据,基于这个假定有两种数据存储方式:

1)把关系计算阶段的任务固定地分配到某台分布式主机上运行,直到该分布式主机不能提供服务,再路由到该分布式主机以外的其它主机上,这样该任务依赖的前两阶段数据就可以很明确地只存储到具体某一台分布式主机上,如图3所示。

2)每台分布式主机上都存储了前两个阶段的数据,如图2所示,每次关系计算阶段只需要查找自己需要的数据即可。基于实施经验,通过数据编码和压缩技术,即使存储全部事件数据也是可行的。

上述是关于关系计算阶段之前的数据存储的两种策略,针对上述第一种方式,如图5所示,各台分布式主机按照事件类型存储所述事件数据,在关系计算阶段,只需简单使用本机存储的事件数据完成关系计算,并将关系计算结果存储至结果主机中即可;但是,当需要基于多种事件类型完成一种关系计算时,可以使用第二种存储数据的方式。

在计算多事件关系的任务时,如图6所示,我们还可以按照事件发生的时间把任务分配到不同的分布式主机上执行。最后,将关系计算阶段生成的结果数据汇聚到一台结果主机中以提供关系结果查询服务。

本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如以上任一项所述的关系发现的分布式计算方法的步骤。

本发明实施例还提供了一种关系发现的分布式计算系统,包括处理器及存储器,其中:所述处理器用于执行存储器中存储的程序,以实现如以上任一项所述的关系发现的分布式计算方法的步骤。

如图7所示,本发明实施例还提供了一种关系发现的分布式计算系统,包括多台分布式主机,还包括数据分发模块701和任务执行模块702,其中:

数据分发模块701,用于将事件数据分别同步至多台分布式主机;

任务执行模块702,用于按照预设的任务分配方式,在所述分布式主机上分别执行一个或多个关系发现的任务,以发现所述事件数据中的隐性关系,所述预设的任务分配方式包括以下至少之一:任务类型、事件类型、事件发生的时间。

需要说明的是,所述数据分发模块701可以位于一台与所述分布式主机通过网络相连的服务器上,也可以位于多台分布式主机中的其中一台上。所述任务执行模块702位于所述分布式主机上。

在本发明的一实施例中,所述数据分发模块701具体用于:将事件数据整体分别同步至多台分布式主机。

在该实施例中,如图2所示,每台分布式主机上都存放了所述事件数据整体,每次进行关系计算时各台分布式主机只需要找到自己需要的数据使用即可。在该情况下,可以通过数据编码和压缩技术来存储所述事件数据整体。

在本发明的另一实施例中,所述数据分发模块701具体用于:按照以下至少之一:事件类型、事件发生的时间,选择事件数据并将选择的事件数据同步至多台分布式主机。

在该实施例中,如图3所示,各台分布式主机上各自存储了所述事件数据的一部分,在后续步骤中,各台分布式主机在执行关系发现的任务时,只执行与各自存储的该部分事件数据相关的任务。当某台分布式主机出现故障,不能执行已分配的任务时,再由指定的其它分布式主机执行该分布式主机的任务,并将该分布式主机存储的该部分事件数据同步至所述指定的其它分布式主机上。由此,可以明确地将各部分事件数据分别同步到具体的分布式主机上,从而减少了不必要的数据传输,降低了网络负载。

在该实施例中,各台分布式主机可以按照事件类型和/或事件发生的时间各自存储所述事件数据的一部分。当按照事件类型存储所述事件数据时,在关系计算阶段,如图5所示,只需简单使用本机存储的数据完成存储的事件数据中的关系计算,并将关系计算结果存储至结果主机中即可,此时通常只能基于一种事件类型进行关系计算。

当需要基于多种事件类型完成一种关系计算时,如图6所示,可以按照事件发生的时间把任务分配到不同的分布式主机执行。最后,将关系计算阶段生成的关系计算结果汇聚到一台结果主机中以提供关系结果查询服务。

在本发明的一实施例中,所述任务类型包括以下至少之一:数据编码、构建索引、第一数据同步、关系计算、第二数据同步、关系计算结果查询,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;所述第一数据同步是指将编码后的事件数据和/或构建索引后的事件数据同步至所述分布式主机;所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

在该实施例的一示例中,所述编码后的数据以实体为关键字,以实体以外的字段为数据列。

在本发明的一实施例中,在将事件数据分别同步至多台分布式主机之前,所述数据分发模块701还用于:对所述事件数据进行数据编码和构建索引,其中,所述数据编码是指提取所述事件数据中关系计算所必需的字段并对其进行编码;所述构建索引是指对所述编码后的数据进行分组,同组数据添加相同索引值;

所述任务类型包括以下至少之一:关系计算、第二数据同步、关系计算结果查询,所述第二数据同步是指将所述分布式主机得到的关系计算结果同步至用于提供结果查询的结果主机。

本发明实施例提供了两种关系发现的分布式计算方式,包括:

其一,首先按照一定的策略(例如,按照以下至少之一:任务类型、事件类型、事件发生的时间),把关系发现的任务分配到多台分布式主机上,然后按照指定的策略,在多台分布式主机上依次构建:数据编码阶段=》构建索引阶段=》关系计算阶段,最后把关系计算结果同步到一台结果主机上,以提供结果查询;

其二,首先在一台服务器上依次构建:数据编码阶段=》构建索引阶段,将数据编码和构建索引后的事件数据同步到各台分布式主机上,然后按照指定的策略,在各台分布式主机上实现关系计算阶段,这时既可以实现单事件关系的计算,也可以实现多事件关系的计算。

图8为根据本发明实施例的一种关系发现的分布式计算方法的具体流程示意图。以下参考图8,详细说明本发明实施例提供的关系发现的分布式计算过程:

一、完成策略配置

1、数据存储可以选择按照事件类型和/或事件发生的时间同步到不同的分布式主机上(可以通过hash计算哈希值分配到对应的分布式主机上,也可以通过预先设定的方式分配到指定的分布式主机上),也可以选择将事件数据整体同步到不同的分布式主机上。

2、关系计算策略,可以选择单机执行模式(即在一台主机上完成关系计算,并把关系计算结果同步到指定的结果主机中),也可以选择按照事件发生的时间来执行。如果选择按事件发生的时间执行关系计算,可以指定事件发生的时间区间和事件数。

这里注意,如果数据存储选择的是按事件类型和/或事件发生的时间进行同步,这里的单机执行模式也会按事件类型和/或事件发生的时间执行关系计算。

二、数据同步

解析完成配置后按照配置生成的任务并行在各台分布式主机上执行,这里注意如果选择的是将全部数据同步到每台分布式主机上时,数据编码和构建索引可以在服务器上执行一次,然后将数据编码和构建索引的结果同步到每台分布式主机上,而不是每台分布式主机都需要进行数据编码和构建索引。

三、关系计算

1、单机执行模式:如果选择关系计算方式为单机执行模式,多台分布式主机上可以分别运行不同事件类型的关系计算,每台分布式主机上的关系计算任务之间没有任何联系,运行完后各分布式主机将自己运算的关系计算结果同步到结果主机即可。

2、按事件发生的时间执行:选择按照时间间隔模式执行,任务启动时按照设定的时间间隔,把各时间段的事件数据分到各个分布式主机上,每个分布式主机上分配了具体一个时间段的任务。各个分布式主机执行完任务后,将自己运算的关系计算结果同步到结果主机中。

四、结果查询

在结果主机中累加各个分布式主机生成的关系计算结果,在该累加计算结果上可以实现具体详细关系规则的查询。

本发明实施例通过利用不同的策略分配任务,高效地实现了数据本地化,减少了分布式计算中网络传输带来的影响,在关系发现效率上得到了明显的提升,从根本上提高了分布式主机资源的利用率;此外,通过数据编码和构建索引,大大减少了多余的无效计算,提升了系统的性能。

本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件完成,所述程序可以存储于计算机可读存储介质中,如只读存储器、磁盘或光盘等。可选地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现。相应地,上述实施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请不限制于任何特定形式的硬件和软件的结合。

以上仅为本申请的优选实施例,当然,本申请还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本申请所附的权利要求的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1