基于异构分布式知识图谱的大数据处理方法、设备及介质转让专利

申请号 : CN201910770620.6

文献号 : CN110472068B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 宋群豪

申请人 : 星环信息科技(上海)有限公司

摘要 :

本发明实施例公开了一种基于异构分布式知识图谱的大数据处理方法、设备及介质。方法包括:根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果。本实施例基于节点表和关系表提供了一种高效地针对异构分布式知识图谱的数据处理方法。

权利要求 :

1.一种基于异构分布式知识图谱的大数据处理方法,其特征在于,包括:根据异构分布式知识库的数据结构,构造所述异构分布式知识图谱的节点表和关系表;

根据图谱计算请求,确定图谱计算场景,确定所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;

根据所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从所述节点表和关系表中,提取与所述图谱计算场景对应的至少一个计算节点;

从所述异构分布式知识图谱中过滤出与所述至少一个计算节点对应的节点数据;

对过滤出的所述节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;

其中,所述节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,所述关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。

2.根据权利要求1所述的方法,其特征在于,所述异构分布式知识图谱存储分布式存储在多个设备中;

从所述异构分布式知识图谱中过滤出与所述至少一个计算节点对应的节点数据,包括:从每个设备中过滤出与所述至少一个计算节点对应的节点数据;

所述对过滤出的所述节点数据进行计算,得到基于异构分布式知识图谱的数据处理结果,包括:对从每个设备中过滤出对应的节点数据进行计算;

汇总每个设备的计算结果,得到基于异构分布式知识图谱的数据处理结果。

3.根据权利要求1所述的方法,其特征在于,在对过滤出的所述节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果之后,还包括:将所述数据处理结果添加到所述节点表中的属性集合中,或者关系表中的属性集合中;和/或,将所述数据处理结果添加到所述节点表中对应节点的属性中,或者关系表中对应边的属性中。

4.根据权利要求3所述的方法,其特征在于,所述根据所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从所述节点表和关系表中,确定与所述数据计算场景对应的至少一个计算节点,包括:根据所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,在节点表中查找节点的标识,在关系表中查找起始节点标识和目标节点标识;

根据节点的标识、起始节点标识和目标节点标识,确定所述至少一个计算节点。

5.根据权利要求1所述的方法,其特征在于,根据异构分布式知识库的数据结构,构造所述异构分布式知识图谱的节点表和关系表,包括:加载用于构建异构分布式知识图谱的节点数据源和边数据源;

识别所述节点数据源的数据结构以及边数据源的数据结构;

根据节点数据源的数据结构,构建所述节点表;以及根据边数据源的数据结构,构建所述关系表;

按照所述节点表和关系表,将节点数据源和边数据源中的数据读入到所述异构分布式知识图谱对应的图数据库中。

6.根据权利要求5所述的方法,其特征在于,所述根据节点数据源的数据结构,构建所述节点表,包括:根据节点数据源中的编号列,生成节点表中各节点的标识;

根据节点数据源中的类型字段,生成节点表中各节点的类型;

根据节点数据源中的属性字段,生成节点表中各节点的属性;

对各节点的类型和属性分别进行汇总,生成节点的类型集合和属性集合。

7.根据权利要求5所述的方法,其特征在于,所述根据边数据源的数据结构,构建所述关系表,包括:根据边数据源中的起始节点对应的编号列,生成关系表中各边的起始节点标识;

根据边数据源中的目标节点对应的编号列,生成关系表中各边的目标节点标识;

根据边数据源中的类型字段,生成关系表中各边的类型;

根据边数据源中的属性字段,生成关系表中各边的属性;

对各边的类型和属性分别进行汇总,生成边的类型集合和属性集合。

8.一种计算机设备,包括处理器和存储器,所述存储器用于存储指令,当所述指令执行时使得所述处理器执行以下操作:根据异构分布式知识库的数据结构,构造所述异构分布式知识图谱的节点表和关系表;

根据图谱计算请求,确定图谱计算场景,确定所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;

