一种实时知识图谱构建系统转让专利

申请号 : CN201910642692.2

文献号 : CN110377757B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杨仪军

申请人 : 北京海致星图科技有限公司

摘要 :

本发明公开了一种实时知识图谱构建系统,涉及图分析平台技术领域。该实时知识图谱构建系统,包括应用程序部分、知识存储模块、知识消费模块、知识总线、数据源总线和数据源模块;其中每个部分的具体工作如下:A1、数据源模块负责数据采集并接入KAFKA消息队列;B1、源数据总线负责传输需要提取实体/关系的基础数据;C1、知识提取模块负责用SparkStreaming消费KAFKA中的基础数据进行实体提取、关系提取。该实时知识图谱构建系统,通过应用程序部分、知识存储模块、数据源总线和数据源模块等模块的配合使用,使用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取,将失败数据采用HBase记录在外部存储内,同时可以解决提取数据丢失或者重复以及数据源接入单一的问题。

权利要求 :

1.一种实时知识图谱构建系统,其特征在于:包括应用程序部分、知识存储模块、知识消费模块、知识总线、数据源总线和数据源模块;

其中每个部分的具体工作如下:

A1、数据源模块负责数据采集并接入KAFKA消息队列;

B1、源数据总线负责传输需要提取实体/关系的基础数据;

C1、知识提取模块负责用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取;

D1、知识总线负责传输Spark Streaming提取完成的实体/关系数据;

E1、知识消费模块负责消费KAFKA中的实体/关系数据写入对应的外部存储为实时图查询提供查询数据;

F1、应用程序部分负责各种实时查询场景的图查询;

所述数据源总线内设置有KAFKA集群1,所述KAFKA集群1由Server1‑3组成,所述知识总线内设置有KAFKA集群11,所述KAFKA集群11由Server11‑13组成,其中每个Server中设置有两个操作单元;

所述数据源包括业务服务器日志文件、外部REST API请求、外部数据存储;

所述知识消费模块内包括GDB消费者、HBase消费者和ES消费者,三者具体作用如下:A2、HBase消费者程序读取消息队列中的实体/关系写入HBase 数据库,供后续查看实体关系详情使用;

B2、GDB消费者程序读取消息队列中的实体/关系写入GDB,供后续实时图查询使用;

C2、ES消费者读取消息队列中的实体写入Elasticsearch,供后续实时查询时实体的二级索引使用;

所述应用程序的K层展开、最短路径、全路径、社区发现查询场景通过调用ES、GDB、HBase对应库的API完成图的关系查找及详情查询;

其中具体操作流程如下:

S1、数据源模块通过Flume/REST API/外部存储获取数据源并将数据源发送至数据源总线,其中Flume通过日志文件获取数据;

S2、数据源总线接收到数据源后对应KAFKA集群1中的Server生成对应数据,并将对应数据发送至知识提取模块内;

S3、知识提取模块将对应数据内的实体/关系数据提取并发送至知识总线,其中若实体/关系数据提取失败则将失败日志通过HBase记录至外部存储内;

S4、知识消费模块将实体/关系数据发送至对应的消费者,其中消费者包括HBase消费者、GDB消费者和ES消费者;

S5、对应消费者将实体/关系数据处理成应用相关数据发送至知识存储模块进行存储,随后发送至应用程序部分,具体情况如下:A3、GDB消费者将应用相关数据发送至图数据库存储,并通过应用程序部分K层展开;

B3、HBase消费者将应用相关数据发送至HBase存储,并通过REST API得出最短路径,通过应用程序部分显示最短路径;

C3、ES消费者将应用相关数据发送至ES,并通过应用程序部分显示全路径。

2.根据权利要求1所述的一种实时知识图谱构建系统,其特征在于:所有外部数据源通过Flume/JAVA REST API/数据抽取工具/Spark程序读取写入KAFKA消息队列,写入消息队列的地方设置有数据接入信息监控,包括接入数据的文件名称或者关系数据库的表名称、接入时间、接入数据量、成果数据量以及失败数据量,其中失败数据采用HBase记录在外部存储内。

3.根据权利要求1所述的一种实时知识图谱构建系统,其特征在于:采用实时流式处理框架Spark Streaming消费KAFKA内消息进行实体提取、关系提取,提取结果写入KAFKA,写入消息队列的地方设置有数据接入信息监控,包括接入数据的表名称、接入时间、接入数据量、成果数据量、失败数据量,其中失败数据采用HBase记录在外部存储内。

4.根据权利要求1所述的一种实时知识图谱构建系统,其特征在于:所述ES为Elasticsearch的简称。

说明书 :

一种实时知识图谱构建系统

技术领域

[0001] 本发明涉及图分析平台技术领域,具体为一种实时知识图谱构建系统。

背景技术

