一种扩展图数据库存储结构方法、系统、设备和储存介质与流程

文档序号:26050755发布日期:2021-07-27 15:25阅读:98来源:国知局
一种扩展图数据库存储结构方法、系统、设备和储存介质与流程
本申请涉及图数据库领域,特别是涉及一种扩展图数据库存储结构方法、系统、设备和储存介质。
背景技术
:互联网数据指数级增长,数据之间的关系越来越复杂,传统的关系型数据库,随着数据量和深度的增加,无法在有效的时间内计算出结果,图数据库技术可以将关系信息储存为实体,灵活拓展数据模型。然而随着数据量和深度的增加,图数据库也面临着顶点属性过多,加载占用过多内存资源的问题,此问题也成了当下图数据库领域亟需解决的问题之一。目前针对相关技术中图数据库顶点属性过多,加载占用过多内存资源的问题,尚未提出有效的解决方案。技术实现要素:本申请实施例提供了一种扩展图数据库存储结构方法、系统、设备和储存介质,以至少解决相关技术中图数据库顶点属性过多,加载占用过多内存资源的问题。第一方面,本申请实施例提供了一种扩展图数据库储存结构的方法,所述方法包括:图数据库中的属性数据包括第一属性数据和第二属性数据;将所述图数据库中的属性数据进行预设命名处理,通过预设过滤处理将所述图数据库中的第一属性数据和第二属性数据分开,其中,所述第一属性数据包括顶点核心属性数据和边属性数据,所述第二属性数据包括顶点非核心属性数据;将所述第一属性数据保存在所述图数据库中,将所述第二属性数据保存在外部储存引擎中。在其中一些实施例中,将图数据库中属性数据进行预设命名处理,通过预设过滤处理将所述图数据库中的第一属性数据和第二属性数据分开包括:将所述图数据库中的第一属性数据统一以_字符开头来进行命名;将所述图数据库中的第二属性数据统一不以_字符开头来进行命名;根据所述预设命名处理的规则,通过预设过滤处理将所述图数据库中所述第一属性数据和所述第二属性数据分开。在其中一些实施例中,将所述第一属性数据保存在所述图数据库中,将所述第二属性数据保存在外部储存引擎中包括:将所述第二属性数据保存在预设缓存中;将所述第一属性数据保存在所述图数据库中后,返回顶点唯一id编号;将所述第二属性数据和所述顶点唯一id编号保存在外部储存引擎中。在其中一些实施例中,将所述第二属性数据和所述顶点唯一id编号保存在外部储存引擎中包括:根据java中的spi机制,通过在预设路径下的预设文件夹中查找预设文件,自动加载所述预设文件里定义的elasticsearch储存引擎扩展类,将所述第二属性数据和所述顶点唯一id编号进行储存逻辑转换,得到转换属性数据;将所述转换属性数据通过所述elasticsearch储存引擎的http接口保存在所述elasticsearch储存引擎。在其中一些实施例中,将所述转换属性数据通过所述elasticsearch储存引擎的http接口保存在所述elasticsearch储存引擎之后,所述方法还包括:通过使用图数据库的数据操作程序对elasticsearch储存引擎进行检索,可以得到所述第二属性数据包括的顶点非核心属性数据。第二方面,本申请实施例提供了一种扩展图数据库储存结构的系统,所述系统包括图数据库和外部储存引擎;所述图数据库中的属性数据包括第一属性数据和第二属性数据;将所述图数据库中的属性数据进行预设命名处理,通过预设过滤处理将所述图数据库中的第一属性数据和第二属性数据分开,其中,所述第一属性数据包括顶点核心属性数据和边属性数据,所述第二属性数据包括顶点非核心属性数据;将所述第一属性数据保存在所述图数据库中,将所述第二属性数据保存在所述外部储存引擎中。在其中一些实施例中,将所述图数据库中属性数据进行预设命名处理,通过预设过滤处理将所述图数据库中的第一属性数据和第二属性数据分开包括:将所述图数据库中的第一属性数据统一以_字符开头来进行命名;将所述图数据库中的第二属性数据统一不以_字符开头来进行命名;根据所述预设命名处理的规则,通过预设过滤处理将所述图数据库中所述第一属性数据和所述第二属性数据分开。在其中一些实施例中,将所述第一属性数据保存在所述图数据库中,将所述第二属性数据保存在所述外部储存引擎中包括:将所述第二属性数据保存在预设缓存中;将所述第一属性数据保存在所述图数据库中后,返回顶点唯一id编号;将所述第二属性数据和所述顶点唯一id编号保存在所述外部储存引擎中。第三方面,本申请实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的扩展图数据库储存结构的方法。第四方面,本申请实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的扩展图数据库储存结构的方法。相比于相关技术,本申请实施例提供的一种扩展图数据库存储结构方法、系统、设备和储存介质;图数据库中的属性数据包括第一属性数据和第二属性数据,通过将图数据库中的属性数据进行预设命名处理,通过预设过滤处理将图数据库中的第一属性数据和第二属性数据分开,其中,第一属性数据包括顶点核心属性数据和边属性数据,第二属性数据包括顶点非核心属性数据,将第一属性数据保存在图数据库中,将第二属性数据保存在外部储存引擎中,解决了图数据库顶点属性过多,加载占用过多内存资源的问题,实现了以选择性的在外部储存引擎中查询顶点的详细信息和提高了对图库的关系查询的效率。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是根据邻接表数据存储结构的示意图一;图2是根据邻接表数据存储结构的示意图二;图3是根据本申请实施例的一种扩展图数据库储存结构方法的流程图;图4是根据本申请实施例的一种扩展图数据库储存结构系统的结构框图;图5是根据本申请实施例的电子设备的内部结构示意图。附图说明:41、图数据库;42、外部储存引擎。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。显而易见地,下面描述中的附图仅仅是本申请的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本申请应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属
技术领域
内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。图数据库是专门设计用于存储图的一种数据库。不同于传统的关系型数据库(rdms),图数据库对于图这种数据结构的操作(增删改查)速度特别快。图(graph)是一种数据结构,由两种图元素构成——点(vertex,node,节点)和边(edge,relationship,关系)。关系连接两个节点,分别称为起点和终点。在行业中使用时,点和边还可以有多个属性(property)。图通常可以用来描述社交网络(例如,图中每个点为个人,边为个人之间的好友关系,个人的属性有年龄和性别,好友关系的属性有聊天时长),资金网络(例如,图中每个点为账户,边为账户之间的转账关系,账户的属性有余额,转账关系的属性有转账时间和金额)。janusgraph图数据库是以elasticsearch做索引,hbase作为存储构建的图数据库,数据要求必须按照列对单元格进行排序,并且必须能够有效地检索列范围指定的单元格子集,hbase正好原生的支持键排序。图(graph)的存储结构有两种表示方式:邻接矩阵和邻接表,janusgraph图数据库是使用邻接表图存储结构的一种图数据库。邻接表是一种数组与链表相结合的存储方法;图1是根据邻接表数据存储结构的示意图一;图2是根据邻接表数据存储结构的示意图二。结合图1和图2对邻接表的数据存储结构进行说明:图中顶点用一个一维数组存储,另外,对于顶点数组中,每个数据元素还需要存储指向第一个邻接点的指针,以便于查找该顶点的边信息;图中每个顶点vi的所有邻接点构成一个线性表,由于邻接点的个数不定,所以用单链表存储,无向图称为顶点vi的边表,有向图称为顶点vi作为弧尾的出边表。下述申请实施例中的图数据库以janusgraph图数据库为具体实施方式,外部储存引擎以elasticsearch储存引擎为具体实施方式。但本申请中的图数据库可以是其他图数据库;本申请中的外部储存引擎也可以是其他外部储存引擎,而且,实现扩展图数据库储存结构的构思与下述申请实施例相同。本申请实施例提供了一种扩展图数据库储存结构的方法,图3是根据本申请实施例的一种扩展图数据库储存结构方法的流程图,如图3所示,该方法包括以下步骤:s302,图数据库中的属性数据包括第一属性数据和第二属性数据;将图数据库中的属性数据进行预设命名处理,通过预设过滤处理将图数据库中的第一属性数据和第二属性数据分开,其中,第一属性数据包括顶点核心属性数据和边属性数据,第二属性数据包括顶点非核心属性数据;s304,将第一属性数据保存在图数据库中,将第二属性数据保存在外部储存引擎中。通过本申请实施例的步骤s302至s304,将图数据库中的属性数据进行预设命名处理,根据预设过滤处理将图数据库中的第一属性数据和第二属性数据分开,将第一属性数据保存在图数据库中,将第二属性数据保存在外部储存引擎中,解决了图数据库顶点属性过多,加载占用过多内存资源的问题,实现了以选择性的在外部储存引擎中查询顶点的详细信息和提高了对图库的关系查询的效率。可选地,在其中一些实施例中,将图数据库中属性数据进行预设命名处理,通过预设过滤处理将图数据库中的第一属性数据和第二属性数据分开包括:将图数据库中的第一属性数据统一以_字符开头来进行命名;将图数据库中的第二属性数据统一不以_字符开头来进行命名;根据预设命名处理的规则,通过预设过滤处理将图数据库中第一属性数据和第二属性数据分开。可选地,在其中一些实施例中,将第一属性数据保存在图数据库中,将第二属性数据保存在外部储存引擎中包括:将第二属性数据保存在预设缓存中;将第一属性数据保存在图数据库中后,返回顶点唯一id编号;将第二属性数据和顶点唯一id编号保存在外部储存引擎中。可选地,在其中一些实施例中,将第二属性数据和顶点唯一id编号保存在外部储存引擎中包括:根据java中的spi机制,通过在预设路径下的预设文件夹中查找预设文件,自动加载预设文件里定义的elasticsearch储存引擎扩展类,将第二属性数据和顶点唯一id编号进行储存逻辑转换,得到转换属性数据;将转换属性数据通过elasticsearch储存引擎的http接口保存在elasticsearch储存引擎。可选地,在其中一些实施例中,将转换属性数据通过elasticsearch储存引擎的http接口保存在elasticsearch储存引擎之后,方法还包括:通过使用图数据库的数据操作程序对elasticsearch储存引擎进行检索,可以得到第二属性数据包括的顶点非核心属性数据。本申请具体实施例提供了一种扩展图数据库储存结构的方法,在本申请具体实施例中,图数据库为janusgraph图数据库,外部储存引擎为elasticsearch储存引擎,表1是根据本申请具体实施例的janusgraph图数据库在hbase中的数据格式;表1vetexidpropertypropertypropertypropertyedgevetexidpropertypropertypropertyedgeedgevetexidpropertypropertypropertypropertyedgejanusgraph图数据库中的属性数据包括第一属性数据和第二属性数据,其中,第一属性数据包括顶点核心属性数据和边属性数据,第二属性数据包括顶点非核心属性数据,表2是根据本申请具体实施例的janusgraph图数据库的第一属性数据格式;表2vetexidpropertyedgevetexidpropertyedgeedgevetexidpropertypropertyedge表3是根据本申请具体实施例的janusgraph图数据库的第二属性数据格式;表3propertypropertypropertypropertypropertypropertyproperty将janusgraph图数据库中的第一属性数据统一以_字符开头来进行命名;将janusgraph图数据库中的第二属性数据统一不以_字符开头来进行命名;根据预设命名处理的规则,通过预设过滤处理将janusgraph图数据库中第一属性数据和第二属性数据分开。将第二属性数据保存在预设缓存中,再将第一属性数据保存在janusgraph图数据库中后,返回顶点唯一id编号;最后根据java中的spi机制,通过在classpath路径下的meta-inf/services文件夹中查找预设文件,自动加载预设文件里定义的elasticsearch储存引擎扩展类,将第二属性数据和顶点唯一id编号进行储存逻辑转换,得到转换属性数据,将转换属性数据通过elasticsearch储存引擎的http接口保存在elasticsearch储存引擎中。同时,转换属性数据写入elasticsearch储存引擎通过批量提交的写入模式而非单条写入的方式,保证了数据传输的效率;转换属性数据写入elasticsearch储存引擎通过异步多线程的方式,写入失败的记录日志,重做失败的记录,提高了数据传输的鲁棒性;根据部署的机器性能,通过配置文件设定每批转换属性数据写入elasticsearch存储引擎的提交记录数、并发线程数,实现了基于硬件条件的数据传输的可控性。通过使用图数据库的数据操作程序对elasticsearch储存引擎进行检索,可以得到第二属性数据包括的顶点非核心属性数据。通过本具体申请实施例,将janusgraph图数据库中的第一属性数据和第二属性数据根据_字符开头命名规则进行命名处理,根据预设过滤处理将图数据库中的第一属性数据和第二属性数据分开,将第一属性数据保存在janusgraph图数据库中,将第二属性数据保存在elasticsearch储存引擎中,解决了janusgraph图数据库顶点属性过多,加载占用过多内存资源的问题,实现了以选择性的在elasticsearch储存引擎中查询顶点的详细信息和提高了对图库的关系查询的效率。本申请实施例提供了一种扩展图数据库储存结构的系统,图4是根据本申请实施例的一种扩展图数据库储存结构系统的结构框图,如图4所示,该系统包括图数据库41和外部储存引擎42;图数据库41中的属性数据包括第一属性数据和第二属性数据;将图数据库41中的属性数据进行预设命名处理,通过预设过滤处理将图数据库41中的第一属性数据和第二属性数据分开,其中,第一属性数据包括顶点核心属性数据和边属性数据,第二属性数据包括顶点非核心属性数据;将第一属性数据保存在图数据库41中,将第二属性数据保存在外部储存引擎42中。通过本申请实施例,将图数据库41中的属性数据进行预设命名处理,根据预设过滤处理将图数据库41中的第一属性数据和第二属性数据分开,将第一属性数据保存在图数据库41中,将第二属性数据保存在外部储存引擎42中,解决了图数据库41顶点属性过多,加载占用过多内存资源的问题,实现了以选择性的在外部储存引擎42中查询顶点的详细信息和提高了对图库的关系查询的效率。在其中一些实施例中,将图数据库41中属性数据进行预设命名处理,通过预设过滤处理将图数据库41中的第一属性数据和第二属性数据分开包括:将图数据库41中的第一属性数据统一以_字符开头来进行命名;将图数据库41中的第二属性数据统一不以_字符开头来进行命名;根据预设命名处理的规则,通过预设过滤处理将图数据库41中第一属性数据和第二属性数据分开。在其中一些实施例中,将第一属性数据保存在图数据库41中,将第二属性数据保存在外部储存引擎42中包括:将第二属性数据保存在预设缓存中;将第一属性数据保存在图数据库41中后,返回顶点唯一id编号;将第二属性数据和顶点唯一id编号保存在外部储存引擎42中。在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种扩展图数据库存储结构的方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。在一个实施例中,图5是根据本申请实施例的电子设备的内部结构示意图,如图5所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图5所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种扩展图数据库存储结构方法。本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1