CN112818181B - 图数据库检索方法、系统、计算机设备和存储介质 - Google Patents

图数据库检索方法、系统、计算机设备和存储介质 Download PDF

Info

Publication number
CN112818181B
CN112818181B CN202110097106.8A CN202110097106A CN112818181B CN 112818181 B CN112818181 B CN 112818181B CN 202110097106 A CN202110097106 A CN 202110097106A CN 112818181 B CN112818181 B CN 112818181B
Authority
CN
China
Prior art keywords
attribute
read
retrieval
attribute information
data
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.)
Active
Application number
CN202110097106.8A
Other languages
English (en)
Other versions
CN112818181A (zh
Inventor
印杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Lvwan Network Technology Co ltd
Original Assignee
Hangzhou Lvwan Network Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Lvwan Network Technology Co ltd filed Critical Hangzhou Lvwan Network Technology Co ltd
Priority to CN202110097106.8A priority Critical patent/CN112818181B/zh
Publication of CN112818181A publication Critical patent/CN112818181A/zh
Application granted granted Critical
Publication of CN112818181B publication Critical patent/CN112818181B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提出一种图数据库检索方法、系统、计算机设备和存储介质,其中,方法包括:响应于接收到的检索语句,从检索语句之中提取出在语句执行过程待读取的属性信息;根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划;根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据;其中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;接收存储引擎返回的属性数据,并输出属性数据。本申请可以解决现有技术中图数据库检索性能低等的问题。

Description

图数据库检索方法、系统、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种图数据库检索方法、系统、计算机设备和存储介质。
背景技术
图数据库并非指存储图片的数据库,而是以图这种数据结构存储和查询数据的数据库。图数据库是非关系型数据库的一种类型,它应用图理论存储实体之间的关系信息,于其他数据库不同,关系在图数据库中占首要地位。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图数据库的独特设计恰恰弥补了这个缺陷。然而,目前图数据库检索方式存在访问性能低及检索性能低、以及浪费系统资源等的问题。
发明内容
本申请旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本申请的第一个目的在于提出一种图数据库检索方法。该方法可以避免对节点所有属性的读取,高效的完成对于部分属性的读取,从而可以提升访问性能,提升检索性能,节约系统资源。
本申请的第二个目的在于提出一种图数据库检索系统。
本申请的第三个目的在于提出一种计算机设备。
本申请的第四个目的在于提出一种计算机可读存储介质。
为达上述目的,本申请第一方面实施例提出了一种图数据库检索方法,包括:
响应于接收到的检索语句,从所述检索语句之中提取出在语句执行过程待读取的属性信息;
根据所述检索语句和所述待读取的属性信息,生成携带待读属性信息的执行计划;
根据所述执行计划向存储引擎发送对应的查询请求,以使所述存储引擎根据所述对应的查询请求执行返回所需要的节点的属性数据;其中,所述存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;
接收所述存储引擎返回的所述属性数据,并输出所述属性数据。
为达上述目的,本申请第二方面实施例提出了一种图数据库检索系统,包括:属性提取引擎、检索执行引擎和存储引擎,其中,
所述属性提取引擎,用于从接收到的检索语句之中提取出在语句执行过程待读取的属性信息,并将所述待读取的属性信息发送给所述检索执行引擎;
所述检索执行引擎,用于根据所述检索语句和所述待读取的属性信息,生成携带待读属性信息的执行计划,并根据所述执行计划向所述存储引擎发送对应的查询请求;
所述存储引擎,用于负责图数据的存储,并接收所述检索执行引擎发送的查询请求,按照所述查询请求执行返回所需要的节点的属性数据;其中,所述存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;
其中,所述检索执行引擎,还用于接收所述存储引擎返回的所述属性数据,并输出所述属性数据。
为达上述目的,本申请第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,实现本申请第一方面实施例所述的图数据库检索方法。
为了实现上述目的,本申请第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本申请第一方面实施例所述的图数据库检索方法。
根据本申请实施例的技术方案,响应于接收到的检索语句,从检索语句之中提取出在语句执行过程待读取的属性信息,并根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划,根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据;其中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;在接收到存储引擎返回的属性数据时输出该属性数据。由此,本申请通过存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性,并配合对图查询语言进行执行前分析提取出需要读取的属性信息,从而在图遍历和检索时只读取检索过程需要的部分属性,做到有的放矢,进而提升检索的性能以及访问性能,节约系统资源。
本申请附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请实施例所提供的一种图数据库检索方法的流程图;
图2是根据本申请实施例的图数据库检索方法的流程示例图;
图3为本申请实施例提供的一种图数据库检索系统的结构示意图;以及
图4是根据本申请一个实施例的计算机设备的结构框图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
下面参考附图描述本申请实施例的图数据库检索方法、系统、计算机设备和存储介质。
图1为本申请实施例所提供的一种图数据库检索方法的流程图。图2是根据本申请实施例的图数据库检索方法的流程示例图。需要说明的是,本申请实施例的图数据库检索方法可应用于本申请实施例的图数据库检索系统。作为一种示例,图数据库检索系统可包括属性提取引擎、检索执行引擎和存储引擎。
如图1和图2所示,该图数据库检索方法可以包括如下步骤。
在步骤101中,响应于接收到的检索语句,从检索语句之中提取出在语句执行过程待读取的属性信息。
举例而言,假设本申请实施例的图数据库检索方法应用于本申请实施例的图数据库检索系统上,图数据库检索系统为使用者提供检索语句输入接口,使用者通过该接口可输入针对图数据的检索语句。在接收到使用者输入的检索语句时,可对该检索语句进行解析,从中提取出在语句执行过程将要访问的属性信息,其中,该将要访问的属性信息即可理解为该待读取的属性信息。
需要说明的是,由于检索语句所使用的查询语言类型的不同,则需要采用不同的解析方式对检索语句进行解析。在一些实施例中,可先确定所接收到的检索语句所使用的图数据库查询语言类型,基于该使用的图数据库查询语言类型对检索语句进行解析,以提取出在语句执行过程待读取的属性信息。
例如,以图数据库查询语言类型为Gremlin语言为例,可基于Gremlin语言的语法对使用者所输入的检索语句进行解析,以从该检索语句中提取出在语句执行过程待读取的属性信息。又如,以图数据库查询语言类型为Cypher语言为例,可基于Cypher语言的语法对使用者所输入的检索语句进行解析,以从该检索语句中提取出在语句执行过程待读取的属性信息。再如,以图数据库查询语言类型为SPARQL语言为例,可基于SPARQL语言的语法对使用者所输入的检索语句进行解析,以从该检索语句中提取出在语句执行过程待读取的属性信息。
在步骤102中,根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划。
在一些实施例中,可确定检索语句所使用的图数据库查询语言类型,并基于所使用的图数据库查询语言类型对检索语句进行解析,将检索语句拆解为多个待执行步骤;其中,多个待执行步骤中包含至少一个数据读取步骤和至少一个非数据读取步骤;将待读取的属性信息关联到对应的数据读取步骤上;基于至少一个非数据读取步骤、以及已关联对应待读取的属性信息的至少一个数据读取步骤,生成执行计划。
在步骤103中,根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据。
其中,在本申请实施例中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性。也就是说,在存储层面,为了实现对于属性的访问做到有的放矢,避免每次对节点部分属性的访问都招致对节点所有属性的访问,本申请对于节点的属性的存储采用一个属性一行的模型,存储节点属性的数据表定义如下表1所示。
表1存储节点属性的数据表
字段名称 字段含义
vertexId 节点的ID
propertyId 节点属性的ID
propertyValue 节点属性的值
例如,如图2所示,存储引擎之中节点属性的数据表中包含有节点的ID(即vertexId字段)、节点属性的ID(即propId字段)和节点属性的值(即propVal字段),可见,存储引擎中采用一个属性一行的存储模式存储图数据之中节点的属性。
在本申请实施例中,存储引擎在接收到查询请求时,可从查询请求中获取待读取节点的ID和待读取节点的属性ID,并根据待读取节点的ID和属性ID,定向从存储单元中读取对应的属性行数据,将读取到的属性行数据作为所需要的节点的属性数据。
也就是说,存储引擎在读取数据时会根据检索执行引擎提供的待读取节点ID以及待读取的节点属性定向的从存储中读取对应的属性行数据,这样可以避免对节点所有属性的读取,高效的完成对于部分属性的读取并返回给检索执行引擎层。
需要说明的是,本申请对于属性的独立行存储只是解决了可以访问部分属性的问题,是实现图数据高效访问的基础,但是在使用者输入一个检索语句的时候还要解决访问哪些属性的问题。以使用者于图数据库系统的交互采用了Gremlin语言为例,需要能够从使用者提交的Gremlin检索语句中提取出将要访问的属性信息,在本申请中属性提取引擎负责对Gremlin语句进行解析从中提取出将要访问的属性信息。
举例而言,对于一个Gremlin语句,以如下为例:
g.V().hasLabel("person").has("name",
P.eq("marko")).out("knows").has("age",
P.within(29)).outE("created").has("city",
"Beijing").inV().properties("price").value().where(P.lt(100000))
检索执行引擎分析Gremlin语句生成执行计划,执行计划由若干执行步骤构成,以上述语句为例,执行计划由如下一些步骤组成:
GraphStep,HasStep,VertexStep,HasStep,VertexStep,EdgeVertexStep,PropertiesStep,PropertyValueStep,WherePredictStep
在这些步骤中,HasStep,EdgeVertexStep,PropertiesStep,PropertyValueStep,WherePredictStep属于非数据读取步骤,GraphStep和VertexStep属于I/O步骤(即数据读取步骤),该I/O步骤会触发对于图存储引擎的数据读取。检索执行引擎将检索语句分析拆解为上述步骤且在执行之前,属性提取引擎会逐个分析上述步骤,从中提取出当前Step(步骤)需要的属性。以上述语句为例,属性提取引擎提取的属性详情如下:
HasStep,对应has("name",P.eq("marko"))子句,可以从中提取出name属性;
HasStep,对应has("age",P.within(29))子句,可以从中提取出age属性;
HasStep,对应has("city","Beijing")子句,可以从中提取出city属性;
PropertiesStep,对应properties("price")子句,可以从中提取出属性price;
需要指出的是,这些提取的属性的作用域是不一样的,属性提取引擎会将提取的属性信息准确的关联到对应的I/O步骤(Step)上,以上述步骤为例:
name属性会关联到GraphStep上;
age属性会关联到VertexStep上,对应的子句为out("knows");
city属性会关联到VertexStep上,对应的子句为outE("created");
price属性也会关联到city属性对应的VertexStep上,因为price属性是由PropertiesStep使用,但是距离其最近的触发读取的Step是VertexStep,对应的子句为outE("created"),因此在节点读取时只会读取price属性非所有属性。
需要说明的是,Gremlin语言具备前向引用的语法支持,即后面的步骤(Step)可以引用之前的I/O步骤(Step)继续进行操作,本申请中的属性提取引擎可以将后面步骤(Step)中提取的属性信息叠加到被引用I/O步骤(Step)中,这样被引用的I/O步骤(Step)在数据读取时可以一并读取后面需要的属性,提升访问性能。
在步骤104中,接收存储引擎返回的属性数据,并输出属性数据。
例如,如图2所示,在接收到存储引擎返回的属性数据之后,可将最终查询获取的属性数据作为结果返回给使用者。
根据本申请实施例的图数据库检索方法,响应于接收到的检索语句,从检索语句之中提取出在语句执行过程待读取的属性信息,并根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划,根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据;其中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;在接收到存储引擎返回的属性数据时输出该属性数据。由此,本申请通过存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性,并配合对图查询语言进行执行前分析提取出需要读取的属性信息,从而在图遍历和检索时只读取检索过程需要的部分属性,做到有的放矢,进而提升检索的性能以及访问性能,节约系统资源。
为了实现上述实施例,本申请还提出一种图数据库检索系统。
图3为本申请实施例提供的一种图数据库检索系统的结构示意图。如图3所示,该图数据库检索系统300包括:属性提取引擎301、检索执行引擎302和存储引擎303。
其中,属性提取引擎301用于从接收到的检索语句之中提取出在语句执行过程待读取的属性信息,并将待读取的属性信息发送给检索执行引擎302。在一些实施例中,属性提取引擎301确定检索语句所使用的图数据库查询语言类型;基于所使用的图数据库查询语言类型对检索语句进行解析,以提取出在语句执行过程待读取的属性信息。其中,图数据库查询语言类型可为Gremlin语言。
检索执行引擎302用于根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划,并根据执行计划向存储引擎发送对应的查询请求。在一些实施例中,检索执行引擎302根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划的具体实现过程可如下:确定检索语句所使用的图数据库查询语言类型;基于所使用的图数据库查询语言类型对检索语句进行解析,将检索语句拆解为多个待执行步骤;其中,多个待执行步骤中包含至少一个数据读取步骤和至少一个非数据读取步骤;将待读取的属性信息关联到对应的数据读取步骤上;基于至少一个非数据读取步骤、以及已关联对应待读取的属性信息的至少一个数据读取步骤,生成执行计划。
存储引擎303用于负责图数据的存储,并接收检索执行引擎发送的查询请求,按照查询请求执行返回所需要的节点的属性数据;其中,存储引擎303采用一个属性一行的存储模式存储图数据之中节点的属性。作为一种示例,存储引擎303从查询请求中获取待读取节点的ID和待读取节点的属性ID,并根据待读取节点的ID和属性ID,定向从存储单元中读取对应的属性行数据,将读取到的属性行数据作为所需要的节点的属性数据。
其中,在本申请实施例中,检索执行引擎302还用于接收存储引擎303返回的属性数据,并输出属性数据。
需要说明的是,前述对图数据库检索方法实施例的解释说明也适用于该实施例的图数据库检索系统,此处不再赘述。
根据本申请实施例的图数据库检索系统,通过属性提取引擎从检索语句之中提取出在语句执行过程待读取的属性信息,并将待读取的属性信息发送给检索执行引擎,通过检索执行引擎根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划,根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据;其中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;检索执行引擎在接收到存储引擎返回的属性数据时输出该属性数据。由此,本申请通过存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性,并配合对图查询语言进行执行前分析提取出需要读取的属性信息,从而在图遍历和检索时只读取检索过程需要的部分属性,做到有的放矢,进而提升检索的性能以及访问性能,节约系统资源。
为了实现上述实施例,本申请还提出一种计算机设备。
图4是根据本申请一个实施例的计算机设备的结构框图。如图4所示,该计算机设备400可以包括:存储器401、处理器402及存储在存储器401上并可在处理器402上运行的计算机程序403,处理器402执行所述程序403时,实现本申请上述任一实施例所述的图数据库检索方法。
为了实现上述实施例,本申请还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本申请上述任一实施例所述的图数据库检索方法。
根据本申请实施例的技术方案,响应于接收到的检索语句,从检索语句之中提取出在语句执行过程待读取的属性信息,并根据检索语句和待读取的属性信息,生成携带待读属性信息的执行计划,根据执行计划向存储引擎发送对应的查询请求,以使存储引擎根据对应的查询请求执行返回所需要的节点的属性数据;其中,存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;在接收到存储引擎返回的属性数据时输出该属性数据。由此,本申请通过存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性,并配合对图查询语言进行执行前分析提取出需要读取的属性信息,从而在图遍历和检索时只读取检索过程需要的部分属性,做到有的放矢,进而提升检索的性能以及访问性能,节约系统资源。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,在本申请的描述中,“至少一个”的含义是一个或多个,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。

Claims (8)

1.一种图数据库检索方法,其特征在于,包括:
响应于接收到的检索语句,从所述检索语句之中提取出在语句执行过程待读取的属性信息;
根据所述检索语句和所述待读取的属性信息,生成携带待读属性信息的执行计划;
根据所述执行计划向存储引擎发送对应的查询请求,以使所述存储引擎根据所述对应的查询请求执行返回所需要的节点的属性数据;其中,所述存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;
接收所述存储引擎返回的所述属性数据,并输出所述属性数据;
其中,所述根据所述检索语句和所述待读取的属性信息,生成携带待读属性信息的执行计划,包括:
确定所述检索语句所使用的图数据库查询语言类型;
基于所述所使用的图数据库查询语言类型对所述检索语句进行解析,将所述检索语句拆解为多个待执行步骤;其中,所述多个待执行步骤中包含至少一个数据读取步骤和至少一个非数据读取步骤;
将所述待读取的属性信息关联到对应的数据读取步骤上;
基于所述至少一个非数据读取步骤、以及已关联对应待读取的属性信息的所述至少一个数据读取步骤,生成所述执行计划。
2.根据权利要求1所述的方法,其特征在于,所述从所述检索语句之中提取出在语句执行过程待读取的属性信息,包括:
确定所述检索语句所使用的图数据库查询语言类型;
基于所述所使用的图数据库查询语言类型对所述检索语句进行解析,以提取出在语句执行过程待读取的属性信息。
3.根据权利要求1所述的方法,其特征在于,所述存储引擎根据所述对应的查询请求执行返回所需要的节点的属性数据,包括:
从所述查询请求中获取待读取节点的ID和所述待读取节点的属性ID;
根据所述待读取节点的ID和所述属性ID,定向从存储单元中读取对应的属性行数据;
将读取到的属性行数据作为所述所需要的节点的属性数据。
4.根据权利要求2至3中任一项所述的方法,其特征在于,所述图数据库查询语言类型为Gremlin语言。
5.一种图数据库检索系统,其特征在于,包括:属性提取引擎、检索执行引擎和存储引擎,其中,
所述属性提取引擎,用于从接收到的检索语句之中提取出在语句执行过程待读取的属性信息,并将所述待读取的属性信息发送给所述检索执行引擎;
所述检索执行引擎,用于根据所述检索语句和所述待读取的属性信息,生成携带待读属性信息的执行计划,并根据所述执行计划向所述存储引擎发送对应的查询请求;
所述存储引擎,用于负责图数据的存储,并接收所述检索执行引擎发送的查询请求,按照所述查询请求执行返回所需要的节点的属性数据;其中,所述存储引擎采用一个属性一行的存储模式存储图数据之中节点的属性;
其中,所述检索执行引擎,还用于接收所述存储引擎返回的所述属性数据,并输出所述属性数据;
所述检索执行引擎具体用于:
确定所述检索语句所使用的图数据库查询语言类型;
基于所述所使用的图数据库查询语言类型对所述检索语句进行解析,将所述检索语句拆解为多个待执行步骤;其中,所述多个待执行步骤中包含至少一个数据读取步骤和至少一个非数据读取步骤;
将所述待读取的属性信息关联到对应的数据读取步骤上;
基于所述至少一个非数据读取步骤、以及已关联对应待读取的属性信息的所述至少一个数据读取步骤,生成所述执行计划。
6.根据权利要求5所述的系统,其特征在于,所述属性提取引擎具体用于:
确定所述检索语句所使用的图数据库查询语言类型;
基于所述所使用的图数据库查询语言类型对所述检索语句进行解析,以提取出在语句执行过程待读取的属性信息。
7.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时,实现如权利要求1至4中任一项所述的图数据库检索方法。
8.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至4中任一项所述的图数据库检索方法。
CN202110097106.8A 2021-01-25 2021-01-25 图数据库检索方法、系统、计算机设备和存储介质 Active CN112818181B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110097106.8A CN112818181B (zh) 2021-01-25 2021-01-25 图数据库检索方法、系统、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110097106.8A CN112818181B (zh) 2021-01-25 2021-01-25 图数据库检索方法、系统、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN112818181A CN112818181A (zh) 2021-05-18
CN112818181B true CN112818181B (zh) 2023-03-10

Family

ID=75859610

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110097106.8A Active CN112818181B (zh) 2021-01-25 2021-01-25 图数据库检索方法、系统、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN112818181B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113535145B (zh) * 2021-06-28 2024-03-29 南京明略科技有限公司 基于Gremlin的并行扩展方法、系统、电子设备及存储介质
CN115203490B (zh) * 2022-09-16 2022-12-06 国网智能电网研究院有限公司 图数据库中List列表容器数据类型的查询方法及装置
CN117591564A (zh) * 2024-01-11 2024-02-23 支付宝(杭州)信息技术有限公司 一种针对图数据库的图数据查询方法及相关设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140022A (zh) * 2015-12-24 2018-06-08 华为技术有限公司 数据查询方法和数据库系统
CN110291517A (zh) * 2017-01-20 2019-09-27 亚马逊科技公司 图数据库中的查询语言互操作性
CN110968579A (zh) * 2018-09-30 2020-04-07 阿里巴巴集团控股有限公司 执行计划的生成与执行方法、数据库引擎及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9092548B2 (en) * 2013-03-15 2015-07-28 Magnet Systems, Inc. Time-based graph data model
CN110109940B (zh) * 2018-02-01 2024-03-29 微软技术许可有限责任公司 将函数式的图遍历语言转换成扩展的结构化查询语言
CN109101565A (zh) * 2018-07-16 2018-12-28 浪潮软件集团有限公司 一种基于图数据库的语义搜索实现方法
CN110263225A (zh) * 2019-05-07 2019-09-20 南京智慧图谱信息技术有限公司 一种千亿级知识图库的数据加载、管理、检索系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108140022A (zh) * 2015-12-24 2018-06-08 华为技术有限公司 数据查询方法和数据库系统
CN110291517A (zh) * 2017-01-20 2019-09-27 亚马逊科技公司 图数据库中的查询语言互操作性
CN110968579A (zh) * 2018-09-30 2020-04-07 阿里巴巴集团控股有限公司 执行计划的生成与执行方法、数据库引擎及存储介质

Also Published As

Publication number Publication date
CN112818181A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
CN112818181B (zh) 图数据库检索方法、系统、计算机设备和存储介质
CN111522816B (zh) 基于数据库引擎的数据处理方法、装置、终端及介质
De Virgilio et al. Converting relational to graph databases
CN112559554B (zh) 一种查询语句优化方法及装置
US7111025B2 (en) Information retrieval system and method using index ANDing for improving performance
CN113032362B (zh) 数据血缘分析方法、装置、电子设备和存储介质
US8417690B2 (en) Automatically avoiding unconstrained cartesian product joins
CN110019384B (zh) 一种血缘数据的获取方法、提供血缘数据的方法及装置
Halpin UML data models from an ORM perspective: Part 1
CN112579610A (zh) 多数据源结构分析方法、系统、终端设备及存储介质
CN116257610B (zh) 基于行业知识图谱的智能问答方法、装置、设备及介质
US9053207B2 (en) Adaptive query expression builder for an on-demand data service
US20080281842A1 (en) Apparatus and method for pre-processing mapping information for efficient decomposition of xml documents
CN112000690B (zh) 解析结构化操作语句的方法和装置
US7856344B2 (en) Method for transforming overlapping paths in a logical model to their physical equivalent based on transformation rules and limited traceability
CN116418705A (zh) 基于机器学习的网络资产识别方法、系统、终端及介质
CN115292347A (zh) 一种基于规则的主动式sql算法性能检查装置及方法
WO2021135103A1 (zh) 一种语义分析方法、装置、计算机设备及存储介质
CN114625889A (zh) 一种语义消歧方法、装置、电子设备及存储介质
CN115687397A (zh) 自然语言的查询处理方法及装置
CN110874412B (zh) 一种本体匹配方法、装置和计算机存储介质
CN112765286A (zh) 一种基于关系数据库的查询方法及装置
CN115879441B (zh) 文本新颖性检测方法、装置、电子设备及可读存储介质
US11841897B2 (en) Identifying content items in response to a text-based request
KR100990445B1 (ko) 레파지토리 시스템 및 그에 따른 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant