基于Gremlin的并行扩展方法、系统、电子设备及存储介质技术方案

技术编号:30431310 阅读:20 留言:0更新日期:2021-10-24 17:24
本发明专利技术提出一种基于Gremlin的并行扩展方法、系统、电子设备及存储介质,其方法技术方案包括并行扩展预置步骤,在编译器中基于JanusGraph图扩展接口,通过Gremlin添加一parallel step,并将所述parallel下的全部点信息和边信息添加至一集合中;执行逻辑改写步骤,对所述Gremlin中的VertexStep、EdgeOtherStep和EdgeVertexStep进行执行逻辑的改写,所述通过继承所述Gremlin中的AbstractStep并重写processNextStart()方法实现;解析拦截替换步骤,在所述Gremlin的解析阶段进行拦截,当解析识别到所述parallel step时,通过改写后的所述执行逻辑进行执行。本申请解决了现有图的扩展方法扩展效率低下的问题。的问题。的问题。

【技术实现步骤摘要】
基于Gremlin的并行扩展方法、系统、电子设备及存储介质


[0001]本专利技术属于知识图谱
,尤其涉及一种基于Gremlin的并行扩展方法、系统、电子设备及存储介质。

技术介绍

[0002]近年来,随着互联网和社交网络的快速发展,大规模的图结构数据逐渐增多,例如将知识图谱、社交网络等信息抽象成的图结构数据。相比于传统的大数据处理系统,图系统能更好地利用图的结构信息,对图数据的处理更为高效。随着图结构化数据的增多,如何高效处理大量图结构数据成为研究的热点。市面上现有的使用Gremlin作为图数据遍历语言的图数据库产品中,大部分都是直接使用原生的流式处理逻辑,关于图的扩展方面没有进行优化,使得大量数据频繁多次请求,加大了图数据库的开销,使扩展效率低下。

技术实现思路

