CN114048219A - 图数据库更新方法及装置 - Google Patents
图数据库更新方法及装置 Download PDFInfo
- Publication number
- CN114048219A CN114048219A CN202111348477.5A CN202111348477A CN114048219A CN 114048219 A CN114048219 A CN 114048219A CN 202111348477 A CN202111348477 A CN 202111348477A CN 114048219 A CN114048219 A CN 114048219A
- Authority
- CN
- China
- Prior art keywords
- target
- data
- primary key
- database
- graph database
- 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
Images
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (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
本申请是关于一种图数据库更新方法、装置、设备及存储介质,具体涉及数据库领域。所述方法包括:获取目标数据;目标数据中包含目标主键;根据目标主键在内存数据库中进行查询操作,且查询结果指示内存数据库中存在目标主键时,得到目标数据所对应的目标点数据ID;该目标点数据ID为目标数据导入所述图数据库时生成的;判断图数据库中是否存在目标点数据ID,并基于判断结果以及目标数据,对图数据库进行数据更新。上述方案中,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
Description
技术领域
本发明涉及数据库技术领域,具体涉及一种图数据库更新方法及装置。
背景技术
图数据库是基于数学中图论的思想和算法而实现的高效处理复杂关系网络的数据库。图数据库善于高效处理大量的、复杂的、互连的、多变的数据,计算效率远远高于传统的关系型数据库。
在更新图数据库时,无论是点数据的更新、删除、查询操作,还是对边数据的各种操作时,都需要对图数据库中的点数据进行查询。例如当需要导入边数据时,需要通过唯一的属性值查询边数据所对应的源顶点数据以及目标顶点数据,从而确定出图数据库中边数据所需要写入的位置。
在上述方案中,通过唯一的属性值,对图数据库中的各个点数据进行遍历查询的效率较低,导致图数据库的更新速度较低。
发明内容
本申请提供了一种图数据库更新方法、装置、设备及存储介质,提高了图数据库的更新速度,该技术方案如下。
一方面,提供了一种图数据库更新方法,所述方法包括:
获取目标数据;所述目标数据中包含目标主键;
根据所述目标主键在内存数据库中进行查询,且查询结果指示所述内存数据库中存在所述目标主键时,得到所述目标数据所对应的目标点数据ID;所述目标点数据ID为所述目标数据导入所述图数据库时生成的;
判断图数据库中是否存在所述目标点数据ID,并基于判断结果以及目标数据,对所述图数据库进行数据更新。
又一方面,提供了一种图数据库更新装置,所述装置包括:
目标数据获取单元,用于获取目标数据;所述目标数据中包含目标主键;
第一查询模块,用于根据所述目标主键在内存数据库中进行查询,且查询结果指示所述内存数据库中存在所述目标主键时,得到所述目标数据所对应的目标点数据ID;所述目标点数据ID为所述目标数据导入所述图数据库时生成的;
第一更新模块,用于判断图数据库中是否存在所述目标点数据ID,并基于判断结果以及目标数据,对所述图数据库进行数据更新。
在一种可能的实现方式中,所述装置还包括:
第二查询模块,根据所述目标主键在内存数据库中进行第一查询操作;
第三查询模块,用于当第一查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第二查询操作;
对应关系构建模块,用于当所述第二查询操作的结果指示所述图数据库中存在包含目标主键的数据时,将图数据库中存储的所述目标点数据ID导入至所述内存数据库,以构建所述目标主键与所述目标点数据ID的对应关系。
在一种可能的实现方式中,所述内存数据库中包含Hash类型的对应关系数据;所述对应关系数据包含类型标签值、目标主键以及点数据ID。
在一种可能的实现方式中,所述对应关系数据中的目标主键对应的加密值的指定位相同;所述类型标签值包括所述对应关系数据中的目标主键的加密值的指定位。
在一种可能的实现方式中,所述第一更新模块,包括:
属性信息更新单元,用于当所述判断结果指示所述图数据库中存在目标点数据ID时,根据所述目标数据,更新所述图数据库中包含目标点数据ID的点数据的属性信息;
点数据创建单元,用于当所述判断结果指示所述图数据库中不存在目标点数据ID时,按照所述目标数据中包含的各个属性信息,在所述图数据库中创建点数据。
在一种可能的实现方式中,所述装置还包括:
第四查询模块,根据目标数据中的目标主键,在内存数据库中进行第三查询操作;所述目标数据为点数据;
第五查询模块,用于当第三查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第四查询操作;
点数据创建模块,用于当所述第四查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,根据所述目标数据中的各个属性信息,在所述图数据库中创建点数据。
在一种可能的实现方式中,当所述目标数据为边数据时,所述目标点数据ID用于指示所述目标数据对应的源顶点数据与目标顶点数据中的至少一者;所述第一更新模块,还包括:
边数据写入单元,用于当所述判断结果指示所述图数据库中存在目标点数据ID时,将所述目标数据作为所述图数据库中包含目标点数据ID的点数据所对应的边数据,写入所述图数据库;
错误信息生成单元,用于当所述判断结果指示所述图数据库中不存在目标点数据ID时,生成指示图数据库更新异常的错误信息。
在一种可能的实现方式中,所述装置还包括:
第六查询模块,根据目标数据中的目标主键,在内存数据库中进行第五查询操作;所述目标数据为边数据;
第七查询模块,用于当第五查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第六查询操作;
错误信息生成模块,用于当所述第六查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,生成指示图数据库更新异常的错误信息。
再一方面,提供了一种计算机设备,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述图数据库更新方法。
又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现上述的图数据库更新方法。
再一方面,提供了一种计算机程序产品还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的图数据库更新方法。
本申请提供的技术方案可以包括以下有益效果:
在对图数据库进行更新时,获取的目标数据中包含有目标主键,根据目标主键在内存数据库中进行查询时,由于内存数据库中包含各个数据导入图数据库时产生的目标点数据ID以及各个数据的主键之间的对应关系,因此当目标数据在图数据库中存在时,则可以查询到目标点数据ID,当目标数据在图数据库中不存在时,则无法查询到目标点数据ID,此时根据是否存在目标点数据ID的判断结果,以及目标数据,可以确定对图数据库进行更新的操作,从而实现图数据库的更新流程。上述方案,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据一示例性实施例示出的一种图数据库更新系统的结构示意图。
图2示出了本申请实施例涉及的一种图数据库数据存储示意图。
图3是根据一示例性实施例示出的图数据库更新方法的方法流程图。
图4示出了一种图数据库操作流程图。
图5是根据一示例性实施例示出的图数据库更新方法的方法流程图。
图6示出了本申请实施例涉及的一种内存数据库的存储结构示意图。
图7示出了本申请实施例涉及的一种点数据入库流程示意图。
图8是根据一示例性实施例示出的图数据库更新方法的方法流程图。
图9示出了本申请实施例涉及的一种点数据入库流程示意图。
图10是根据一示例性实施例示出的图数据库更新装置的结构方框图。
图11是根据本申请一示例性实施例提供的一种计算机设备示意图。
具体实施方式
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应理解,在本申请的实施例中提到的“指示”可以是直接指示,也可以是间接指示,还可以是表示具有关联关系。举例说明,A指示B,可以表示A直接指示B,例如B可以通过A获取;也可以表示A间接指示B,例如A指示C,B可以通过C获取;还可以表示A和B之间具有关联关系。
在本申请实施例的描述中,术语“对应”可表示两者之间具有直接对应或间接对应的关系,也可以表示两者之间具有关联关系,也可以是指示与被指示、配置与被配置等关系。
本申请实施例中,“预定义”可以通过在设备(例如,包括终端设备和网络设备)中预先保存相应的代码、表格或其他可用于指示相关信息的方式来实现,本申请对于其具体的实现方式不做限定。
在对本申请所示的各个实施例进行说明之前,首先对本申请涉及到的几个概念进行介绍。
1)图数据库(Graph Database)
图数据库,又称为图形数据库,是NoSQL数据库的一种类型,它应用图形理论存储实体之间的关系信息。图形数据库是一种非关系型数据库,它应用图形理论存储实体之间的关系信息。最常见例子就是社会网络中人与人之间的关系。关系型数据库用于存储“关系型”数据的效果并不好,其查询复杂、缓慢、超出预期,而图形数据库的独特设计恰恰弥补了这个缺陷。在需要表示多对多关系时,常常需要创建一个关联表来记录不同实体的多对多关系,而且这些关联表常常不用来记录信息。如果两个实体之间拥有多种关系,那么就需要在它们之间创建多个关联表。而在一个图形数据库中,只需要标明两者之间存在着不同的关系。如果希望在两个结点集间建立双向关系,就需要为每个方向定义一个关系。也就是说,相对于关系数据库中的各种关联表,图形数据库中的关系可以通过关系能够包含属性这一功能来提供更为丰富的关系展现方式。因此相较于关系型数据库,图形数据库的用户在对事物进行抽象时将拥有一个额外的武器,那就是丰富的关系。
2)主键(primary key)
主键(主关键词)是表中的一个或多个字段,它的值用于唯一的标识表中的某一条记录。在两个表的关系中,主关键字用来在一个表中引用来自于另一个表中的特定记录。主关键字是一种唯一关键字,表定义的一部分。一个表的主键可以由多个关键字共同组成,并且主关键字的列不能包含空值。
图1是根据一示例性实施例示出的一种图数据库更新系统的结构示意图。该图数据库更新系统中包含服务器110以及终端120。
可选的,在服务器110中包含图数据库以及内存数据库。例如该图数据库可以是基于JanusGraph构建的图数据库,该内存数据库可以是基于redis(Remote DictionaryServer,远程字典服务)构建的内存数据库。
可选的,当该终端120获取到需要导入至图数据库的目标数据时,可以通过通信网络将该目标数据传输至加载有该图数据库的服务器110中。该服务器按照预先设定的导入流程,根据目标数据更新服务器110中的图数据库。
在图数据库中存在点数据以及点数据对应的属性数据,和边数据以及边数据对应的属性数据。请参考图2,其示出了本申请实施例涉及的一种图数据库数据存储示意图。如图2所示,在基于JanusGraph构建的图数据库中,是以节点为中心,按切边的方式存储数据的。比如在Hbase中节点的ID作为HBase的Rowkey(行键),节点上的每一个属性和每一条边,作为该Rowkey行的一个个独立的Cell。在如图2所示的图数据库中,图的存储整体分为三部分:vertex id(点数据ID)、property(属性)、edge(边)。其中vertex id为对应节点的唯一id,如果底层存储使用的是Hbase则代表着当前行的Rowkey,唯一代表某一个节点。property代表节点的属性;edge代表节点的对应的边。
因此在如图2所示的图数据库中,由于一条边用于连接两个节点,因此任意一条边都需要在两个节点对应的存储部分进行存储,也就是说任意一条边在图数据库中存储了两次。而当需要查询图数据库中的某一边数据时,需要在该边数据对应的两个节点(源节点以及目标节点)所对应的点数据的存储空间中进行查询。
可选的,上述服务器可以是独立的物理服务器,也可以是由多个物理服务器构成的服务器集群或者是分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等技术运计算服务的云服务器。
可选的,该系统还可以包括管理设备,该管理设备用于对该系统进行管理(如管理各个模块与服务器之间的连接状态等),该管理设备与服务器之间通过通信网络相连。可选的,该通信网络是有线网络或无线网络。
可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网,但也可以是其他任何网络,包括但不限于局域网、城域网、广域网、移动、有限或无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言、可扩展标记语言等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层、传输层安全、虚拟专用网络、网际协议安全等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
图3是根据一示例性实施例示出的图数据库更新方法的方法流程图。该方法由计算机设备执行,该计算机设备可以是如图1所示的图数据库更新系统中的服务器或终端。如图3所示,该图数据库更新方法可以包括如下步骤:
步骤301,获取目标数据。
在本申请实施例中,目标数据中包含目标主键。该目标主键是该目标数据中的一个或多个字段,该目标主键作为唯一值,以实现对目标数据的标识功能。
步骤302,根据该目标主键在内存数据库中进行查询,且查询结果指示内存数据库中存在目标主键时,得到该目标数据所对应的目标点数据ID。
该目标点数据ID为该目标数据导入该图数据库时生成的;该内存数据库中包含各个数据导入图数据库时产生的点数据ID与各个数据的主键之间的对应关系。
计算机设备获取到目标数据中的目标主键后,根据目标主键,在内存数据库中进行查询操作,而由于目标数据库中包含各个点数据ID以及主键之间的对应关系,因此根据该目标主键,即可以确定到该目标数据库中是否存在该目标主键所对应的点数据ID。并且当目标数据库中存在目标主键时,则可以根据对应关系,获取到目标数据所对应的目标点数据ID。
步骤303,判断图数据库中是否存在该目标点数据ID,并基于判断结果以及目标数据,对该图数据库进行数据更新。
当计算机设备从内存数据库查询到与目标主键对应的目标点数据ID时,可以通过目标点数据ID在图数据库中进行查询,且查询存在两种结果,当通过目标点数据ID在图数据库中进行查询,且查询到目标点数据ID所对应的点数据时,则可以根据目标数据对目标点数据ID所对应的点数据进行数据更新;而当通过目标点数据ID在图数据库中进行查询,且未查询到目标点数据ID所对应的点数据时,则说明该图数据库由于某些原因删除了该点数据,此时可以根据该目标数据在图数据库中重建点数据。
图4示出了一种图数据库操作流程图。如图4所示,当需要对点对象(即点数据)进行更新属性、查询属性、删除属性以及删除点中的至少一个操作之前,都需要对点对象进行查询;并且对边对象(即边数据)进行新增边、更新边、查询边、查询属性、删除边以及删除属性中的至少一个操作之前,也需要对边对象所对应的源顶点对象以及目标顶点对象进行查询。因此在图数据库操作中,对于点对象的查询是使用频率极高的操作,通常来说只能通过唯一的属性值,在图数据库中进行遍历操作,才可以查询到点对象,且需要消耗较多的时间和计算资源。
而在本申请实施例中,由于图数据库中导入数据时会自动生成点数据ID,并且将点数据ID导入内存数据库中,从而在内存数据库中生成主键与点数据ID的对应关系。此时当需要根据目标数据进行图数据库的更新操作前,可以根据目标数据中的目标主键,查询内存数据库,从而判定与该目标主键所对应的目标点数据ID,在如图2所示的图数据库存储结构中,只需要通过目标点数据ID与图数据库中保存的点数据ID进行对比,即可以实现查询过程,不需要对点数据保存的各个属性值进行遍历,极大地提高了查询效率,从而提高了图数据库更新过程的速度。
综上所述,在对图数据库进行更新时,获取的目标数据中包含有目标主键,根据目标主键在内存数据库中进行查询时,由于内存数据库中包含各个数据导入图数据库时产生的目标点数据ID以及各个数据的主键之间的对应关系,因此当目标数据在图数据库中存在时,则可以查询到目标点数据ID,当目标数据在图数据库中不存在时,则无法查询到目标点数据ID,此时根据是否存在目标点数据ID的判断结果,以及目标数据,可以确定对图数据库进行更新的操作,从而实现图数据库的更新流程。上述方案,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
图5是根据一示例性实施例示出的图数据库更新方法的方法流程图。该方法由计算机设备执行,该计算机设备可以是如图1所示的图数据库更新系统中的服务器或终端。如图5所示,该图数据库更新方法可以包括如下步骤:
步骤501,获取目标数据。
在本申请实施例中,该目标数据为点数据类型,且该目标数据中的目标主键则为用于指示该目标数据的唯一标识。
步骤502,根据该目标主键在内存数据库中进行查询,且查询结果指示所述内存数据库中存在所述目标主键时,得到该目标数据所对应的目标点数据ID。
在一种可能的实现方式中,该内存数据库中包含Hash类型的对应关系数据;该对应关系数据包含类型标签值、目标主键以及点数据ID。
例如,当该内存数据库是redis数据库时,为了减小存储空间的占用,redis数据库可以使用Hash类型进行数据的存储。此时可以认为该redis数据库中包含各个Hash表(即对应关系数据),用于存储目标主键以及点数据ID之间的对应关系。例如在任意一个对应关系数据中,包含类型标签值、目标主键以及点数据ID,其中类型标签值用于表征,该对应关系数据中,包含满足该类型标签值的各个目标主键,以及与该目标主键所对应的点数据ID。
在一种可能的实现方式中,该对应关系数据中的目标主键的加密值的指定位相同;该类型标签值包括该对应关系数据中的目标主键的加密值的指定位。
请参考图6,其示出了本申请实施例涉及的一种内存数据库的存储结构示意图。如图6所示,为了降低单个Hash的value(值)过大,根据主键的值进行MD5(MD5 Message-Digest Algorithm,MD5信息摘要算法)操作,将后4位字符追加至Hash的key(键)中,以降低单个hash类型值的大小。例如在一种可能的实现方式中,可以将主键进行MD5计算后得到的加密值的后四位相同的主键值合并到一个hash类型的数据结构中,位数越少,在一个hash类型数据中的数据量就会越大,4位的话,最大可以有36的4次方个,已可以支持目前上亿级别的图数据库。这边的hash是redis的hash存储类型,redis是key value(键-值)数据库,key是label(标签)和md5后四位,value类似于Map或Dict,也是key-value结构。Label是图数据库中,用户对于数据定义的标签名。这里的MD5是primary value的MD5,MD5后,后四位肯定会有相同的,于是把相同的MD5后四位的primary value合并到一起,放到同一个label+MD5的hash结构的数据中,以降低对内存的消耗。
步骤503A,当该判断结果指示该图数据库中存在目标点数据ID时,根据该目标数据,更新该图数据库中包含目标点数据ID的点数据的属性信息。
当需要导入的目标数据为点数据时,且根据内存数据库中查询到的目标点数据ID,在图数据库查询到了对应的点数据时,则可以根据目标数据,对图数据库中包含目标点数据ID的点数据的属性信息进行更新。
需要注意的是,在图数据库中包含目标点数据ID的点数据的属性信息的更新过程中,由于主键与目标点数据ID是相对应的,在目标点数据ID不变的前提下,点数据中的主键信息不能被改变,并且由于目标数据与图数据库中包含目标点数据ID的点数据中的主键应该是相同的,该点数据中的主键信息也理应不会被改变。
步骤503B,当该判断结果指示该图数据库中不存在目标点数据ID时,按照该目标数据中包含的各个属性信息,在该图数据库中创建点数据。
而当需要导入的目标数据为点数据,且根据内存数据库中查询到的目标点数据ID,在图数据库未查询到对应的点数据时,则说明图数据库中不存在目标数据的目标主键所标识的点数据,此时图数据库可以直接按照目标数据中的各个属性信息,创建新的点数据。
在一种可能的实现方式中,根据目标数据中的目标主键在内存数据库中进行第一查询操作;当第一查询操作的结果指示该内存数据库中不存在该目标主键时,根据该目标主键在该图数据库中进行第二查询操作;当该第二查询操作的结果指示该图数据库中存在包含目标主键的目标数据时,将该目标数据所对应的目标点数据ID导入该内存数据库,以构建该目标主键与该目标点数据ID的对应关系。
当需要根据目标数据对图数据库进行更新前,但根据目标数据中的目标主键在内存数据库中进行第一查询操作时,且第一查询的结果指示该内存数据库中不存在目标主键,则说明计算机设备无法通过内存数据库,确定与目标主键所对应的点数据ID。此时可能存在两种情况,一是图数据库中不存在与包含目标主键的点数据,二是图数据库中存在包含目标主键的点数据,但内存数据库中未保存该目标主键与点数据ID之间的对应关系。
为了进一步检验图数据库中是否存在包含目标主键的点数据,此时可以根据目标主键在图数据库中进行遍历查询(即第二查询操作),当第二查询操作的结果指示该图数据库中包含目标键的目标数据时,则此时图数据库中存在包含目标主键的点数据(即目标数据),但内存数据库中未保存该目标主键与目标点数据ID之间的对应关系,因此计算机设备可以将目标主键与目标点数据ID导入内存数据库,以构建目标主键与该目标点数据ID之间的对应关系。从而使得计算机设备后续可以在内存数据库中,通过目标主键查询到目标点数据ID,从而通过目标点数据ID在图数据库中进行查询,提高了图数据库中的查询效率。
在一种可能的实现方式中,根据目标数据中的目标主键,在内存数据库中进行第三查询操作;该目标数据为点数据;当第三查询操作的结果指示该内存数据库中不存在该目标主键时,根据该目标主键在该图数据库中进行第四查询操作;当该第四查询操作的结果指示该图数据库中不存在包含目标主键的目标数据时,根据该目标数据中的各个属性信息,在该图数据库中创建点数据。
同样的,当需要根据目标数据对图数据库进行更新前,但根据目标数据中的目标主键在内存数据库中进行第三查询操作时,且第三查询操作的结果指示该内存数据库中不存在目标主键,则说明计算机设备无法通过内存数据库,确定与目标主键所对应的点数据ID。此时可能存在两种情况,一是图数据库中不存在与包含目标主键的点数据,二是图数据库中存在包含目标主键的点数据,但内存数据库中未保存该目标主键与点数据ID之间的对应关系。
而当根据目标主键直接在图数据库中进行遍历查询(即第四查询操作),且第四查询操作的结果指示该图数据库中的确不存在包含目标主键的目标数据时,此时根据目标数据中的各个属性信息,在该图数据库中创建目标数据对应的点数据。
可选的,当在该图数据库中创建点数据后,该图数据库中生成用于指示目标数据对应的点数据的点数据ID,此时计算机设备将用于指示目标数据对应的点数据的点数据ID,与目标数据的目标主键导入内存数据库,以构建二者之间的对应关系。
请参考图7,其示出了本申请实施例涉及的一种点数据入库流程示意图。如图7所示,计算机设备读取点数据后,根据标签和主键,在内存数据库redis中进行检索;
当该点在redis中存在时,获取redis中的点id,根据点id在图数据库中进行校验,是否存在于图数据库中(本操作通过id进行检索,速度非常快,不会成为瓶颈);
当该点在redis中不存在时,可选择是否在图数据库中进行校验,经过测试,redis的安全性和稳定性可以得到保证,丢失数据的可能性不大,当第一次入库或已知新增数据占比过大时,可跳过该校验阶段,还可选择定期对缓存数据库进行批量修复的功能;
当该点存在于图数据库中时,说明该点已存在,对该点进行更新操作;
当该点不存在与图数据库中时,说明该点不存在,对该点进行新增操作。
综上所述,在对图数据库进行更新时,获取的目标数据中包含有目标主键,根据目标主键在内存数据库中进行查询时,由于内存数据库中包含各个数据导入图数据库时产生的目标点数据ID以及各个数据的主键之间的对应关系,因此当目标数据在图数据库中存在时,则可以查询到目标点数据ID,当目标数据在图数据库中不存在时,则无法查询到目标点数据ID,此时根据是否存在目标点数据ID的判断结果,以及目标数据,可以确定对图数据库进行更新的操作,从而实现图数据库的更新流程。上述方案,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
图8是根据一示例性实施例示出的图数据库更新方法的方法流程图。该方法由计算机设备执行,该计算机设备可以是如图1所示的图数据库更新系统中的服务器或终端。如图8所示,该图数据库更新方法可以包括如下步骤:
步骤801,获取目标数据。
在本申请实施例中,该目标数据为边数据类型,则该目标数据中的目标主键,则用于指示目标数据所对应的源顶点数据以及目标顶点数据中的至少一者。
可选的,当该目标数据为边数据类型时,该目标数据中存在两个目标主键,分别用于指示目标数据所对应的源顶点数据以及目标数据所对应的目标顶点数据。由于两个目标主键所对应的计算机执行过程相同,后续步骤以其中任意一个目标主键为例进行解释。
步骤802,根据该目标主键在内存数据库中进行查询操作,得到该目标数据所对应的目标点数据ID。
步骤802与步骤502内容类似,此处不再赘述。
步骤803A,当该判断结果指示该图数据库中存在目标点数据ID时,将该目标数据作为该图数据库中包含目标点数据ID的点数据所对应的边数据,写入该图数据库。
在判断结果指示该图数据库中存在目标点数据ID,则该图数据库中包含目标点数据ID的点数据可能是源顶点数据或目标顶点数据中的一者。以该包含目标点数据ID的点数据为目标顶点数据为例,当根据目标点数据ID查询到目标顶点数据后,由于目标数据为与目标顶点数据有关的边数据,因此可以将该目标数据作为与该目标顶点数据相关的边数据,写入该图数据库,并保存至该目标顶点数据对应的存储区域。
步骤803B,当该判断结果指示该图数据库中不存在目标点数据ID时,生成指示图数据库更新异常的错误信息。
而当判断结果指示该图数据库中不存在目标点数据ID时,即目标数据作为边数据,无法在图数据库中找到与其对应的源顶点数据以及目标顶点数据,显然此时目标数据是无法导入图数据库中的,此时计算机设备生成指示图数据库更新异常的错误信息。
在一种可能的实现方式中,根据目标数据中的目标主键,在内存数据库中进行第五查询操作;该目标数据为边数据;当第五查询操作的结果指示该内存数据库中不存在该目标主键时,根据该目标主键在该图数据库中进行第六查询操作;当该第六查询操作的结果指示该图数据库中不存在包含目标主键的点数据时,生成指示图数据库更新异常的错误信息。
而当目标数据为边数据,且需要导入该图数据库以对该图数据库进行更新时,当第五查询操作的结果指示该内存数据库不存在该目标主键时,说明内存数据库中不存在目标主键与点数据ID之间的对应关系,此时为了进一步判定图数据库中是否存在与该目标主键所对应的点数据,需要通过目标主键,在图数据库中进行遍历查询(即第六查询操作),而当查询结果指示该图数据库也不存在包含目标主键的数据时,即目标数据作为边数据,无法在图数据库中找到与其对应的源顶点数据以及目标顶点数据,显然此时目标数据是无法导入图数据库中的,因此计算机设备也生成指示图数据库更新异常的错误信息。
请参考图9,其示出了本申请实施例涉及的一种点数据入库流程示意图。如图9所示,读取点数据后,根据标签和主键,在内存数据库redis中进行检索;
当该点在redis中存在时,获取redis中的点id,根据点id在图数据库中进行校验,是否存在于图数据库中(本操作通过id进行检索,速度非常快,不会成为瓶颈);
当该点在redis中不存在时,可选择是否在图数据库中进行校验,经过测试,redis的安全性和稳定性可以得到保证,丢失数据的可能性不大,当第一次入库或已知新增数据占比过大时,可跳过该校验阶段,还可选择定期对缓存数据库进行批量修复的功能;
当该点存在于图中时,根据id获取点对象,根据点对象进行边的操作。
本发明通过在图数据库的架构中增加内存数据库redis的方式,来提升对点的检索速度,以优化图数据的操作性能问题。提升的有益效果如下:
1.不对某一种JanusGraph的后端存储和后端索引引擎进行限制,后端存储和引擎对于本入库方案是透明的,本入库方案使用JanusGraph的高级API(ApplicationProgramming Interface,应用程序接口)进行数据操作;
1.入库性能大幅度提升,性能对比如下:
可以发现,使用本发明的批量入库方案导入边数据速度有显著提升,且当数据量上升时,速度也不会有明显衰减。在使用图数据库时,边数据往往比点数据量多很多,优化边数据入库速度即可提升整体入库速度。
综上所述,在对图数据库进行更新时,获取的目标数据中包含有目标主键,根据目标主键在内存数据库中进行查询时,由于内存数据库中包含各个数据导入图数据库时产生的目标点数据ID以及各个数据的主键之间的对应关系,因此当目标数据在图数据库中存在时,则可以查询到目标点数据ID,当目标数据在图数据库中不存在时,则无法查询到目标点数据ID,此时根据是否存在目标点数据ID的判断结果,以及目标数据,可以确定对图数据库进行更新的操作,从而实现图数据库的更新流程。上述方案,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
图10是根据一示例性实施例示出的图数据库更新装置的结构方框图。所述装置包括:
目标数据获取单元1001,用于获取目标数据;所述目标数据中包含目标主键;
第一查询模块1002,用于根据所述目标主键在内存数据库中进行查询操作,且查询结果指示所述内存数据库中存在所述目标主键时,得到所述目标数据所对应的目标点数据ID;所述目标点数据ID为所述目标数据导入所述图数据库时生成的;
第一更新模块1003,用于判断图数据库中是否存在所述目标点数据ID,并基于判断结果以及目标数据,对所述图数据库进行数据更新。
在一种可能的实现方式中,所述装置还包括:
第二查询模块,根据所述目标主键在内存数据库中进行第一查询操作;
第三查询模块,用于当第一查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第二查询操作;
对应关系构建模块,用于当所述第二查询操作的结果指示所述图数据库中存在包含目标主键的数据时,将图数据库中存储的所述目标点数据ID导入至所述内存数据库,以构建所述目标主键与所述目标点数据ID的对应关系。
在一种可能的实现方式中,所述内存数据库中包含Hash类型的对应关系数据;所述对应关系数据包含类型标签值、目标主键以及点数据ID。
在一种可能的实现方式中,所述对应关系数据中的目标主键对应的加密值的指定位相同;所述类型标签值包括所述对应关系数据中的目标主键的加密值的指定位。
在一种可能的实现方式中,所述第一更新模块,包括:
属性信息更新单元,用于当所述判断结果指示所述图数据库中存在目标点数据ID时,根据所述目标数据,更新所述图数据库中包含目标点数据ID的点数据的属性信息;
点数据创建单元,用于当所述判断结果指示所述图数据库中不存在目标点数据ID时,按照所述目标数据中包含的各个属性信息,在所述图数据库中创建点数据。
在一种可能的实现方式中,所述装置还包括:
第四查询模块,根据目标数据中的目标主键,在内存数据库中进行第三查询操作;所述目标数据为点数据;
第五查询模块,用于当第三查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第四查询操作;
点数据创建模块,用于当所述第四查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,根据所述目标数据中的各个属性信息,在所述图数据库中创建点数据。
在一种可能的实现方式中,当所述目标数据为边数据时,所述目标点数据ID用于指示所述目标数据对应的源顶点数据与目标顶点数据中的至少一者;所述第一更新模块,还包括:
边数据写入单元,用于当所述判断结果指示所述图数据库中存在目标点数据ID时,将所述目标数据作为所述图数据库中包含目标点数据ID的点数据所对应的边数据,写入所述图数据库;
错误信息生成单元,用于当所述判断结果指示所述图数据库中不存在目标点数据ID时,生成指示图数据库更新异常的错误信息。
在一种可能的实现方式中,所述装置还包括:
第六查询模块,根据目标数据中的目标主键,在内存数据库中进行第五查询操作;所述目标数据为边数据;
第七查询模块,用于当第五查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第六查询操作;
错误信息生成模块,用于当所述第六查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,生成指示图数据库更新异常的错误信息。
综上所述,在对图数据库进行更新时,获取的目标数据中包含有目标主键,根据目标主键在内存数据库中进行查询时,由于内存数据库中包含各个数据导入图数据库时产生的目标点数据ID以及各个数据的主键之间的对应关系,因此当目标数据在图数据库中存在时,则可以查询到目标点数据ID,当目标数据在图数据库中不存在时,则无法查询到目标点数据ID,此时根据是否存在目标点数据ID的判断结果,以及目标数据,可以确定对图数据库进行更新的操作,从而实现图数据库的更新流程。上述方案,通过在目标数据中设置目标主键,并且设置内存数据库指示主键与点数据ID的对应关系,由于点数据ID为图数据库生成的索引,通过点数据ID可以实现快速查询点数据,从而提高了图数据库的更新速度。
请参阅图11,其是根据本申请一示例性实施例提供的一种计算机设备示意图,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机程序,所述计算机程序被所述处理器执行时,实现上述的图数据库更新方法。
其中,处理器可以为中央处理器(Central Processing Unit,CPU)。处理器还可以为其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及模块,如本发明实施方式中的方法对应的程序指令/模块。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及数据处理,即实现上述方法实施方式中的方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
在一示例性实施例中,还提供了一种计算机可读存储介质,用于存储有至少一条计算机程序,所述至少一条计算机程序由处理器加载并执行以实现上述方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。
Claims (11)
1.一种图数据库更新方法,其特征在于,所述方法包括:
获取目标数据;所述目标数据中包含目标主键;
根据所述目标主键在内存数据库中进行查询,且查询结果指示所述内存数据库中存在所述目标主键时,得到所述目标数据所对应的目标点数据ID;所述目标点数据ID为所述目标数据导入所述图数据库时生成的;
判断所述图数据库中是否存在所述目标点数据ID,并基于判断结果以及目标数据,对所述图数据库进行数据更新。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述目标主键在内存数据库中进行第一查询操作,且第一查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第二查询操作;
当所述第二查询操作的结果指示所述图数据库中存在包含目标主键的数据时,将图数据库中存储的所述目标点数据ID导入至所述内存数据库,以构建所述目标主键与所述目标点数据ID的对应关系。
3.根据权利要求2所述的方法,其特征在于,所述内存数据库中包含Hash类型的对应关系数据;所述对应关系数据包含类型标签值、目标主键以及点数据ID。
4.根据权利要求3所述的方法,其特征在于,所述对应关系数据中的目标主键对应的加密值的指定位相同;所述类型标签值包括所述对应关系数据中的目标主键的加密值的指定位。
5.根据权利要求1至4任一所述的方法,其特征在于,当所述目标数据为点数据时,所述基于判断结果以及目标数据,对所述图数据库进行数据更新,包括:
当所述判断结果指示所述图数据库中存在目标点数据ID时,根据所述目标数据,更新所述图数据库中包含目标点数据ID的点数据的属性信息;
当所述判断结果指示所述图数据库中不存在目标点数据ID时,按照所述目标数据中包含的各个属性信息,在所述图数据库中创建点数据。
6.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
根据目标数据中的目标主键,在内存数据库中进行第三查询操作;所述目标数据为点数据;
当第三查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第四查询操作;
当所述第四查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,根据所述目标数据中的各个属性信息,在所述图数据库中创建点数据。
7.根据权利要求1至4任一所述的方法,其特征在于,当所述目标数据为边数据时,所述目标点数据ID用于指示所述目标数据对应的源顶点数据与目标顶点数据中的至少一者;所述基于判断结果以及目标数据,对所述图数据库进行数据更新,包括:
当所述判断结果指示所述图数据库中存在目标点数据ID时,将所述目标数据作为所述图数据库中包含目标点数据ID的点数据所对应的边数据,写入所述图数据库;
当所述判断结果指示所述图数据库中不存在目标点数据ID时,生成指示图数据库更新异常的错误信息。
8.根据权利要求1至4任一所述的方法,其特征在于,所述方法还包括:
根据目标数据中的目标主键,在内存数据库中进行第五查询操作;所述目标数据为边数据;
当第五查询操作的结果指示所述内存数据库中不存在所述目标主键时,根据所述目标主键在所述图数据库中进行第六查询操作;
当所述第六查询操作的结果指示所述图数据库中不存在包含目标主键的点数据时,生成指示图数据库更新异常的错误信息。
9.一种图数据库更新装置,其特征在于,所述装置包括:
目标数据获取单元,用于获取目标数据;所述目标数据中包含目标主键;
第一查询模块,用于根据所述目标主键在内存数据库中进行查询,且查询结果指示所述内存数据库中存在目标主键时,得到所述目标数据所对应的目标点数据ID;所述目标点数据ID为所述目标数据导入所述图数据库时生成的;
第一更新模块,用于判断图数据库中是否存在所述目标点数据ID,并基于判断结果以及目标数据,对所述图数据库进行数据更新。
10.一种计算机设备,其特征在于,所述计算机设备中包含处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现如权利要求1至8任一所述的图数据库更新方法。
11.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述至少一条指令由处理器加载并执行以实现如权利要求1至8任一所述的图数据库更新方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348477.5A CN114048219A (zh) | 2021-11-15 | 2021-11-15 | 图数据库更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111348477.5A CN114048219A (zh) | 2021-11-15 | 2021-11-15 | 图数据库更新方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114048219A true CN114048219A (zh) | 2022-02-15 |
Family
ID=80209197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111348477.5A Pending CN114048219A (zh) | 2021-11-15 | 2021-11-15 | 图数据库更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114048219A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594958A (zh) * | 2023-05-25 | 2023-08-15 | 之江实验室 | 一种图数据集加载方法、系统、电子设备、介质 |
-
2021
- 2021-11-15 CN CN202111348477.5A patent/CN114048219A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116594958A (zh) * | 2023-05-25 | 2023-08-15 | 之江实验室 | 一种图数据集加载方法、系统、电子设备、介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11475034B2 (en) | Schemaless to relational representation conversion | |
US11520780B2 (en) | Distributed database systems and structures | |
US11281793B2 (en) | User permission data query method and apparatus, electronic device and medium | |
CN111046034B (zh) | 管理内存数据及在内存中维护数据的方法和系统 | |
US20150293958A1 (en) | Scalable data structures | |
CN107085570B (zh) | 数据处理方法、应用服务器和路由器 | |
CN104794123A (zh) | 一种为半结构化数据构建NoSQL数据库索引的方法及装置 | |
CN109983456B (zh) | 存储器内密钥范围搜索方法和系统 | |
CN110737663B (zh) | 一种数据存储方法、装置、设备及存储介质 | |
CN111984745B (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
WO2023083237A1 (zh) | 图数据的管理 | |
US8548980B2 (en) | Accelerating queries based on exact knowledge of specific rows satisfying local conditions | |
CN114048219A (zh) | 图数据库更新方法及装置 | |
CN105843809B (zh) | 数据处理方法和装置 | |
CN118035320B (zh) | 融合数据库的数据查询方法、装置、设备和介质 | |
CN112148728B (zh) | 用于信息处理的方法、设备和计算机程序产品 | |
WO2013097065A1 (zh) | 一种索引数据处理方法及设备 | |
CN116737753A (zh) | 业务数据处理方法、装置、计算机设备和存储介质 | |
CN113449003B (zh) | 信息查询的方法、装置、电子设备及介质 | |
CN116627928A (zh) | 数据库迁移方法、装置、设备和存储介质 | |
CN113934729A (zh) | 一种基于知识图谱的数据管理方法、相关设备及介质 | |
CN112416966A (zh) | 即席查询方法、装置、计算机设备和存储介质 | |
CN113448957A (zh) | 一种数据查询方法和装置 | |
CN113609318B (zh) | 一种图数据处理方法、装置、电子设备以及存储介质 | |
CN113946580B (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 |