根据所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从所述节点表和关系表中,提取与所述图谱计算场景对应的至少一个计算节点;

从所述异构分布式知识图谱中过滤出与所述至少一个计算节点对应的节点数据;

对过滤出的所述节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;

其中,所述节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,所述关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。

9.根据权利要求8所述的计算机设备,其特征在于,所述异构分布式知识图谱存储分布式存储在多个设备中;

所述处理器是设置为通过以下方式从所述异构分布式知识图谱中过滤出与所述至少一个计算节点对应的节点数据:从每个设备中过滤出与所述至少一个计算节点对应的节点数据;

所述处理器是设置为通过以下方式得到基于异构分布式知识图谱的数据处理结果:对从每个设备中过滤出对应的节点数据进行计算;

汇总每个设备的计算结果,得到基于异构分布式知识图谱的数据处理结果。

10.根据权利要求8所述的计算机设备,其特征在于,所述处理器还设置为:在得到基于异构分布式知识图谱的数据处理结果之后,将所述数据处理结果添加到所述节点表中的属性集合中,或者关系表中的属性集合中;和/或,将所述数据处理结果添加到所述节点表中对应节点的属性中,或者关系表中对应边的属性中。

11.根据权利要求10所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式确定与所述数据计算场景对应的至少一个计算节点:根据所述图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,在节点表中查找节点的标识,在关系表中查找起始节点标识和目标节点标识;

根据节点的标识、起始节点标识和目标节点标识,确定所述至少一个计算节点。

12.根据权利要求8所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式构造所述异构分布式知识图谱的节点表和关系表:加载用于构建异构分布式知识图谱的节点数据源和边数据源;

识别所述节点数据源的数据结构以及边数据源的数据结构;

根据节点数据源的数据结构,构建所述节点表;以及根据边数据源的数据结构,构建所述关系表;

按照所述节点表和关系表,将节点数据源和边数据源中的数据读入到所述异构分布式知识图谱对应的图数据库中。

13.根据权利要求12所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式构建所述节点表:根据节点数据源中的编号列,生成节点表中各节点的标识;

根据节点数据源中的类型字段,生成节点表中各节点的类型;

根据节点数据源中的属性字段,生成节点表中各节点的属性;

对各节点的类型和属性分别进行汇总,生成节点的类型集合和属性集合。

14.根据权利要求12所述的计算机设备,其特征在于,所述处理器是设置为通过以下方式构建所述关系表:根据边数据源中的起始节点对应的编号列,生成关系表中各边的起始节点标识;

根据边数据源中的目标节点对应的编号列,生成关系表中各边的目标节点标识;

根据边数据源中的类型字段,生成关系表中各边的类型;

根据边数据源中的属性字段,生成关系表中各边的属性;

对各边的类型和属性分别进行汇总,生成边的类型集合和属性集合。

15.一种存储介质,所述存储介质用于存储指令,所述指令用于执行如权利要求1-7中任一所述的基于异构分布式知识图谱的大数据处理方法。

说明书 :

基于异构分布式知识图谱的大数据处理方法、设备及介质

技术领域

[0001] 本发明实施例涉及知识图谱技术,尤其涉及一种基于异构分布式知识图谱的大数据处理方法、设备及介质。

背景技术

[0002] 知识图谱(Knowledge Graph)又称为科学知识图谱,在图书情报界称为知识域可视化或知识领域映射地图。知识图谱的生命周期由以下几个部分组成:数据ETL(Extract-Transform-Load)、知识抽取、定义图谱、数据导入、知识推理、知识应用。
[0003] 知识图谱一般分为异构知识图谱和同构知识图谱,同构知识图谱中的节点和边分别拥有同样的类型,即不作类型区分,而异构知识图谱中的节点和边可以拥有不同的类型,甚至拥有不同的属性。目前,异构知识图谱一般采用三元组、五元组、七元组等形式来描述,例如,通过“概念,关系,规则”来表示由“点-边”组成的大规模有向知识图谱。通过多元组形式描述知识图谱能够清晰表示概念与概念之间的关系、概念与实体的关系、实体与实体之间的关系、实体与属性的关系、属性与属性值的关系等等。
[0004] 虽然多元组形式带来诸多好处,但在对异构分布式知识图谱进行计算时,多元组形式不够简练,且包含了大量的冗余信息,不利于过滤感兴趣的节点数据,导致大大增加计算的复杂度。

发明内容

[0005] 本发明实施例提供一种基于异构分布式知识图谱的大数据处理方法、装置、设备及介质,以提供一种有效的针对异构分布式知识图谱的数据处理方案。
[0006] 第一方面,本发明实施例提供了一种基于异构分布式知识图谱的大数据处理方法,包括:
[0007] 根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0008] 根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0009] 根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;
[0010] 从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0011] 对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0012] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0013] 第二方面,本发明实施例还提供了一种基于异构分布式知识图谱的大数据处理装置,包括:
[0014] 构建模块,用于根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0015] 确定模块,用于根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0016] 计算节点获取模块,用于根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;过滤模块,用于从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0017] 计算模块,用于对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0018] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0019] 第三方面,本发明实施例还提供了一种计算机设备,包括处理器和存储器,存储器用于存储指令,当指令执行时使得处理器执行以下操作:
[0020] 根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0021] 根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0022] 根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;
[0023] 从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0024] 对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0025] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0026] 第四方面,本发明实施例还提供了一种存储介质,存储介质用于存储指令,指令用于执行:
[0027] 根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0028] 根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0029] 根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;
[0030] 从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0031] 对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0032] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0033] 本发明实施例中,异构分布式知识图谱采用一张节点表和一张关系表表示,并能够从节点表和关系表中,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,以便根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从异构分布式知识图谱中过滤出对应的节点数据;对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果,而不需要对整张图进行数据处理。可见,本实施例基于节点表和关系表提供了一种高效地针对异构分布式知识图谱的数据处理方法。

附图说明

[0034] 图1是本发明实施例一提供的一种基于异构分布式知识图谱的大数据处理方法的流程图;
[0035] 图2是本发明实施例二提供的一种基于异构分布式知识图谱的大数据处理方法的流程图;
[0036] 图3是本发明实施例三提供的一种基于异构分布式知识图谱的大数据处理装置的结构示意图;
[0037] 图4是本发明实施例四提供的一种计算机设备的结构示意图。

具体实施方式

[0038] 下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
[0039] 实施例一
[0040] 图1是本发明实施例一提供的一种基于异构分布式知识图谱的大数据处理方法的流程图,本实施例可适用于对异构分布式知识图谱进行数据处理的情况。该方法可以由基于异构分布式知识图谱的大数据处理装置来执行,该装置可以由硬件和/或软件构成,并一般集成在计算机设备中,其中,软件可以采用Scala编程语言,Java编程语言编写。
[0041] 其中,异构与同构相对,同构知识图谱中的节点和边分别拥有同样的类型,即不作类型区分,而异构知识图谱中的节点和边拥有不同的类型。例如,同构知识图谱中每一个节点均代表一个人,人和人之间的关系均代表认识关系。而异构知识图谱中的节点可以代表人、账户、公司等,人与账户的关系为拥有关系,人与公司的关系为任职关系;而且,每个类型的节点和边还具有不同的属性。本实施例中的异构分布式知识图谱指分布式存储在多个设备中的异构知识图谱,该知识图谱包括的数据量巨大,且类型、属性各异,目前尚未出现有效的针对此种知识图谱的数据处理方法。基于此,结合图1,本实施例提供的大数据处理方法包括以下操作:
[0042] 步骤110、根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表。
[0043] 本实施例中,异构分布式知识图谱(以下简称图谱)对应一张节点表和一张关系表。节点表包括:各节点的类型和属性,关系表包括:各边的类型和属性。其中,不同类型的节点或者边具有不同的属性。
[0044] 示例性地,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合。其中,节点的标识作为节点的唯一标识,可以是字符串或者数字。节点的类型是异构图中必备元素,为字符串类型,节点的属性可以是字典(map)类型:map,例如mapman,age->20>。通过使用map来存储不同格式的数据(包括数字和字符串),既保证了数据格式的统一,又提供了非常强的灵活性,在后续对某些属性的节点进行数据处理时,可以采用map提供的方法进行针对性提取。节点的类型集合和属性集合表示图谱中存在哪几种类型的节点,每个不同类型的节点拥有哪些属性可被用来计算。节点的类型集合和属性集合可存储在节点表的隐藏列中,对于图谱是唯一的。基于此,可以将这个序列化之后的信息记录在Schema列的meta信息里面。在每一行数据里不需要重复携带这个数据,以节省空间。
[0045] 关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。其中,起始节点标识和目标节点标识可以是字符串或者数字。边的类型是异构图中必备元素,为字符串类型,节点的属性可以是字典(map)类型:map,例如mapman,age->20,province->M,city->P>。通过使用map来存储不同格式的数据(包括数字和字符串),即保证了数据格式的统一,又提供了非常强的灵活性,在后续对某些属性的边进行数据处理时,可以采用map提供的方法进行针对性提取。边的类型集合和属性集合表示图谱中存在哪几种类型的边,每个不同类型的边拥有哪些属性可被用来计算。边的类型集合和属性集合可存储在关系表的隐藏列中,对于图谱是唯一的。基于此,可以将这个序列化之后的信息记录在Schema列的meta信息里面。在每一行数据里不需要重复携带这个数据,以节省空间。
[0046] 可选的,根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表,可以包括:加载用于构建异构分布式知识图谱的节点数据源和边数据源;识别节点数据源的数据结构以及边数据源的数据结构;根据节点数据源的数据结构,构建节点表;以及根据边数据源的数据结构,构建关系表;按照节点表和关系表,将节点数据源和边数据源中的数据读入到异构分布式知识图谱对应的图数据库中。
[0047] 可选的,根据节点数据源的数据结构,构建节点表,可以包括:根据节点数据源中的编号列,生成节点表中各节点的标识;根据节点数据源中的类型字段,生成节点表中各节点的类型;根据节点数据源中的属性字段,生成节点表中各节点的属性;对各节点的类型和属性分别进行汇总,生成节点的类型集合和属性集合。
[0048] 可选的,根据边数据源的数据结构,构建关系表,可以包括:根据边数据源中的起始节点对应的编号列,生成关系表中各边的起始节点标识;根据边数据源中的目标节点对应的编号列,生成关系表中各边的目标节点标识;根据边数据源中的类型字段,生成关系表中各边的类型;根据边数据源中的属性字段,生成关系表中各边的属性;对各边的类型和属性分别进行汇总,生成边的类型集合和属性集合。
[0049] 步骤120、根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性。
[0050] 当需要对图谱进行数据处理时,不需要提取所有的节点数据,而仅需要根据图谱计算请求,确定具体的图谱计算场景,然后提取该图谱计算场景计算所需的节点数据即可,以节省计算量。根据对S110的描述,本实施例采用一张节点表和一张关系表来表示图谱中的所有节点和边,换言之,节点表和关系表构成了图谱中各节点数据的索引。基于此,从节点表中确定图谱计算所需的节点的类型和/或属性,并从关系表中确定图谱计算场景所需的边的类型和/或属性。
[0051] 可选地,从节点的类型集合和属性集合中,确定图谱计算场景所需的节点的类型和/或属性;从边的类型集合和属性集合中,确定图谱计算场景所需的边的类型和/或属性。
[0052] 步骤130、根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点。
[0053] 可选的,根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,在节点表中查找节点的标识,在关系表中查找起始节点标识和目标节点标识;根据节点的标识、起始节点标识和目标节点标识,确定至少一个计算节点。
[0054] 步骤140、从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据。
[0055] 在一可选实施方式中,在确定至少一个计算节点后,根据各计算节点的标识、起始节点标识和目标节点标识,从异构分布式知识图谱中过滤出对应的节点数据。
[0056] 在另一可选实施方式中,节点数据携带有自身对应的节点类型和属性,以及对应的边的类型的属性,则在全部节点数据中,查找携带有计算所需的节点的类型和/或属性,以及边的类型和/或属性的节点数据。
[0057] 本实施例采用图数据库作为图谱的存储方式,图数据库一般以属性图为基本的表示形式,例如Neo4j图数据库,节点和关系可以包含属性,这就意味着更容易表达现实的业务场景,更适合异构分布式知识图谱的存储场景。具体地,从异构分布式知识图谱对应的图数据库中过滤出与至少一个计算节点对应的节点数据。
[0058] 步骤150、对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果。
[0059] 过滤出节点数据之后,基于当前计算场景对节点数据进行计算。下面以一计算网页排名(PageRank)的应用场景,详细说明本实施例提供的计算方法。
[0060] 假设存在一张互联网用户和网页访问关系以及网页之间链接关系的图谱,需要对所有网页做PageRank统计。表1为节点表,表2为关系表。
[0061] 表1节点表
[0062]
[0063] 表2关系表
[0064]
[0065] 首先,在节点表和关系表的Schema中,发现计算PageRank所需的网站类型、点击类型和链接类型。然后,在节点表中查找到网站类型的节点的标识包括:abc.com和bcd.com;同时,在关系表中查找到链接关系的边的起始节点标识abc.com和目标节点标识bcd.com,以及点击关系的边的起始节点标识001和目标节点标识abc.com,则从图谱对应的图数据库中过滤出001、abc.com和bcd.com对应的节点数据。接着,对网站类型的节点数据进行PageRank计算,得到各网站的PageRank值,例如abc.com的PageRank值是1,bcd.com的PageRank值是2。
[0066] 可选地,将计算结果添加到节点表中的属性集合中,或者关系表中的属性集合中;和/或,将计算结果添加到节点表中对应节点的属性中,或者关系表中对应边的属性中。接着上述应用场景,表3示出了新的节点表。
[0067] 表3新的节点表
[0068]
[0069] 可见,在各节点的属性中添加了PageRank属性,并且在节点的属性集合中添加了PageRank属性。
[0070] 本发明实施例中,异构分布式知识图谱采用一张节点表和一张关系表表示,并能够从节点表和关系表中,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,以便根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从异构分布式知识图谱中过滤出对应的节点数据;对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果,而不需要对整张图进行数据处理。可见,本实施例基于节点表和关系表提供了一种高效地针对异构分布式知识图谱的数据处理方法。
[0071] 由于异构分布式知识图谱存储分布式存储在多个设备中;则需要分布式对图谱进行数据处理。在一优选实施方式中,从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据,包括:从每个设备中过滤出与至少一个计算节点对应的节点数据;对过滤出的节点数据进行计算,得到基于异构分布式知识图谱的计算结果,包括:对从每个设备中过滤出对应的节点数据进行计算;汇总每个设备的计算结果,得到基于异构分布式知识图谱的计算结果。
[0072] 具体地,节点表还包括各节点存储在的设备。在节点表中,根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,确定计算所需的节点所存储在的设备,并从对应设备中过滤出节点数据。然后,分别对每个设备中过滤出的节点数据进行计算,可选地,使用类似NetworkX之类的库的方法对每个设备中过滤出的节点数据进行计算。接着,汇总每个设备的计算结果,得到最终的分布式计算结果。
[0073] 实施例二
[0074] 本实施例在上述实施例的基础上进一步优化,可选地,在获取异构分布式知识图谱的节点表和关系表之前,还包括异构分布式知识图谱的构建过程。本实施例适用于多数据源情况下,异构分布式知识图谱的构建情况。其中,多数据源包括但不限于传统关系型数据库(如Oracle、MySQL等)、分布式关系型数据库(如Hive等)、分布式非关系型数据库(如HBase、ElasticSearch等)、TXT文件和CSV文件。
[0075] 由于构建知识图谱需要的数据往往来源于多个不同的数据源,既有结构化的关系型数据,也有非结构化的文本数据。不管是把不同数据源的数据统一到一个完整的数据源或是针对每个数据源编写各自的导入脚本,都需要花费大量的资源和时间,导致整个数据的ETL过程需要耗费大量的时间和人力。为解决现有技术的缺陷,结合图2,本发明实施例提供的方法具体包括如下操作:
[0076] 步骤210、加载用于构建异构分布式知识图谱的节点数据源和边数据源。
[0077] 本实施例中,节点数据源和边数据源均可以为结构化的关系型数据库,例如传统关系型数据库(如Oracle、MySQL等)、分布式关系型数据库(如Hive等)、分布式非关系型数据库(如HBase、ElasticSearch等),还可以包括非结构化的文本,例如TXT文件和CSV文件。
[0078] 本实施例设计了一个抽象的数据源接口,使得异构分布式知识图谱的计算装置可以与各种数据源无缝对接。不同的数据源通过该数据源接口进行对接之后,执行统一的操作方式;不需要将不同数据源的数据导入到统一的数据源中。数据源接口包括数据结构和定义接口和数据读取接口,此外,还可以包括数据状态检查接口和数据写入接口中的至少一种。其中,数据结构和定义接口中封装有数据结构的识别方法和图谱接口的定义方法。上述接口均为应用程序编程接口(Application Programming Interface,API)。
[0079] 异构分布式知识图谱的计算装置可以通过节点数据源的存储路径和边数据源的存储路径,将对应的节点数据源和边数据源加载进来。
[0080] 步骤220、识别节点数据源的数据结构以及边数据源的数据结构。
[0081] 本实施例中,调用数据结构和定义接口,识别节点数据源和边数据源的数据结构。
[0082] 其中,节点数据源的数据结构包括编号列、类型字段、属性字段和节点数据,边数据源的数据结构包括起始节点对应的编号列、目标节点对应的编号列、类型字段和属性字段。
[0083] 步骤230、根据节点数据源的数据结构,构建节点表;以及根据边数据源的数据结构,构建关系表。
[0084] 可选地,调用数据结构和定义接口,根据节点数据源的数据结构,构建节点表;以及根据边数据源的数据结构,构建关系表。
[0085] 构建节点表时,根据节点数据源中的编号列,生成节点表中各节点的标识;根据节点数据源中的类型字段,生成节点表中各节点的类型;根据节点数据源中的属性字段,生成节点表中各节点的属性;对各节点的类型和属性分别进行汇总,生成节点的类型集合和属性集合。
[0086] 构建关系表时,根据边数据源中的起始节点对应的编号列,生成关系表中各边的起始节点标识;根据边数据源中的目标节点对应的编号列,生成关系表中各边的目标节点标识;根据边数据源中的类型字段,生成关系表中各边的类型;根据边数据源中的属性字段,生成关系表中各边的属性;对各边的类型和属性分别进行汇总,生成边的类型集合和属性集合。
[0087] 步骤240、按照节点表和关系表,将节点数据源和边数据源中的数据读入到异构分布式知识图谱对应的图数据库中。
[0088] 可选地,调用数据源接口中的数据读取接口,按照节点表和关系表,将节点数据源和边数据源中的数据读入到异构分布式知识图谱对应的图数据库中。
[0089] 数据读取接口中封装有读取数据到图数据库中的方法。根据操作S130的描述,节点表和关系表包括各个节点、类型和属性,边的类型和属性,以及节点与边的连接关系。基于此,根据节点表和关系表能够确定图数据库需要的数据,并将节点数据读入至图数据库中。
[0090] 步骤250、获取异构分布式知识图谱的节点表和关系表。
[0091] 步骤260、根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性。
[0092] 步骤270、根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从异构分布式知识图谱中过滤出对应的节点数据。
[0093] 步骤280、对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果。
[0094] 本发明实施例中,通过数据源接口中的数据结构和定义接口,能够识别每个数据源的数据结构,无需将不同的数据源导入到统一的数据库中,也不需要筛选数据,编写导入脚本,使用导入工具;通过调用数据源接口中的数据读取接口,按照节点表和关系表将数据源中的数据读入到图数据库中,从而自动读入数据,不需要业务知识,也不需要业务专家和工程专家的协同配合。本实施例仅需要通过数据源接口识别数据结构,进而根据节点表和关系表自动导入数据,使得数据导入过程在对接不同数据源时,节省大量的人力和资源,降低成本。
[0095] 在上述各实施例的基础上,数据源接口还包括:数据状态检查接口和/或数据写入接口。基于此,基于异构分布式知识图谱的计算方法还包括以下两种实施方式中的至少一种。
[0096] 第一种实施方式:在加载用于构建异构分布式知识图谱的节点数据源和边数据源之后,调用数据状态检查接口,检查节点数据源和边数据源的工作状态是否正常,并将工作状态异常的数据源反馈给用户。
[0097] 可选地,在识别节点数据源和边数据源的数据结构时,以及将数据读入到图数据库中时,检查节点数据源和边数据源的工作状态是否正常;也可以周期性检查节点数据源和边数据源的工作状态是否正常。如果数据源在线且用户具有访问权限,则数据源状态正常;如果数据源离线或者用户不具有访问权限,则数据源状态异常,从而有效保证图谱构建过程的稳定性和安全性。
[0098] 第二种实施方式:在调用数据源接口中的数据读取接口,按照节点表和关系表,将节点数据源和边数据源中的数据读入到异构分布式知识图谱对应的图数据库中之后,调用数据写入接口,将图数据库中的数据反向写入至对应的数据源中。具体地,图数据库中的数据携带有来源数据源以及在来源数据源中的位置,例如第几行、第几列。因此,调用数据写入接口,根据图数据库中数据的来源数据源以及在来源数据源中的位置,反向写入至对应数据源的对应位置中。
[0099] 本实施方式通过数据写入接口实现了将知识图谱中的数据反向写入至数据源中的功能,有利于还原知识图谱,以及数据源与知识图谱之间的互相验证。
[0100] 实施例三
[0101] 图3是本发明实施例三提供的一种基于异构分布式知识图谱的大数据处理装置的结构示意图,本实施例适用于对异构分布式知识图谱进行大数据处理的情况。结合图3,该装置包括:构建模块31、确定模块32、计算节点获取模块33、过滤模块34和计算模块35。
[0102] 构建模块31,用于根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0103] 确定模块32,用于根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0104] 计算节点获取模块33,用于根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;
[0105] 过滤模块34,用于从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0106] 计算模块35,用于对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0107] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0108] 本发明实施例中,异构分布式知识图谱采用一张节点表和一张关系表表示,并能够从节点表和关系表中,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,以便根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从异构分布式知识图谱中过滤出对应的节点数据;对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果,而不需要对整张图进行数据处理。可见,本实施例基于节点表和关系表提供了一种高效地针对异构分布式知识图谱的数据处理方法。
[0109] 可选地,异构分布式知识图谱存储分布式存储在多个设备中。过滤模块34在从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据时,具体用于:从每个设备中过滤出与至少一个计算节点对应的节点数据。计算模块35在对过滤出的节点数据进行计算,得到基于异构分布式知识图谱的计算结果时,具体用于:对从每个设备中过滤出对应的节点数据进行计算;汇总每个设备的计算结果,得到基于异构分布式知识图谱的计算结果。
[0110] 可选地,该装置还包括添加模块,用于在对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果之后,将计算结果添加到节点表中的属性集合中,或者关系表中的属性集合中;和/或,将计算结果添加到节点表中对应节点的属性中,或者关系表中对应边的属性中。
[0111] 可选地,过滤模块34在根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,确定与数据计算场景对应的至少一个计算节点时,具体用于:根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,在节点表中查找节点的标识,在关系表中查找起始节点标识和目标节点标识;根据节点的标识、起始节点标识和目标节点标识,确定至少一个计算节点。
[0112] 可选地,构建模块31,用于在根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表时,加载用于构建异构分布式知识图谱的节点数据源和边数据源;识别节点数据源的数据结构以及边数据源的数据结构;根据节点数据源的数据结构,构建节点表;以及根据边数据源的数据结构,构建关系表;按照节点表和关系表,将节点数据源和边数据源中的数据读入到异构分布式知识图谱对应的图数据库中。
[0113] 可选地,构建模块在根据节点数据源的数据结构,构建节点表时,具体用于:根据节点数据源中的编号列,生成节点表中各节点的标识;根据节点数据源中的类型字段,生成节点表中各节点的类型;根据节点数据源中的属性字段,生成节点表中各节点的属性;对各节点的类型和属性分别进行汇总,生成节点的类型集合和属性集合。
[0114] 可选地,构建模块在根据边数据源的数据结构,构建关系表时,具体用于:根据边数据源中的起始节点对应的编号列,生成关系表中各边的起始节点标识;根据边数据源中的目标节点对应的编号列,生成关系表中各边的目标节点标识;根据边数据源中的类型字段,生成关系表中各边的类型;根据边数据源中的属性字段,生成关系表中各边的属性;对各边的类型和属性分别进行汇总,生成边的类型集合和属性集合。
[0115] 本发明实施例所提供的基于异构分布式知识图谱的大数据处理装置可执行本发明任意实施例所提供的基于异构分布式知识图谱的大数据处理方法,具备执行方法相应的功能模块和有益效果。
[0116] 实施例四
[0117] 图4是本发明实施例四提供的一种计算机设备的结构示意图,如图4所示,该计算机设备包括处理器40、存储器41、输入装置42和输出装置43;计算机设备中处理器40的数量可以是一个或多个,图4中以一个处理器40为例;计算机设备中的处理器40、存储器41、输入装置42和输出装置43可以通过总线或其他方式连接,图4中以通过总线连接为例。
[0118] 存储器41作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的基于异构分布式知识图谱的大数据处理方法对应的程序指令/模块(例如,基于异构分布式知识图谱的大数据处理装置中的构建模块31、确定模块32、计算节点获取模块33、过滤模块34和计算模块35)。处理器40通过运行存储在存储器41中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述的基于异构分布式知识图谱的数据处理方法。
[0119] 存储器41可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器41可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器41可进一步包括相对于处理器40远程设置的存储器,这些远程存储器可以通过网络连接至电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0120] 输入装置42可用于接收输入的数字或字符信息,以及产生与计算机设备的用户设置以及功能控制有关的键信号输入,例如节点表和数据表等。输出装置43可包括显示屏等显示设备,显示设备用于显示大数据处理结果。
[0121] 实施例五
[0122] 本发明实施例五还提供一种其上存储有指令的存储介质。指令在由计算机处理器执行时用于执行一种基于异构分布式知识图谱的大数据处理方法,该方法包括:
[0123] 根据异构分布式知识库的数据结构,构造异构分布式知识图谱的节点表和关系表;
[0124] 根据图谱计算请求,确定图谱计算场景,确定图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性;
[0125] 根据图谱计算场景所需的节点的类型和/或属性,以及边的类型和/或属性,从节点表和关系表中,提取与图谱计算场景对应的至少一个计算节点;
[0126] 从异构分布式知识图谱中过滤出与至少一个计算节点对应的节点数据;
[0127] 对过滤出的节点数据进行数据处理,得到基于异构分布式知识图谱的数据处理结果;
[0128] 其中,节点表包括:各节点的标识、各节点的类型、各节点的属性、节点的类型集合和属性集合,关系表包括:各边的起始节点标识、各边的目标节点标识、各边的类型、各边的属性、边的类型集合和属性集合。
[0129] 当然,本发明实施例所提供的一种其上存储指令的存储介质,其存储的指令不限于如上的方法操作,还可以执行本发明任意实施例所提供的基于异构分布式知识图谱的大数据处理方法中的相关操作。
[0130] 通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例的方法。
[0131] 值得注意的是,上述基于异构分布式知识图谱的大数据处理装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
[0132] 注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。