[0002] Kafka是一种开源流处理平台,由Scala和Java编写,是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据,这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素,这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决,对于像Hadoop一样的日志数据和离线分析系统,但又要求实时处理的限制,这是一个可行的解决方案,Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
[0003] 在现有技术中,在实际的实时图谱构建领域的应用很少,基本上是T+1(一天构建一次图谱关系),因此无法实现一次性提取出精确的知识提取结果,难以很好的适应对数据准确性要求较高的业务,同时知识提取存在较高的延迟,容易出现知识提取数据丢失或者重复的情况,支持和考虑的数据源较少,方案的扩展性不高,给使用者的使用带来不便。

发明内容

[0004] (一)解决的技术问题
[0005] 针对现有技术的不足,本发明提供了一种实时知识图谱构建系统,解决了在现有技术中,在实际的实时图谱构建领域的应用很少,基本上是T+1(一天构建一次图谱关系),因此无法实现一次性提取出精确的知识提取结果,难以很好的适应对数据准确性要求较高的业务,同时知识提取存在较高的延迟,容易出现知识提取数据丢失或者重复的情况,支持和考虑的数据源较少,方案的扩展性不高的问题。
[0006] (二)技术方案
[0007] 为实现以上目的,本发明通过以下技术方案予以实现:一种实时知识图谱构建系统,包括应用程序部分、知识存储模块、知识消费模块、知识总线、数据源总线和数据源模块;
[0008] 其中每个部分的具体工作如下:
[0009] A1、数据源模块负责数据采集并接入KAFKA消息队列;
[0010] B1、源数据总线负责传输需要提取实体/关系的基础数据;
[0011] C1、知识提取模块负责用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取;
[0012] D1、知识总线负责传输Spark Streaming提取完成的实体/关系数据;
[0013] E1、知识消费模块负责消费KAFKA中的实体/关系数据写入对应的外部存储为实时图查询提供查询数据;
[0014] F1、应用程序部分负责各种实时查询场景的图查询;
[0015] 所述数据源总线内设置有KAFKA集群1,所述KAFKA集群1由Server1‑3组成,所述知识总线内设置有KAFKA集群11,所述KAFKA集群11由Server11‑13组成,其中每个Server中设置有两个操作单元;
[0016] 所述数据源包括业务服务器日志文件、外部REST API请求、外部数据存储;
[0017] 所述知识消费模块内包括GDB消费者、HBase消费者和ES消费者,三者具体作用如下:
[0018] A2、HBase消费者程序读取消息队列中的实体/关系写入HBase数据库,供后续查看实体关系详情使用;
[0019] B2、GDB消费者程序读取消息队列中的实体/关系写入GDB,供后续实时图查询使用;
[0020] C2、ES消费者读取消息队列中的实体写入Elasticsearch,供后续实时查询时实体的二级索引使用;
[0021] 所述应用程序的K层展开、最短路径、全路径、社区发现等查询场景通过调用ES、GDB、HBase等对应库的API完成图的关系查找及详情查询。
[0022] 其中具体操作流程如下:
[0023] S1、数据源模块通过Flume/REST API/外部存储获取数据源并将数据源发送至数据源总线,其中Flume通过日志文件获取数据;
[0024] S2、数据源总线接收到数据源后对应KAFKA集群1中的Server生成对应数据,并将对应数据发送至知识提取模块内;
[0025] S3、知识提取模块将对应数据内的实体/关系数据提取并发送至知识总线,其中若实体/关系数据提取失败则将失败日志通过HBase记录至外部存储内;
[0026] S4、知识消费模块将实体/关系数据发送至对应的消费者,其中消费者包括HBase消费者、GDB消费者和ES消费者;
[0027] S5、对应消费者将实体/关系数据处理成应用相关数据发送至知识存储模块进行存储,随后发送至应用程序部分,具体情况如下:
[0028] A3、GDB消费者将应用相关数据发送至图数据库存储,并通过应用程序部分K层展开;
[0029] B3、HBase消费者将应用相关数据发送至HBase存储,并通过REST API得出最短路径,通过应用程序部分显示最短路径;
[0030] C3、ES消费者将应用相关数据发送至ES,并通过应用程序部分显示全路径。
[0031] 优选的,所有外部数据源通过Flume/JAVA REST API/数据抽取工具/Spark程序读取写入KAFKA消息队列,写入消息队列的地方设置有数据接入信息监控,包括接入数据的文件名称或者关系数据库的表名称、接入时间、接入数据量、成果数据量以及失败数据量,其中失败数据采用HBase记录在外部存储内。
[0032] 优选的,采用实时流式处理框架Spark Streaming消费KAFKA内消息进行实体提取、关系提取,提取结果写入KAFKA,写入消息队列的地方设置有数据接入信息监控,包括接入数据的表名称、接入时间、接入数据量、成果数据量、失败数据量,其中失败数据采用HBase记录在外部存储内。
[0033] 优选的,所述ES为Elasticsearch的简称。
[0034] (三)有益效果
[0035] 本发明提供了一种实时知识图谱构建系统。具备以下有益效果:该实时知识图谱构建系统,通过应用程序部分、知识存储模块、数据源总线和数据源模块等模块的配合使用,使用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取,同时将失败数据采用HBase记录在外部存储内,极大的减少了延迟,提高了工作效率,同时可以解决提取数据丢失或者重复以及数据源接入单一的问题,加强了方案的扩展性,方便了使用者的使用。

附图说明

[0036] 图1为本发明结构原理框图。

具体实施方式

[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0038] 请参阅图1,本发明提供一种技术方案:一种实时知识图谱构建系统,包括应用程序部分、知识存储模块、知识消费模块、知识总线、数据源总线和数据源模块;
[0039] 其中每个部分的具体工作如下:
[0040] A1、数据源模块负责数据采集并接入KAFKA消息队列;
[0041] B1、源数据总线负责传输需要提取实体/关系的基础数据;
[0042] C1、知识提取模块负责用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取;
[0043] D1、知识总线负责传输Spark Streaming提取完成的实体/关系数据;
[0044] E1、知识消费模块负责消费KAFKA中的实体/关系数据写入对应的外部存储为实时图查询提供查询数据;
[0045] F1、应用程序部分负责各种实时查询场景的图查询;
[0046] 所述数据源总线内设置有KAFKA集群1,所述KAFKA集群1由Server1‑3组成,所述知识总线内设置有KAFKA集群11,所述KAFKA集群11由Server11‑13组成,其中每个Server中设置有两个操作单元;
[0047] 所述数据源包括业务服务器日志文件、外部REST API请求、外部数据存储;
[0048] 所述知识消费模块内包括GDB消费者、HBase消费者和ES消费者,三者具体作用如下:
[0049] A2、HBase消费者程序读取消息队列中的实体/关系写入HBase数据库,供后续查看实体关系详情使用;
[0050] B2、GDB消费者程序读取消息队列中的实体/关系写入GDB,供后续实时图查询使用;
[0051] C2、ES消费者读取消息队列中的实体写入Elasticsearch,供后续实时查询时实体的二级索引使用;
[0052] 所述应用程序的K层展开、最短路径、全路径、社区发现等查询场景通过调用ES、GDB、HBase等对应库的API完成图的关系查找及详情查询(ES为Elasticsearch的简称)。
[0053] 其中具体操作流程如下:
[0054] S1、数据源模块通过Flume/REST API/外部存储获取数据源并将数据源发送至数据源总线,其中Flume通过日志文件获取数据;
[0055] S2、数据源总线接收到数据源后对应KAFKA集群1中的Server生成对应数据,并将对应数据发送至知识提取模块内;
[0056] S3、知识提取模块将对应数据内的实体/关系数据提取并发送至知识总线,其中若实体/关系数据提取失败则将失败日志通过HBase记录至外部存储内;
[0057] S4、知识消费模块将实体/关系数据发送至对应的消费者,其中消费者包括HBase消费者、GDB消费者和ES消费者;
[0058] S5、对应消费者将实体/关系数据处理成应用相关数据发送至知识存储模块进行存储,随后发送至应用程序部分,具体情况如下:
[0059] A3、GDB消费者将应用相关数据发送至图数据库存储,并通过应用程序部分K层展开;
[0060] B3、HBase消费者将应用相关数据发送至HBase存储,并通过REST API得出最短路径,通过应用程序部分显示最短路径;
[0061] C3、ES消费者将应用相关数据发送至ES,并通过应用程序部分显示全路径。
[0062] 备注:所有外部数据源通过Flume/JAVA REST API/数据抽取工具/Spark程序读取写入KAFKA消息队列,写入消息队列的地方设置有数据接入信息监控,包括接入数据的文件名称或者关系数据库的表名称、接入时间、接入数据量、成果数据量以及失败数据量,其中失败数据采用HBase记录在外部存储内。
[0063] 采用实时流式处理框架Spark Streaming消费KAFKA内消息进行实体提取、关系提取,提取结果写入KAFKA,写入消息队列的地方设置有数据接入信息监控,包括接入数据的表名称、接入时间、接入数据量、成果数据量、失败数据量,其中失败数据采用HBase记录在外部存储内。
[0064] 综上所述,该实时知识图谱构建系统,通过应用程序部分、知识存储模块、数据源总线和数据源模块等模块的配合使用,使用Spark Streaming消费KAFKA中的基础数据进行实体提取、关系提取,同时将失败数据采用HBase记录在外部存储内,极大的减少了延迟,提高了工作效率,同时可以解决提取数据丢失或者重复以及数据源接入单一的问题,加强了方案的扩展性,方便了使用者的使用。
[0065] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0066] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。