[0003]本申请实施例提供了一种基于Gremlin的并行扩展方法、系统、电子设备及存储介质,以至少解决现有图的扩展方法扩展效率低下的问题。
[0004]第一方面,本申请实施例提供了一种基于Gremlin的并行扩展方法,包括:并行扩展预置步骤,在编译器中基于JanusGraph图扩展接口,通过Gremlin添加一parallel step,并将所述parallel下的全部点信息和边信息添加至一集合中;执行逻辑改写步骤,对所述Gremlin中的VertexStep、EdgeOtherStep和 EdgeVertexStep进行执行逻辑的改写,所述通过继承所述Gremlin中的 AbstractStep并重写processNextStart()方法实现;解析拦截替换步骤,在所述 Gremlin的解析阶段进行拦截,当解析识别到所述parallel step时,通过改写后的所述执行逻辑进行执行。
[0005]优选的,所述执行逻辑改写步骤进一步包括:VertexStep改写步骤,通过所述JanusGraph中的一并行查询方法进行一条件传入操作,若返回为 Vertex.class,则执行multiQuery.getEntities方法,若返回为Edge.class,则执行multiQuery.getRelations方法。
[0006]优选的,所述执行逻辑改写步骤进一步包括:EdgeOtherStep改写步骤,根据判断本端点的值来判断需要获取的对端点,并将全部所述对端点的ID集合作为条件传入entityQuery.ids(ids).execute()。
[0007]优选的,所述执行逻辑改写步骤进一步包括:EdgeVertexStep改写步骤,根据方向进行判断,若所述方向为IN,则获取关系的主体ID,若所述方向为 OUT,则获取关系的客体ID。
[0008]第二方面,本申请实施例提供了一种基于Gremlin的并行扩展系统,适用于上述一种基于Gremlin的并行扩展方法,包括:并行扩展预置模块,在编译器中基于JanusGraph图扩展接口,通过Gremlin添加一parallel step,并将所述parallel下的全部点信息和边信息添加至一集合中;执行逻辑改写模块,对所述Gremlin中的VertexStep、EdgeOtherStep和
EdgeVertexStep进行执行逻辑的改写,所述通过继承所述Gremlin中的AbstractStep并重写 processNextStart()方法实现;解析拦截替换模块,在所述Gremlin的解析阶段进行拦截,当解析识别到所述parallel step时,通过改写后的所述执行逻辑进行执行。
[0009]在其中一些实施例中,所述执行逻辑改写模块进一步包括:VertexStep 改写单元,通过所述JanusGraph中的一并行查询方法进行一条件传入操作,若返回为Vertex.class,则执行multiQuery.getEntities方法,若返回为 Edge.class,则执行multiQuery.getRelations方法。
[0010]在其中一些实施例中,所述执行逻辑改写模块进一步包括:EdgeOtherStep 改写单元,根据判断本端点的值来判断需要获取的对端点,并将全部所述对端点的ID集合作为条件传入entityQuery.ids(ids).execute()。
[0011]在其中一些实施例中,所述执行逻辑改写模块进一步包括: EdgeVertexStep改写单元,根据方向进行判断,若所述方向为IN,则获取关系的主体ID,若所述方向为OUT,则获取关系的客体ID。
[0012]第三方面,本申请实施例提供了一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的一种基于Gremlin的并行扩展方法。
[0013]第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的一种基于Gremlin 的并行扩展方法。
[0014]本申请可应用于知识图谱
相比于相关技术,本申请实施例提供的一种基于Gremlin的并行扩展方法,通过继承TinkerPop开源代码及一些基础逻辑,结合分布式图数据库引擎(JanusGraph),实现了基于Gremlin图遍历语言的并行扩展,基于Gremlin图遍历语言和JanusGraph图数据库引擎,可以做到在进行both,out,in,outE等扩展或取点操作时进行并行扩展,使查询效率更高,更快的得到预想的结果,大大加快了对图数据的查询和扩展。、
附图说明
[0015]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0016]图1为本专利技术的基于Gremlin的并行扩展方法流程图;
[0017]图2为图1中步骤S2的分步骤流程图;
[0018]图3为本专利技术的基于Gremlin的并行扩展系统的框架图;
[0019]图4为本专利技术的电子设备的框架图;
[0020]图5为本申请提供的一具体实施例的示意图;
[0021]以上图中:
[0022]1、并行扩展预置模块;2、执行逻辑改写模块;3、解析拦截替换模块; 21、VertexStep改写单元;22、EdgeOtherStep改写单元;23、EdgeVertexStep 改写单元;60、总线;61、处理器;62、存储器;63、通信接口。
具体实施方式
[0023]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024]显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于Gremlin的并行扩展方法,其特征在于,包括:并行扩展预置步骤,在编译器中基于JanusGraph图扩展接口,通过Gremlin添加一parallel step,并将所述parallel下的全部点信息和边信息添加至一集合中;执行逻辑改写步骤,对所述Gremlin中的VertexStep、EdgeOtherStep和EdgeVertexStep进行执行逻辑的改写,所述通过继承所述Gremlin中的AbstractStep并重写processNextStart()方法实现;解析拦截替换步骤,在所述Gremlin的解析阶段进行拦截,当解析识别到所述parallel step时,通过改写后的所述执行逻辑进行执行。2.根据权利要求1所述的基于Gremlin的并行扩展方法,其特征在于,所述执行逻辑改写步骤进一步包括:VertexStep改写步骤,通过所述JanusGraph中的一并行查询方法进行一条件传入操作,若返回为Vertex.class,则执行multiQuery.getEntities方法,若返回为Edge.class,则执行multiQuery.getRelations方法。3.根据权利要求1所述的基于Gremlin的并行扩展方法,其特征在于,所述执行逻辑改写步骤进一步包括:EdgeOtherStep改写步骤,根据判断本端点的值来判断需要获取的对端点,并将全部所述对端点的ID集合作为条件传入entityQuery.ids(ids).execute()。4.根据权利要求1所述的基于Gremlin的并行扩展方法,其特征在于,所述执行逻辑改写步骤进一步包括:EdgeVertexStep改写步骤,根据方向进行判断,若所述方向为IN,则获取关系的主体ID,若所述方向为OUT,则获取关系的客体ID。5.一种基于Gremlin的并行扩展系统,其特征在于,包括:并行扩展预置模块,在编译器中基于JanusGraph图扩展接口,通过Gremlin添加一parallel step,并将所述para...

【专利技术属性】
技术研发人员:郑天昊
申请(专利权)人:北京明略软件系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1