CN116521956A - 一种图数据库查询方法、装置、电子设备及存储介质 - Google Patents
一种图数据库查询方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116521956A CN116521956A CN202310512983.6A CN202310512983A CN116521956A CN 116521956 A CN116521956 A CN 116521956A CN 202310512983 A CN202310512983 A CN 202310512983A CN 116521956 A CN116521956 A CN 116521956A
- Authority
- CN
- China
- Prior art keywords
- query
- graph database
- vertex
- edge
- adjacency list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000001914 filtration Methods 0.000 claims description 80
- 230000014509 gene expression Effects 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 235000008694 Humulus lupulus Nutrition 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 241000475481 Nebula Species 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000009412 basement excavation Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000013523 data management Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供一种图数据库查询方法、装置、电子设备及存储介质,所述方法包括:根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息;根据目标边和属性信息,生成出发顶点的邻接表;基于邻接表对图数据库中的路径进行查询。通过查询图数据库中出发顶点对应的目标边,基于目标边和属性信息,构建邻接表。邻接表包括顶点之间的路径关系,基于邻接表对图数据库中的路径进行查询,查询到符合要求的路径,改善直接对图数据库进行查询,查询操作出现失效的情况,提高查询结果的准确率。
Description
技术领域
本申请涉及数据处理领域,具体而言,涉及一种图数据库查询方法、装置、电子设备及存储介质。
背景技术
随着计算机、网络和存储等领域的快速发展,图数据库的应用越发广泛,图数据库支持高效的复杂关联关系分析,处理复杂、关联的网状数据的效率远高于传统关系型数据库。现有的对于图数据库的查询以及关系挖掘方案,由于图数据库的特性,一些查询操作会出现失效的情况,导致查询结果不准确。
发明内容
本发明实施例的目的在于一种图数据库查询方法、装置、电子设备及存储介质,通过构建出发顶点的邻接表,基于邻接表中的路径关系,实现对图数据库中的路径查询。改善对图数据库进行查询时,边属性过滤失效的情况,提高查询结果的准确率。
第一方面,本申请实施例提供了一种图数据库查询方法,包括:根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息;根据目标边和属性信息,生成出发顶点的邻接表;基于邻接表对图数据库中的路径进行查询。
在上述的实现过程中,通过查询图数据库中出发顶点对应的目标边,基于目标边和属性信息,构建邻接表。邻接表包括顶点之间的路径关系,基于邻接表对图数据库中的路径进行查询,查询到符合要求的路径,改善直接对图数据库进行查询,查询操作出现失效的情况,提高查询结果的准确率。
可选的,在本申请实施例中,属性信息包括边顶点;根据目标边和属性信息,生成出发顶点的邻接表,包括:基于出发顶点、目标边以及边顶点之间的关联关系,在内存中生成出发顶点的邻接表。
在上述的实现过程中,通过在应用内存中构建邻接表,后续的查询操作也基于内存中的邻接表进行,则无需对图数据库直接操作,避免直接对图数据库进行操作,导致过滤失效,无法获得准确的查询结果。并且由于不是对图数据库直接操作,可以减少消耗图数据库的CPU和内存等资源,提升图数据库稳定性,降低图数据库压力。
可选的,在本申请实施例中,基于邻接表对图数据库中的路径进行查询,包括:根据邻接表,获得出发顶点和边顶点中,任两个顶点之间的路径;基于预设的过滤配置规则,对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径。
在上述的实现过程中,基于内存中的邻接表,根据预设的过滤配置规则,对顶点间的路径进行属性过滤查询,实现边的属性过滤查询,获得两个顶点之间的有效路径。改善直接对图数据库进行操作,导致过滤失效,无法获得准确的查询结果的情况。
可选的,在本申请实施例中,过滤配置规则包括属性过滤规则和/或外部存储过滤规则;基于预设的过滤配置规则,对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径,包括根据属性过滤规则和/或外部存储过滤规则,生成逻辑表达式;基于逻辑表达式对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径。
在上述的实现过程中,根据过滤配置规则,生成逻辑表达式;基于逻辑表达式对内存中的邻接表的路径属性进行过滤查询,有效的对边属性进行过滤,获得符合规则的有效路径。
可选的,在本申请实施例中,基于邻接表对图数据库中的路径进行查询,包括:按照预设分组方式对边顶点进行分组,获得分组顶点数据;基于邻接表,并发执行每一分组顶点数据的路径查询。
在上述的实现过程中,对边顶点进行分组,获得分组顶点数据,并发执行每一分组顶点数据的路径查询,实现各分组顶点数据同步等待,提高了路径过滤查询的效率,
可选的,在本申请实施例中,根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息,包括:获得根据查询条件预先编写的查询语句;查询条件包括边类型、预设跳数和边方向中的至少一项;通过查询语句,查询出发顶点对应的目标边和目标边的属性信息。
在上述的实现过程中,通过根据需求设置查询语句类型和查询条件,实现更灵活且准确的获得查询结果。
可选的,在本申请实施例中,方法还包括:将图数据库对应的服务器集群分离为查询服务器节点和存储服务器节点;查询服务器节点用于对图数据库提供查询服务;存储服务器节点用于对图数据库提供存储服务;将查询服务器节点划分为查询节点和写入节点;通过第一网络负载均衡服务器将查询节点进行关联;以及通过第二网络负载均衡服务器将写入节点进行关联。
在上述的实现过程中,将查询服务器节点和存储服务器节点进行分离,并且将查询服务器节点划分为查询节点和写入节点,查询节点和写入节点分别设置不同的网络负载均衡服务器,实现查询节点的读写分离,满足同时高写入和高查询的需求,提高图数据库的性能。
第二方面,本申请实施例还提供了一种图数据库查询装置,包括:查询模块,用于根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息;邻接表模块,用于根据目标边和属性信息,生成出发顶点的邻接表;查询路径模块,用于基于邻接表对图数据库中的路径进行查询。
第三方面,本申请实施例还提供了一种电子设备,包括:处理器和存储器,存储器存储有处理器可执行的机器可读指令,机器可读指令被处理器执行时执行如上面描述的方法。
第四方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上面描述的方法。
采用本申请提供图数据库查询方法、装置、电子设备及存储介质,通过查询图数据库中出发顶点对应的目标边,基于目标边和属性信息,构建邻接表。邻接表包括顶点之间的路径关系,基于邻接表对图数据库中的路径进行查询,查询到符合要求的路径,改善直接对图数据库进行查询,查询操作出现失效的情况,提高查询结果的准确率。通过存储额外的关于边的信息,为后续的属性过滤查询提供额外的灵活性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种图数据库查询方法的流程示意图;
图2为本申请实施例提供的邻接表的示意图;
图3为本申请实施例提供的图数据库查询装置的结构示意图;
图4为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合附图对本申请技术方案的实施例进行详细的描述。以下实施例仅用于更加清楚地说明本申请的技术方案,因此只作为示例,而不能以此来限制本申请的保护范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请。
在本申请实施例的描述中,技术术语“第一”、“第二”等仅用于区别不同对象,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量、特定顺序或主次关系。在本申请实施例的描述中,“多个”的含义是两个及以上,除非另有明确具体的限定。
现有的对图数据库中的数据或关系进行查询的方法通常是通过编写查询语句直接对图数据库进行操作。目前的图数据库,例如Neo4j图数据库和nebula图数据库等,对图顶点关系中的一跳和二跳可以支持边过滤查询,但是三跳以及更多跳查询时性能会有明显下降,例如耗时较久,并且查询二跳以上边属性过滤会失效。然而对于图数据库的深度查询以及关系挖掘方案时,可能需要挖掘四跳及四跳以上的关系,因此,现有技术并不能够获得准确的查询结果,以支撑业务需求。
本申请实施例提供一种图数据库查询方法,通过构建出发顶点的邻接表,基于邻接表中的路径关系,实现对图数据库中的路径查询。即在应用层面对图数据库的查询进行改进,改善直接对图数据库进行查询时,查询操作出现失效的情况,提高查询结果的准确率。
请参见图1示出的本申请实施例提供的一种图数据库查询方法的流程示意图。本申请实施例提供的图数据库查询方法可以应用于电子设备,该电子设备可以包括终端以及服务器;其中终端具体可以为智能手机、平板电脑、计算机、个人数字助理(PersonalDigital Assitant,PDA)等;服务器具体可以为应用服务器,也可以为Web服务器。该图数据库查询方法可以包括以下步骤:
步骤S110:根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息。
步骤S120:根据目标边和属性信息,生成出发顶点的邻接表。
步骤S130:基于邻接表对图数据库中的路径进行查询。
在步骤S110中,图数据库是以点、边为基础存储单元,以高效存储、查询图数据为设计原理的数据管理***。图数据库是NoSQL数据库的一种类型,它应用图理论存储实体之间的关系信息。其中,“点”可以表示实体,“边”可以表示实体间的关系,即在图数据库中在,数据间的关系也作为数据的一部分存储起来。
在对数据库进行查询之前,可以先获取需要在图数据中进行深度查询或关系挖掘的出发顶点,出发顶点可以是图数据库中的任意点;以及获取预先设置的查询条件。查询条件可以包括对查询到的目标点的条件设置,还可以包括对查询到的目标边的条件设置。
获取到查询条件之后,在图数据库中查询符合查询条件的,出发顶点对应的目标边和目标边的属性信息。目标边的属性信息可以存储在图数据库中,例如目标边的边顶点、目标边对应的两个顶点的关系和目标边对应的两个顶点建立关系的时间等等。
在步骤S120中,根据在图数据库中查询到的目标边和每一目标边对应的属性信息,生成出发顶点的邻接表。例如,每一目标边具有顶点信息,顶点信息中包括起点和终点,可以按照目标边中的起点和终点,采用邻接表方式,构建顶点和顶点的路径。
在步骤S130中,通过邻接表可以获取邻接表中任两个顶点之间的路径,即出发顶点到边顶点以及边顶点到边顶点之间的路径,该路径为未经条件筛选的,两顶点之间所有可达到的路径。路径为出发顶点到达目标顶点所经过的所有中间点组成的边列表。之后对于两顶点之间所有可达到的路径进行路径查询,筛选出符合条件的路径。
在上述的实现过程中,通过查询图数据库中出发顶点对应的目标边,基于目标边和属性信息,构建邻接表。邻接表包括顶点之间的路径关系,基于邻接表对图数据库中的路径进行查询,查询到符合要求的路径,改善直接对图数据库进行查询,查询操作出现失效的情况,提高查询结果的准确率。
作为一种可选的实施方式,可以将邻接表添加唯一标识并进行存储,若路径查询的查询条件和出发顶点一致,则根据邻接表的唯一标识,获取对应的邻接表,基于获取到的邻接表进行路径查询,无需多次生成邻接表,实现邻接表的复用,减少资源的消耗。
请参见图2示出的本申请实施例提供的邻接表的示意图。
可选的,在本申请实施例中,属性信息包括边顶点;根据目标边和属性信息,生成出发顶点的邻接表,包括:基于出发顶点、目标边以及边顶点之间的关联关系,在内存中生成出发顶点的邻接表。
在具体的实现过程中:边顶点包括目标边的起点和终点。目标边可以具有方向也可以不具有方向,若目标边具有方向,则目标边的边顶点中一个为起点,另外一个为终点;若目标边不具有方向,则目标边对应的两个边顶点均可以为起点或终点。
基于出发顶点、目标边以及边顶点之间的关联关系,在内存中生成出发顶点的邻接表。内存可以为应用内存;邻接表存储方法跟树的孩子链表示法相类似,是一种顺序分配和链式分配相结合的存储结构。图的邻接表表示法是将图中的每个顶点与其邻接顶点或边的集合关联起来。
邻接表的实现方式可以为使用哈希表hash table将图中的每个顶点与相邻顶点的数组数据结构联系起来。在这种表示方式中,一个顶点可以由任何可哈希的对象表示。其中,顶点包括出发顶点和边顶点。
邻接表的实现方式还可以为用索引号来表示顶点。使用一个按顶点数索引的数组,其中每个顶点的数组单元格指向该顶点的相邻顶点的单链表。
邻接表还可以为面向对象的表示方式。每个顶点对象都有一个实例变量,指向一个集合对象,该集合对象列出了邻近的边缘对象。反过来,每个边缘对象又指向其端点的两个顶点对象。这种方式允许目标边存储额外的关于边的信息,为后续的属性过滤查询提供额外的灵活性。
如图2所示,该邻接表的有向图中,可以将标号为1的点作为出发顶点,标号为2、3和4的顶点作为边顶点。第1顶点毗邻第2顶点、第3顶点和第4顶点;第2顶点毗邻第1顶点和第3点;第3顶点毗邻第1顶点、第2顶点和第4顶点;第4顶点毗邻第1顶点和第3顶点。将图中的每个顶点与其邻接顶点或边的集合关联起来,即可生成邻接表。
需要说明的是,邻接表包括有向邻接表和/或无向邻接表;若目标边具有方向,则可以生成有向邻接表;若目标边不具有方向,则可以生成无向邻接表。
在上述的实现过程中,通过在应用内存中构建邻接表,后续的查询操作也基于内存中的邻接表进行,则无需对图数据库直接操作,避免直接对图数据库进行操作,导致过滤失效,无法获得准确的查询结果。并且由于不是对图数据库直接操作,可以减少消耗图数据库的CPU和内存等资源,提升图数据库稳定性,降低图数据库压力。
可选的,在本申请实施例中,基于邻接表对图数据库中的路径进行查询,包括:根据邻接表,获得出发顶点和边顶点中,任两个顶点之间的路径;基于预设的过滤配置规则,对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径。
在具体的实现过程中:任两个顶点之间的路径指的是出发顶点到任意边顶点,和/或,任意边顶点到其他边顶点之间的路径。过滤配置规则可以为对边的属性信息进行条件过滤,即对边自身存储的属性进行过滤,该属性可以存储在图数据库中或外部数据库中。例如出发顶点到第一边顶点具有多条路径,根据过滤配置规则,从多条路径中筛选出符合配置规则的路径,作为出发顶点到第一边顶点的有效路径。
可以理解的是,上述步骤可以根据业务需求,仅对需要进行路径查询的顶点之间的路径进行查询过滤;也可以对所有顶点中每两个顶点之间的路径都进行查询过滤。
在上述的实现过程中,基于内存中的邻接表,根据预设的过滤配置规则,对顶点间的路径进行属性过滤查询,实现边的属性过滤查询,获得两个顶点之间的有效路径。改善直接对图数据库进行操作,导致过滤失效,无法获得准确的查询结果的情况。
可选的,在本申请实施例中,过滤配置规则包括属性过滤规则和/或外部存储过滤规则;基于预设的过滤配置规则,对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径,包括根据属性过滤规则和/或外部存储过滤规则,生成逻辑表达式;基于逻辑表达式对图数据库中的路径进行属性过滤查询,获得任两个顶点之间的有效路径。
在具体的实现过程中:在进行路径查询之前,可以先获取过滤配置规则。其中,属性过滤规则为基于存储在图数据库的目标边的属性信息进行配置的;外部存储过滤规则为预先存储在从外部数据库中的。其中,外部数据库包括redis数据库或Hbase数据库等。外部存储过滤规则可以基于边对应的外部存储标签属性和边对应的外部存储指标进行配置。这些属性或指标无法实时写入到图数据库中,或者不需要写入图数据库,因此,可以通过存储在外部数据库的方式,实现对路径进行多种维度和指标的查询。
过滤配置规则可以包括一条或多条,获取到过滤配置规则之后,根据这些规则生成逻辑表达式,基于逻辑表达式对内存中的邻接表的路径属性过滤查询,获得任两个顶点之间的有效路径。
具体例如,若需要筛选多条过滤配置规则均满足的数据,则逻辑表达式可以为:A&B&C;其中,A、B和C分别为三条过滤配置规则;该逻辑表达式表征只筛选符合A、B和C三个条件下的路径,作为有效路径。
若需要筛选多条过滤配置规则均不满足的数据,则逻辑表达式可以为:!(A|B);该逻辑表达式表征将不符合A规则且不符合B规则的路径作为有效路径,该逻辑表达式可以实现排除特定条件下的数据。
若需要筛选多条过滤配置规则中至少符合一条规则的数据,则逻辑表达式可以为:A|B;该逻辑表达式表征将符合A规则或符合B规则中任意规则的路径作为有效路径。
若需要筛选多条过滤配置规则中不全部满足的数据,则逻辑表达式可以为:!(A&B)&(A|B);该逻辑表达式表征不全部满足A规则和B规则的路径,作为有效路径。
可以理解的是,上述逻辑表达式还可以根据实际业务进行自定义。
在上述的实现过程中,根据过滤配置规则,生成逻辑表达式;基于逻辑表达式对内存中的邻接表的路径属性进行过滤查询,有效的对边属性进行过滤,获得符合规则的有效路径。
可选的,在本申请实施例中,基于邻接表对图数据库中的路径进行查询,包括:按照预设分组方式对边顶点进行分组,获得分组顶点数据;基于邻接表,并发执行每一分组顶点数据的路径查询。
在具体的实现过程中:在根据查询条件,在图数据库中查询出发顶点对应的目标边,并得到目标边对应的边顶点之后,按照预设分组方式对所有边顶点进行分组;其中,分组方式可以为按照边顶点标签进行分组或基于分组阈值进行分组等。按照边顶点标签进行分组为将同一属性标签的边顶点划分为一组;基于分组阈值进行分组可以为将固定数量的边顶点划分为一组。
以基于分组阈值进行分组为例,例如获取到的边顶点有100个,为了降低匹配查询的耗时,可以以20个边顶点为一组,将边顶点拆分为5组边顶点数据,可以同时运行同一程序多个进程或线程对每一组边顶点并发执行路径查询。
在上述的实现过程中,对边顶点进行分组,获得分组顶点数据,并发执行每一分组顶点数据的路径查询,实现各分组顶点数据同步等待,提高了路径查询的效率,
可选的,在本申请实施例中,根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息,包括:获得根据查询条件预先编写的查询语句;查询条件包括边类型、预设跳数和边方向中的至少一项;通过查询语句,查询出发顶点对应的目标边和目标边的属性信息。
在具体的实现过程中:编写查询语句可以采用的语句类型包括MATCH语句或LOOKUP语句。作为一种可选的实施方式,查询语句还可以采用GO语句,GO语句查询的性能相对较好,但现有技术中采用GO语句对数据库进行查询,会出现随着查询跳数的增加,边属性过滤失效的问题。而通过本申请实施例提供的图数据库查询方法可以在采用GO语句查询提升查询性能的同时,实现在内存中的邻接表进行多跳的边属性过滤查询,提高查询的效率和准确率。
查询条件包括边类型、预设跳数和边方向中的至少一项。即可以在查询条件中指定边类型、预设跳数和边方向,以使查询到的目标边符合查询条件。
在上述的实现过程中,通过根据需求设置查询语句类型和查询条件,实现更灵活且准确的获得查询结果。
可选的,在本申请实施例中,方法还包括:将图数据库对应的服务器集群分离为查询服务器节点和存储服务器节点;查询服务器节点用于对图数据库提供查询服务;存储服务器节点用于对图数据库提供存储服务;将查询服务器节点划分为查询节点和写入节点;通过第一网络负载均衡服务器将查询节点进行关联;以及通过第二网络负载均衡服务器将写入节点进行关联。
在具体的实现过程中:在进行路径查询之前,为了支持更高跳数查询,提高查询性能,可以先进行图数据库层面的优化。将图数据库对应的服务器集群中的服务器,分离为查询服务器节点和存储服务器节点。即通过不同的服务器分别提供查询服务和存储服务,减少对图数据库的压力。
在实际应用中,图数据库可能会同时进行高并发写入操作以及高并发查询操作,例如类似OLAP和OLTP的混合查询场景。OLAP是数据仓库***的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。OLTP(on-line transactionprocessing,联机事务处理)是传统的关系型数据库的主要应用,主要是基本的、日常的事务处理,例如银行交易。
即便是将查询服务器节点和存储服务器节点进行分离,高并发写入也会对查询节点和存储节点造成CPU和内存压力,为了降低写入和查询的时候对CPU和内存相互竞争的情况,因此,我们在查询服务器节点和存储服务器节点分离的情况下,又将查询服务器节点划分为查询节点和写入节点。查询节点和写入节点分别写入第一负载均衡服务器和第二网络负载均衡服务器,通过第一网络负载均衡服务器将查询节点进行关联;以及通过第二网络负载均衡服务器将写入节点进行关联,即实现了查询节点的读写分离。
网络负载均衡服务器(SLB,Server Load Balancing)是***的控制服务器,用户的请求都首先到此服务器,然后由此服务器根据各个实际处理服务器状态将请求具体分配到关联的某个实际处理服务器中。
在上述的实现过程中,将查询服务器节点和存储服务器节点进行分离,并且将查询服务器节点划分为查询节点和写入节点,查询节点和写入节点分别设置不同的网络负载均衡服务器,实现查询节点的读写分离,满足同时高写入和高查询的需求,提高图数据库的性能,增强数据库的稳定性。
在一个可选的实施例中,根据边类型和预设跳数以及边方向等查询条件,在图数据库中查询符合查询条件的出发顶点对应的目标边和目标边的边顶点信息。基于出发顶点、目标边和目标边的边顶点在内存中构建邻接表,分别从邻接表里递归获取出发顶点以及边顶点之间的所有路径,将顶点之间的路径再根据边过滤配置规则和逻辑表达式进行判断,排除不符合条件的路径,把可达路径的顶点保留下来。
请参见图3示出的本申请实施例提供的图数据库查询装置的结构示意图;本申请实施例提供了一种图数据库查询装置200,包括:
查询模块210,用于根据查询条件,在图数据库中查询出发顶点对应的目标边和目标边的属性信息;
邻接表模块220,用于根据目标边和属性信息,生成出发顶点的邻接表;
查询路径模块230,用于基于邻接表对图数据库中的路径进行查询。
可选地,在本申请实施例中,所述属性信息包括边顶点;图数据库查询装置,邻接表模块220,具体用于基于所述出发顶点、所述目标边以及所述边顶点之间的关联关系,在内存中生成所述出发顶点的邻接表。
可选地,在本申请实施例中,图数据库查询装置,查询路径模块230,具体用于根据所述邻接表,获得所述出发顶点和所述边顶点中,任两个顶点之间的所述路径;基于预设的过滤配置规则,对所述图数据库中的所述路径进行属性过滤查询,获得任两个顶点之间的有效路径。
可选地,在本申请实施例中,图数据库查询装置,所述过滤配置规则包括属性过滤规则和/或外部存储过滤规则;查询路径模块230,还用于根据所述属性过滤规则和/或所述外部存储过滤规则,生成逻辑表达式;基于所述逻辑表达式对所述图数据库中的所述路径进行属性过滤查询,获得任两个顶点之间的有效路径。
可选地,在本申请实施例中,图数据库查询装置,查询路径模块230,还用于按照预设分组方式对所述边顶点进行分组,获得分组顶点数据;基于所述邻接表,并发执行每一所述分组顶点数据的路径查询。
可选地,在本申请实施例中,图数据库查询装置,查询模块210,具体用于获得根据所述查询条件预先编写的查询语句;所述查询条件包括边类型、预设跳数和边方向中的至少一项;通过所述查询语句,查询所述出发顶点对应的目标边和所述目标边的属性信息。
可选地,在本申请实施例中,图数据库查询装置,还包括,分离模块,用于将所述图数据库对应的服务器集群分离为查询服务器节点和存储服务器节点;所述查询服务器节点用于对所述图数据库提供查询服务;所述存储服务器节点用于对所述图数据库提供存储服务;将所述查询服务器节点划分为查询节点和写入节点;通过第一网络负载均衡服务器将所述查询节点进行关联;以及通过第二网络负载均衡服务器将所述写入节点进行关联。
应理解的是,该装置与上述的图数据库查询方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作***(operating system,OS)中的软件功能模块。
请参见图4示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备300,包括:处理器310和存储器320,存储器320存储有处理器310可执行的机器可读指令,机器可读指令被处理器310执行时执行如上的方法。
本申请实施例还提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上的方法。
其中,存储介质可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(Static Random Access Memory,简称SRAM),电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(Erasable Programmable Read Only Memory,简称EPROM),可编程只读存储器(Programmable Red-Only Memory,简称PROM),只读存储器(Read-OnlyMemory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。
Claims (10)
1.一种图数据库查询方法,其特征在于,包括:
根据查询条件,在图数据库中查询出发顶点对应的目标边和所述目标边的属性信息;
根据所述目标边和所述属性信息,生成所述出发顶点的邻接表;
基于所述邻接表对所述图数据库中的路径进行查询。
2.根据权利要求1所述的方法,其特征在于,所述属性信息包括边顶点;根据所述目标边和所述属性信息,生成所述出发顶点的邻接表,包括:
基于所述出发顶点、所述目标边以及所述边顶点之间的关联关系,在内存中生成所述出发顶点的邻接表。
3.根据权利要求2所述的方法,其特征在于,基于所述邻接表对所述图数据库中的路径进行查询,包括:
根据所述邻接表,获得所述出发顶点和所述边顶点中,任两个顶点之间的所述路径;
基于预设的过滤配置规则,对所述图数据库中的所述路径进行属性过滤查询,获得任两个顶点之间的有效路径。
4.根据权利要求3所述的方法,其特征在于,所述过滤配置规则包括属性过滤规则和/或外部存储过滤规则;基于预设的过滤配置规则,对所述图数据库中的所述路径进行属性过滤查询,获得任两个顶点之间的有效路径,包括:
根据所述属性过滤规则和/或所述外部存储过滤规则,生成逻辑表达式;
基于所述逻辑表达式对所述图数据库中的所述路径进行属性过滤查询,获得任两个顶点之间的有效路径。
5.根据权利要求2所述的方法,其特征在于,基于所述邻接表对所述图数据库中的路径进行查询,包括:
按照预设分组方式对所述边顶点进行分组,获得分组顶点数据;
基于所述邻接表,并发执行每一所述分组顶点数据的路径查询。
6.根据权利要求1所述的方法,其特征在于,根据查询条件,在图数据库中查询出发顶点对应的目标边和所述目标边的属性信息,包括:
获得根据所述查询条件预先编写的查询语句;所述查询条件包括边类型、预设跳数和边方向中的至少一项;
通过所述查询语句,查询所述出发顶点对应的目标边和所述目标边的属性信息。
7.根据权利要求1-6任一所述的方法,其特征在于,所述方法还包括:
将所述图数据库对应的服务器集群分离为查询服务器节点和存储服务器节点;所述查询服务器节点用于对所述图数据库提供查询服务;所述存储服务器节点用于对所述图数据库提供存储服务;
将所述查询服务器节点划分为查询节点和写入节点;通过第一网络负载均衡服务器将所述查询节点进行关联;以及通过第二网络负载均衡服务器将所述写入节点进行关联。
8.一种图数据库查询装置,其特征在于,包括:
查询模块,用于根据查询条件,在图数据库中查询出发顶点对应的目标边和所述目标边的属性信息;
邻接表模块,用于根据所述目标边和所述属性信息,生成所述出发顶点的邻接表;
查询路径模块,用于基于所述邻接表对所述图数据库中的路径进行查询。
9.一种电子设备,其特征在于,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310512983.6A CN116521956A (zh) | 2023-05-09 | 2023-05-09 | 一种图数据库查询方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310512983.6A CN116521956A (zh) | 2023-05-09 | 2023-05-09 | 一种图数据库查询方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116521956A true CN116521956A (zh) | 2023-08-01 |
Family
ID=87393855
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310512983.6A Pending CN116521956A (zh) | 2023-05-09 | 2023-05-09 | 一种图数据库查询方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116521956A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171401A (zh) * | 2023-11-03 | 2023-12-05 | 之江实验室 | 基于分层预计算的图数据中最短路径的查询方法和装置 |
CN117540056A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据查询的方法、装置、计算机设备和存储介质 |
CN118152432A (zh) * | 2024-05-07 | 2024-06-07 | 中邮消费金融有限公司 | 数据库查询方法、设备、存储介质及计算机程序产品 |
-
2023
- 2023-05-09 CN CN202310512983.6A patent/CN116521956A/zh active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171401A (zh) * | 2023-11-03 | 2023-12-05 | 之江实验室 | 基于分层预计算的图数据中最短路径的查询方法和装置 |
CN117171401B (zh) * | 2023-11-03 | 2024-01-26 | 之江实验室 | 基于分层预计算的图数据中最短路径的查询方法和装置 |
CN117540056A (zh) * | 2024-01-09 | 2024-02-09 | 腾讯科技(深圳)有限公司 | 数据查询的方法、装置、计算机设备和存储介质 |
CN117540056B (zh) * | 2024-01-09 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 数据查询的方法、装置、计算机设备和存储介质 |
CN118152432A (zh) * | 2024-05-07 | 2024-06-07 | 中邮消费金融有限公司 | 数据库查询方法、设备、存储介质及计算机程序产品 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740308B2 (en) | Key_Value data storage system | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
US9507875B2 (en) | Symbolic hyper-graph database | |
CN108427684B (zh) | 数据查询方法、装置及计算设备 | |
CN109857724B (zh) | 基于区块链实现支持多种数据库的方法及设备 | |
CN109271343B (zh) | 一种应用于键值存储***中的数据合并方法和装置 | |
CN111124474B (zh) | 一种api版本控制方法及装置 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
US10783163B2 (en) | Instance-based distributed data recovery method and apparatus | |
CN111241108B (zh) | 基于键值对kv***的索引方法、装置、电子设备和介质 | |
US10831737B2 (en) | Method and device for partitioning association table in distributed database | |
CN110134335B (zh) | 一种基于键值对的rdf数据管理方法、装置及存储介质 | |
US8015195B2 (en) | Modifying entry names in directory server | |
CN110134681B (zh) | 数据存储与查询方法、装置、计算机设备及存储介质 | |
CN103294799B (zh) | 一种数据并行批量导入只读查询***的方法及*** | |
CN109614411B (zh) | 数据存储方法、设备和存储介质 | |
US11080332B1 (en) | Flexible indexing for graph databases | |
Mao et al. | Comprehensive comparison of LSM architectures for spatial data | |
CN110096505B (zh) | 一种数据存储方法和***、设备及存储介质 | |
CN111708761A (zh) | 一种分区自治的分布式异构数据库管理***及方法 | |
CN115408547A (zh) | 一种字典树构建方法、装置、设备及存储介质 | |
CN111209304B (zh) | 数据处理方法、装置及*** | |
CN105721527A (zh) | 一种数据处理方法以及服务器 | |
JP2023546818A (ja) | データベースシステムのトランザクション処理方法、装置、電子機器、及びコンピュータプログラム | |
CN114048219A (zh) | 图数据库更新方法及装置 |
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 |