时变图的存储方法、装置、电子设备和存储介质与流程
未命名
10-18
阅读:67
评论:0

技术领域:
:,尤其涉及一种时变图的存储方法、装置、电子设备和存储介质。
背景技术:
::2.时变图指的是实体间相互关联、实体的属性和实体之间的关系会发生频繁变化的图结构。时变图的数据模型包括时长标记的时变图、区间标记的时变图以及基于快照的时变图,然而,这三类数据模型在存储时均只存储图的顶点、边以及它们之间的连接关系,而这些数据仅能用于表示图拓扑,即用于表示连接关系随时间的变化。但是,对于某些应用场景来说,其不仅图拓扑发生了随时间的变化,还存在其它随时间变化的数据,这种情况下,仅存储图的顶点、边以及它们之间的连接关系将导致后续根据存储的数据刻画出来的时变图的准确性较低。技术实现要素:3.本公开提供了一种时变图的存储方法、装置、电子设备和存储介质,主要目的在于提高时变图刻画的准确性。4.根据本公开的一方面,提供了一种时变图的存储方法,包括:5.获取时变图对应的图结构时变数据集合,其中,所述图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,所述图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;6.存储所述图结构时变数据集合。7.可选的,所述存储所述图结构时变数据集合,包括:8.控制编码器将所述图结构时变数据集合编码为合并树结构数据;9.将所述合并树结构数据对应的写入记录存储至预写日志,并将所述合并树结构数据写入至内存表。10.可选的,所述控制编码器将所述图结构时变数据集合编码为合并树结构数据,包括:11.创造图结构合并树结构;12.将所述任一图结构时变数据中的图结构标识和图结构时变时标合并为图结构键数据;13.创造图结构属性合并树结构,将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构,得到图结构值数据;14.将所述图结构键数据和所述图结构值数据插入至所述图结构合并树结构,得到合并树结构数据。15.可选的,所述将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构,包括:16.将目标图结构属性时变数据中的所述属性标识和所述属性时变时标合并为图结构属性键数据,其中,所述目标图结构属性时变数据为所述任一图结构时变数据中的图结构属性时变数据集合中的任一图结构属性时变数据;17.将所述目标图结构属性时变数据中的所述属性内容数据作为图结构属性值数据;18.将所述图结构属性键数据和所述图结构属性值数据插入至所述图结构属性合并树结构。19.可选的,图结构包括边和顶点,所述图结构时变数据集合包括顶点时变数据子集和边时变数据子集,所述控制编码器将所述图结构时变数据集合编码为合并树结构数据,包括:20.创造顶点合并树结构,将所述顶点时变数据子集添加至所述顶点合并树结构,得到顶点合并树结构数据;21.创造边合并树结构,将所述边时变数据子集添加至所述边合并树结构,得到边合并树结构数据。22.可选的,在所述将所述合并树结构数据写入至内存表之后,还包括:23.在接收到针对所述时变图的数据检索指令的情况下,在有序字符串表中查询所述数据检索指令对应的目标合并树结构数据;24.控制解码器对所述目标合并树结构数据进行解码,得到所述数据检索指令对应的目标图结构时变数据集合。25.可选的,所述获取时变图对应的图结构时变数据集合,包括:26.获取时变图,并控制转换模型将所述时变图转换为图结构时变数据集合。27.根据本公开的另一方面,提供了一种时变图的存储装置,包括:28.集合获取单元,用于获取时变图对应的图结构时变数据集合,其中,所述图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,所述图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;29.集合存储单元,用于存储所述图结构时变数据集合。30.可选的,所述集合存储单元用于存储所述图结构时变数据集合时,具体用于:31.控制编码器将所述图结构时变数据集合编码为合并树结构数据;32.将所述合并树结构数据对应的写入记录存储至预写日志,并将所述合并树结构数据写入至内存表。33.可选的,所述集合存储单元用于控制编码器将所述图结构时变数据集合编码为合并树结构数据时,具体用于:34.创造图结构合并树结构;35.将所述任一图结构时变数据中的图结构标识和图结构时变时标合并为图结构键数据;36.创造图结构属性合并树结构,将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构,得到图结构值数据;37.将所述图结构键数据和所述图结构值数据插入至所述图结构合并树结构,得到合并树结构数据。38.可选的,所述集合存储单元用于将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构时,具体用于:39.将目标图结构属性时变数据中的所述属性标识和所述属性时变时标合并为图结构属性键数据,其中,所述目标图结构属性时变数据为所述任一图结构时变数据中的图结构属性时变数据集合中的任一图结构属性时变数据;40.将所述目标图结构属性时变数据中的所述属性内容数据作为图结构属性值数据;41.将所述图结构属性键数据和所述图结构属性值数据插入至所述图结构属性合并树结构。42.可选的,图结构包括边和顶点,所述图结构时变数据集合包括顶点时变数据子集和边时变数据子集,所述集合存储单元用于控制编码器将所述图结构时变数据集合编码为合并树结构数据时,具体用于:43.创造顶点合并树结构,将所述顶点时变数据子集添加至所述顶点合并树结构,得到顶点合并树结构数据;44.创造边合并树结构,将所述边时变数据子集添加至所述边合并树结构,得到边合并树结构数据。45.可选的,所述时变图的存储装置还包括数据检索单元,用于在所述将所述合并树结构数据写入至内存表之后,具体用于:46.在接收到针对所述时变图的数据检索指令的情况下,在有序字符串表中查询所述数据检索指令对应的目标合并树结构数据;47.控制解码器对所述目标合并树结构数据进行解码,得到所述数据检索指令对应的目标图结构时变数据集合。48.可选的,所述集合获取单元用于获取时变图对应的图结构时变数据集合时,具体用于:49.获取时变图,并控制转换模型将所述时变图转换为图结构时变数据集合。50.根据本公开的另一方面,提供了一种电子设备,包括:51.至少一个处理器;以及52.与所述至少一个处理器通信连接的存储器;其中,53.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述一方面中任一项所述的方法。54.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述一方面中任一项所述的方法。55.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述一方面中任一项所述的方法。56.在本公开一个或多个实施例中,通过获取时变图对应的图结构时变数据集合,其中,图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;存储图结构时变数据集合。因此,在存储时变图时,不仅存储了连接拓扑的变化即图结构时变数据,还存储了图结构对应的属性的变化,从而可以根据该存储的数据准确的刻画出时变图,可以提高时变图刻画的准确性。57.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。附图说明58.附图用于更好地理解本方案,不构成对本公开的限定。其中:59.图1示出本公开实施例提供的一种时变图的存储方法的流程示意图;60.图2示出本公开实施例提供的另一种时变图的存储方法的流程示意图;61.图3示出本公开实施例提供的一种时变图的存储系统的架构示意图;62.图4示出本公开实施例提供的一种编码器的工作流程图;63.图5示出本公开实施例提供的一种时变图的存储装置的结构示意图;64.图6是用来实现本公开实施例的时变图的存储方法的电子设备的框图。具体实施方式65.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。66.图存储和图分析一般都是针对静态图的,例如邻接矩阵、邻接边、对边组、压缩稀疏行等等。然而,在实际应用场景中遇到的往往会随时间变化的图,即时变图,例如以下几种应用场景:67.第一种应用场景:人与人的终端之间的信息交互的产生是有时间点的。如果将两个人的终端之间的交互看作有向的边,那么从第一次交互开始,才建立了它们之间的关系/边,这样的关系/边会在后续的多个时间点反复增加内容,如果将每次的信息发送都看作一条边,那这个边会有多条,如果要检索一个消息在整个交互网络中的传播,只会去查找起始消息之后的时间点的边,这就是需要关注时间的意义;68.第二种应用场景:应用系统往往依赖一些基础的组件,例如数据库、中间件、操作系统,乃至特定的服务器、存储、网络和安全设备等等。微服务的架构设计更需要细化到其自身各个服务之间的调用关系。这些软硬件、服务之间的调用关系是在某个时间点上产生的,有时还需要考虑调用是否成功的确认,即反向的消息。这样的系统中,对故障和事件的追踪也必须考虑时间因素,这样才能进行正确的事故原因分析;69.第三种应用场景:在图分析中每一个人可以作为一个节点,用来构造人与人之间、人与事物之间等等各种关系。而人的一些属性会随着时间而改变,例如年龄、学历、工作岗位、职务级别、电话号码、住址等等。如果这些属性是做图分析的一些重要考察因素,那么它们随时间的变化就应该考虑在内;70.第四种应用场景:在供应链的网络图分析中,两个城市和仓库之间的航线、道路、水运等等容量很可能随时间发生变化,例如不同的季节、节假日、突发事件、人为因素和政策都会产生影响。另外,在电力网、通信网、供水系统等规划的图中,也有类似的供应量随时间变化的问题,它们随时间的变化也应该考虑在内。71.上述应用场景中,第一种应用场景和第二种应用场景可以看作图拓扑发生了随时间的变化,也就是节点之间的边随着时间的变化进行了增加或减少。第三种应用场景是节点的属性发生了随时间的变化,第四种应用场景则是边的属性发生了随时间的变化。72.相关技术中,时变图的数据模型可以分为以下三类:73.第一类:时长标记的时变图(duration-labeledtemporalgraphs,dltg),其用gd=(v,e)表示一个时变图,其中,v是顶点的集合,e是边的集合,而g是这个时变图。每一条边e=(u,v,t,λ)∈e是时变的,表示了从顶点u到顶点v,从t时刻开始,持续了时长λ的关系。任意两个时变边(u,v,t1,λ1)和(u,v,t2,λ2)中t1≤t2;每一个顶点v∈v,只有当有时变的边从其开始,或到其结束,才说v是活动的;74.第二类:区间标记的时变图(interval-labeledtemporalgraphs,iltg),其也用gd=(v,e)表示一个时变图,但是其每一条边e=(u,v,i)∈e是时变的,表示了从顶点u到顶点v的关系,并且只是在时间区间i=[ts,te]内有效;[0075]第三类:基于快照的时变图(snapshot-basedtemporalgraphs,sbtg),其在一个时间区间[ti,tj]内的时变图为g[ti,tj],其是一个图快照的序列,即序列中的每个图快照都是一个静态图。[0076]上述三类时变图的数据模型中,sbtg虽然在每个时刻都有所有顶点和边的完整信息,但是数据非常冗余。而dltg和iltg虽然分别使用了(t,λ)和i=(ts,te)来刻画边随时间的变化,显然都是用了两个变量,而且可以相互转换,其时标类型的数据可能比表示时长的整型数稍多一点存储量。然而,这三类时变图的数据模型均只涉及到了图的顶点、边和它们的连接关系,而并未提到顶点和边上的属性,这只能算作拓扑随时间变化的图。[0077]另外,相关技术中可以将属性以键值对的形式放在顶点或边的存储结构中,例如,以arangodb的存储方式为例,顶点为城市,边是城市之间的铁路连接时,顶点数据中除了顶点中保留的“_id”,、“_key”,、“_rev”,还包括顶点属性“country”;边数据中除了边中保留的“_id”、“_key”、“_rev”、“_from”和“_to”,还包括边属性“travel_time”。然而,这种存储结构中顶点和边的属性是不变的,无法应用于属性是时变的情况。[0078]也就是说,上述三类时变图的数据模型仅适用于第一种应用场景和第二种应用场景,而并不适用于第三种应用场景和第四种应用场景。如果用上述三类时变图的数据模型来存储第三种应用场景和第四种应用场景对应的时变图,将导致后续根据存储的数据刻画出来的时变图的准确性较低。[0079]下面结合具体的实施例对本公开进行详细说明。[0080]在第一个实施例中,如图1所示,图1示出本公开实施例提供的一种时变图的存储方法的流程示意图,该方法可依赖于计算机程序实现,可运行于进行时变图的存储方法的装置上。该计算机程序可集成在应用中,也可作为独立的工具类应用运行。例如该方法可以运行在电子设备上。[0081]其中,该电子设备包括但不限于:可穿戴设备、手持设备、个人电脑、平板电脑、车载设备、智能手机、计算设备或连接到无线调制解调器的其它处理设备等。在不同的网络中电子设备可以叫做不同的名称,例如:用户设备、接入终端、用户单元、用户站、移动站、移动台、远方站、远程终端、移动设备、用户终端、终端、无线通信设备、用户代理或用户装置、蜂窝电话、无绳电话、个人数字处理(personaldigitalassistant,pda)、第五代移动通信技术(5thgenerationmobilenetworks,5g)网络或未来演进网络中的电子设备等。该电子设备上可以安装操作系统,该操作系统是指可以运行在电子设备中的操作系统,是管理和控制电子设备硬件和电子设备应用的程序,是电子设备中不可或缺的系统应用。该操作系统包括但不限于安卓android系统、ios系统、windowsphone(wp)系统和ubuntu移动版操作系统等。[0082]具体的,该时变图的存储方法包括:[0083]s101,获取时变图对应的图结构时变数据集合;[0084]根据一些实施例,图结构时变数据用于表示时变图中的信息随时间变化的数据。图结构时变数据集合指的是由至少一个图结构时变数据汇聚而成的一个集合。该图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合。[0085]在一些实施例中,图结构指的是时变图的拓扑结构。该图结构包括但不限于顶点和边。因此,图结构时变数据可以包括顶点时变数据和边时变数据。图结构时变数据集合可以包括顶点时变数据子集和边时变数据子集。顶点时变数据子集由至少一个顶点时变数据汇聚而成,边时变数据由至少一个边时变数据子集汇聚而成。[0086]在一些实施例中,图结构标识(identification,id)用于识别对应的图结构。不同的图结构对应的图结构id不同。例如,当图结构为顶点时,图结构id可以为顶点id;当图结构为边时,图结构id可以为边起始顶点id、边终止顶点id。[0087]在一些实施例中,图结构时变时标用于指示图结构发生变化时的时间段,该图结构时变时标包括图结构的开始时间和图结构的结束时间。例如,当图结构为顶点时,图结构时变时标可以包括顶点的开始时间和顶点的结束时间;当图结构为边时,图结构时变时标可以包括边的开始时间和边的结束时间。[0088]根据一些实施例,图结构属性时变数据集合指的是任一图结构时变数据对应的图结构在图结构的开始时间至图结构的结束时间的属性时变数据的集合。当图结构为顶点时,该图结构属性时变数据集合为顶点属性时变数据集合;当图结构为边时,该图结构属性时变数据集合为边属性时变数据集合。[0089]在一些实施例中,图结构属性时变数据集合中的任一图结构属性时变数据包括但不限于属性标识、属性时变时标和属性内容数据等,其中,属性时变时标包括属性的开始时间和属性的结束时间。属性标识包括但不限于属性名字、属性名称等。[0090]在一些实施例中,图结构属性时变数据集合并不需要包含所有属性的定义,而仅包括变化的属性或增量即时变属性对应的属性时变数据即可。并且,对于后续未发生变化的属性,可以进行标记删除处理。因此,可以高效地存储和处理属性值。[0091]易于理解的是,当电子设备执行时变图的存储方法时,电子设备可以获取时变图对应的图结构时变数据集合。[0092]s102,存储图结构时变数据集合。[0093]易于理解的是,当电子设备获取到时变图对应的图结构时变数据集合时,电子设备可以存储该图结构时变数据集合。[0094]综上,本公开实施例提供的方法,通过获取时变图对应的图结构时变数据集合;存储图结构时变数据集合。因此,在存储时变图时,不仅存储了连接拓扑的变化即图结构时变数据,还存储了图结构对应的属性的变化,从而可以根据该存储的数据准确的刻画出时变图,可以提高时变图刻画的准确性。[0095]请参见图2,图2示出本公开实施例提供的一种时变图的存储方法的流程示意图。具体的,该时变图的存储方法包括:[0096]s201,获取时变图,并控制转换模型将时变图转换为图结构时变数据集合;[0097]根据一些实施例,转换(transformer)模型是一个基于自注意力机制的深度学习模型,其可以用于在图结构时变数据集合与时变图转之间进行转换。其中,该时变图包括但不限于dltg、iltg、sbtg等。[0098]在一些实施例中,当控制转换模型将时变图转换为图结构时变数据集合后,根据数据类型,可以将图结构时变数据集合中的顶点时变数据汇聚至一个集合中,即顶点时变数据子集,也可以称为顶点集合(vertexevents);可以将图结构时变数据集合中的边时变数据汇聚至一个集合中,即边时变数据子集,也可以称为边集合(edgeevents)。[0099]根据一些实施例,表(1)示出本公开实施例提供的一种顶点集合的数据结构示意图。[0100][0101]表(1)[0102]如表(1)所示,顶点集合可以表示为键值对{key:value}的集合::[{k1:v1}{k2:v2}…{kn:vn}],每个顶点的键值对数据结构中,顶点key包括该顶点对应的顶点id、顶点的开始时间和顶点的结束时间,顶点value则是该顶点对应的顶点属性时变数据集合。[0103]在一些实施例中,如表(1)所示,每个顶点属性时变数据集合也可以表示为键值对{key:value}的集合,其中,每个属性的键值对数据结构中,属性key包括该属性的属性名字、属性的开始时间和属性的结束时间,属性value则是该属性的属性内容数据。[0104]根据一些实施例,表(2)示出本公开实施例提供的一种边集合的数据结构示意图。[0105][0106]表(2)[0107]如表(2)所示,边集合也可以表示为键值对{key:value}的集合,每条边的键值对数据结构中,边key包括该边对应的起始边id(即边起始顶点id)、终止边id(即边终止顶点id)、边的开始时间和边的结束时间,边value则是该边对应的边属性时变数据集合。[0108]在一些实施例中,如表(2)所示,与顶点属性时变数据集合同理,每个边属性时变数据集合也可以表示为键值对{key:value}的集合,其中,每个属性的键值对数据结构中,属性key包括该属性的属性名称、属性的开始时间和属性的结束时间,属性value则是该属性的属性内容数据。[0109]易于理解的是,图3示出本公开实施例提供的一种时变图的存储系统的架构示意图,该时变图的存储系统可以运行于电子设备上,可以执行时变图的存储方法。如图3所示,当电子设备控制该时变图的存储系统执行时变图的存储方法时,电子设备可以控制该时变图的存储系统获取dltg、iltg、sbtg等时变图,并控制该时变图的存储系统中的转换(transformer)模型将时变图转换为顶点集合(vertexevents)和边集合(edgeevents)。[0110]s202,控制编码器将图结构时变数据集合编码为合并树结构数据;[0111]根据一些实施例,合并树结构(log-structuredmerge-tree,ltmtree)是一种基于硬盘的数据结构,其被广泛用于各种数据存储系统,例如,rocksdb、influxdb、leveldb、bigtable、hbase等等。[0112]在一些实施例中,合并树结构数据指的是将图结构时变数据集合的数据结构编码为合并树结构后形成的数据。合并树结构数据包括顶点合并树结构数据和边合并树结构数据。[0113]根据一些实施例,控制编码器将图结构时变数据集合编码为合并树结构数据时,可以创造顶点合并树结构,将顶点时变数据子集添加至顶点合并树结构,得到顶点合并树结构数据;创造边合并树结构,将边时变数据子集添加至边合并树结构,得到边合并树结构数据。因此,可以提高合并树结构数据获取的准确性以及获取的效率。[0114]在一些实施例中,顶点合并树结构指的是顶点时变数据子集对应的合并树结构。顶点合并树结构数据值的是将顶点时变数据子集的数据结构编码为合并树结构后形成的数据。[0115]在一些实施例中,边合并树结构指的是边时变数据子集对应的合并树结构。边合并树结构数据值的是将边时变数据子集的数据结构编码为合并树结构后形成的数据。[0116]根据一些实施例,编码器(encoder)指的是将信号(如比特流)或数据进行编制、转换为可用以通讯、传输和存储的信号形式的设备。本公开实施例中,encoder用于对数据进行编制、转换为适合在ltmtree中存储的key-value结构。[0117]在一些实施例中,控制编码器将图结构时变数据集合编码为合并树结构数据时,首先,可以创造图结构合并树结构;将任一图结构时变数据中的图结构标识和图结构时变时标合并为图结构键数据。接着,可以创造图结构属性合并树结构,将任一图结构时变数据中的图结构属性时变数据集合添加至图结构属性合并树结构,得到图结构值数据。最后,可以将图结构键数据和图结构值数据插入至图结构合并树结构,得到合并树结构数据。因此,可以将图结构的属性随时间的变化数据存储至图结构合并树结构中,可以提高时变图刻画的准确性。[0118]在一些实施例中,图结构属性合并树结构指的是图结构属性时变数据集合对应的合并树结构。[0119]根据一些实施例,将任一图结构时变数据中的图结构属性时变数据集合添加至图结构属性合并树结构时,首先,可以将目标图结构属性时变数据中的属性标识和属性时变时标合并为图结构属性键数据。接着,可以将目标图结构属性时变数据中的属性内容数据作为图结构属性值数据。最后,可以将图结构属性键数据和图结构属性值数据插入至图结构属性合并树结构。因此,可以提高图结构属性时变数据集合添加的效率。[0120]在一些实施例中,目标图结构属性时变数据为任一图结构时变数据中的图结构属性时变数据集合中的任一图结构属性时变数据。[0121]以一个场景举例,图4示出本公开实施例提供的一种编码器的工作流程图。如图4所示,首先,电子设备可以控制编码器创建顶点集合的ltmtree,即顶点合并树结构。接着,可以按照时间先后顺序,依次加入每一个顶点的key-value结构,直至所有顶点添加完成。其次,创建边集合的ltmtree,即边合并树结构。接着,可以按照时间先后顺序,依次加入每一条边的key-value结构,直至所有边添加完成,得到合并树结构数据。[0122]在一些实施例中,如图4所示,加入一个顶点的key-value结构时,首先,可以合并顶点id、有效开始时间(顶点的开始时间)和有效结束时间(顶点的结束时间)为key。接着,创建该顶点属性集合(该顶点对应的顶点属性时变数据集合)的ltmtree,并按照时间先后顺序,依次加入每一个属性的key-value结构,直至所有属性添加完成。最后,设置指向属性集合(顶点属性时变数据集合)的指针作为顶点value,并将该key-value对插入顶点ltmtree。[0123]在一些实施例中,如图4所示,加入一条边的key-value结构时,首先,可以合并边起始顶点id、边终止顶点id、有效开始时间(边的开始时间)和有效结束时间(边的结束时间)为key。接着,创建该边属性集合(该边对应的边属性时变数据集合)的ltmtree,并按照时间先后顺序,依次加入每一个属性的key-value结构,直至所有属性添加完成。最后,设置指向属性集合(边属性时变数据集合)的指针作为边value,并将该key-value对插入边ltmtree。[0124]在一些实施例中,如图4所示,在加入一个顶点的key-value结构或加入一条边的key-value结构的过程中,加入一个属性的key-value结构时,首先,可以合并属性名称、有效开始时间(属性的开始时间)和有效结束时间(属性的结束时间)为key。接着,提取属性的value,即属性内容数据。最后,将该key-value对插入属性ltmtree。[0125]易于理解的是,如图3所示,当电子设备控制时变图的存储系统中的转换(transformer)模型将时变图转换为顶点集合(vertexevents)和边集合(edgeevents)时,可以控制encoder将顶点集合(vertexevents)和边集合(edgeevents)编码为ltmtree数据。[0126]s203,将合并树结构数据对应的写入记录存储至预写日志,并将合并树结构数据写入至内存表;[0127]根据一些实施例,预写日志(writeaheadlog,wal)用于保证数据操作的原子性和持久性。如果使用了wal,电子设备就可以检查日志文件,并对突然掉电时计划执行的操作内容跟实际上执行的操作内容进行比较。在这个比较的基础上,电子设备就可以决定是撤销已做的操作还是继续完成已做的操作,或者是保持原样。[0128]在一些实施例中,内存表(memtable)是一种在内存中保存数据的数据结构,一旦内存表存满数据,则memtable中的数据,即不可变的内存表(immutablememtable)会刷新(flush)或文件合并(minorcompact)至有序字符串表(sortedstringtable,sstable)。memtable既可以支持读服务也可以支持写服务。[0129]在一些实施例中,sstable用于数据文件的存储,是一个种高效的key-value型文件存储格式。同理,当一个sstable存储满时,将创建一个新的sstable来存储数据。[0130]易于理解的是,如图3所示,当电子设备控制encoder将顶点集合(vertexevents)和边集合(edgeevents)编码为ltmtree数据时,电子设备可以先写一条记录至wal中,然后将ltmtree数据写入内存中的memtable中,以完成写入操作。[0131]s204,在接收到针对时变图的数据检索指令的情况下,在有序字符串表中查询数据检索指令对应的目标合并树结构数据;[0132]根据一些实施例,在有序字符串表中查询数据检索指令对应的数据时,可以按照由新到老的时间顺序查找sstable,直至在某个(或某些个)sstable中查找到了所需的数据。如果在最老的sstable查找完也没有找到需要的数据,则返回查询失败信息。[0133]在一些实施例中,由新到老的时间顺序查找sstable时,具体查找顺序可以为:首先,在内存memtable中查找。其次,在内存中的immutablememtable中查找。然后,在level0sstable中查找。最后,在levelnsstable中查找。[0134]根据一些实施例,目标合并树结构数据指的是数据检索指令指示的需要检索的合并树结构数据。[0135]s205,控制解码器对目标合并树结构数据进行解码,得到数据检索指令对应的目标图结构时变数据集合。[0136]根据一些实施例,解码器(decoder)用于将数据解码为编码器编码前的数据格式的数据。在本公开实施例中,decoder用于将适合在ltmtree中存储的key-value结构的数据解码为顶点集合(vertexevents)和边集合(edgeevents)的数据结构。[0137]在一些实施例中,目标图结构时变数据集合指的是目标合并树结构数据对应的图结构时变数据集合。[0138]易于理解的是,如图3所示,当电子设备控制decoder对合并树结构数据进行解码,得到数据检索指令对应的vertexevents和edgeevents时,电子设备可以控制transformer模型将vertexevents和edgeevents转换为时变图,以完成时变图的刻画。因此,通过在常规静态图的顶点和边结构中都单独增加时标属性,并与其他的属性对区分开来,加之编解码的设计,既能准确刻画时变图,还可以体现顶点和边的属性随时间的变化。[0139]综上,本公开实施例提供的方法,首先,通过获取时变图,并控制转换模型将时变图转换为图结构时变数据集合和图结构时变数据集合对应的属性时变数据集合;因此,可以提高图结构时变数据集合和属性时变数据集合获取的准确性。接着,通过控制编码器将图结构时变数据集合和属性时变数据集合编码为合并树结构数据;将合并树结构数据对应的写入记录存储至预写日志,并将合并树结构数据写入至内存表;因此,在存储时变图时,不仅存储了连接拓扑的变化即图结构时变数据,还存储了图结构对应的属性的变化,从而可以根据该存储的数据准确的刻画出时变图,可以提高时变图刻画的准确性。最后,在接收到针对时变图的数据检索指令的情况下,在有序字符串表中查询数据检索指令对应的合并树结构数据;控制解码器对合并树结构数据进行解码,得到数据检索指令对应的图结构时变数据集合和属性时变数据集合;因此,可以实在在本公开实施例提供的存储方法下的图检索,并且检索效率较高。[0140]本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。[0141]下述为本公开装置实施例,可以用于执行本公开方法实施例。对于本公开装置实施例中未披露的细节,请参照本公开方法实施例。[0142]请参见图5,其示出本公开实施例提供的一种时变图的存储装置的结构示意图。该时变图的存储装置可以通过软件、硬件或者两者的结合实现成为装置的全部或一部分。该时变图的存储装置500包括集合获取单元501和集合存储单元502,其中:[0143]集合获取单元501,用于获取时变图对应的图结构时变数据集合,其中,图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;[0144]集合存储单元502,用于存储图结构时变数据集合。[0145]可选的,集合存储单元502用于存储图结构时变数据集合时,具体用于:[0146]控制编码器将图结构时变数据集合编码为合并树结构数据;[0147]将合并树结构数据对应的写入记录存储至预写日志,并将合并树结构数据写入至内存表。[0148]可选的,集合存储单元502用于控制编码器将图结构时变数据集合编码为合并树结构数据时,具体用于:[0149]创造图结构合并树结构;[0150]将任一图结构时变数据中的图结构标识和图结构时变时标合并为图结构键数据;[0151]创造图结构属性合并树结构,将任一图结构时变数据中的图结构属性时变数据集合添加至图结构属性合并树结构,得到图结构值数据;[0152]将图结构键数据和图结构值数据插入至图结构合并树结构,得到合并树结构数据。[0153]可选的,集合存储单元502用于将任一图结构时变数据中的图结构属性时变数据集合添加至图结构属性合并树结构时,具体用于:[0154]将目标图结构属性时变数据中的属性标识和属性时变时标合并为图结构属性键数据,其中,目标图结构属性时变数据为任一图结构时变数据中的图结构属性时变数据集合中的任一图结构属性时变数据;[0155]将目标图结构属性时变数据中的属性内容数据作为图结构属性值数据;[0156]将图结构属性键数据和图结构属性值数据插入至图结构属性合并树结构。[0157]可选的,图结构包括边和顶点,图结构时变数据集合包括顶点时变数据子集和边时变数据子集,集合存储单元502用于控制编码器将图结构时变数据集合编码为合并树结构数据时,具体用于:[0158]创造顶点合并树结构,将顶点时变数据子集添加至顶点合并树结构,得到顶点合并树结构数据;[0159]创造边合并树结构,将边时变数据子集添加至边合并树结构,得到边合并树结构数据。[0160]可选的,该时变图的存储装置500还包括数据检索单元503,用于在将合并树结构数据写入至内存表之后,具体用于:[0161]在接收到针对时变图的数据检索指令的情况下,在有序字符串表中查询数据检索指令对应的目标合并树结构数据;[0162]控制解码器对目标合并树结构数据进行解码,得到数据检索指令对应的目标图结构时变数据集合。[0163]可选的,集合获取单元501用于获取时变图对应的图结构时变数据集合时,具体用于:[0164]获取时变图,并控制转换模型将时变图转换为图结构时变数据集合。[0165]需要说明的是:如图5所示,该时变图的存储装置500中一定包括的模块用实线框示意,如集合获取单元501和集合存储单元502;该时变图的存储装置500中可以包括也可以不包括的模块用虚线框示意,如数据检索单元503。[0166]需要说明的是,上述实施例提供的时变图的存储装置在执行时变图的存储方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的时变图的存储装置与时变图的存储方法实施例属于同一构思,其体现实现过程详见方法实施例,这里不再赘述。[0167]综上,本公开实施例提供的装置,通过集合获取单元获取时变图对应的图结构时变数据集合,其中,图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;集合存储单元存储图结构时变数据集合。因此,在存储时变图时,不仅存储了连接拓扑的变化即图结构时变数据,还存储了图结构对应的属性的变化,从而可以根据该存储的数据准确的刻画出时变图,可以提高时变图刻画的准确性。[0168]本公开的技术方案中,所涉及的用户个人信息的收集、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。[0169]根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。[0170]图6示出了可以用来实施本公开的实施例的示例电子设备600的示意性框图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。[0171]如图6所示,电子设备600包括计算单元601,其可以根据存储在只读存储器(rom)602中的计算机程序或者从存储单元608加载到随机访问存储器(ram)603中的计算机程序,来执行各种适当的动作和处理。在ram603中,还可存储电子设备600操作所需的各种程序和数据。计算单元601、rom602以及ram603通过总线604彼此相连。输入/输出(i/o)接口605也连接至总线604。[0172]电子设备600中的多个部件连接至i/o接口605,包括:输入单元606,例如键盘、鼠标等;输出单元607,例如各种类型的显示器、扬声器等;存储单元608,例如磁盘、光盘等;以及通信单元609,例如网卡、调制解调器、无线通信收发机等。通信单元609允许电子设备600通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。[0173]计算单元601可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元601的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元601执行上文所描述的各个方法和处理,例如时变图的存储方法。例如,在一些实施例中,时变图的存储方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元608。在一些实施例中,计算机程序的部分或者全部可以经由rom602和/或通信单元609而被载入和/或安装到电子设备600上。当计算机程序加载到ram603并由计算单元601执行时,可以执行上文描述的时变图的存储方法的一个或多个步骤。备选地,在其他实施例中,计算单元601可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行时变图的存储方法。[0174]本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。[0175]用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。[0176]在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。[0177]为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。[0178]可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)、互联网和区块链网络。[0179]计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与vps服务("virtualprivateserver",或简称"vps")中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。[0180]应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。[0181]上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。当前第1页12当前第1页12
技术特征:
1.一种时变图的存储方法,其特征在于,包括:获取时变图对应的图结构时变数据集合,其中,所述图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,所述图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;存储所述图结构时变数据集合。2.根据权利要求1所述的方法,其特征在于,所述存储所述图结构时变数据集合,包括:控制编码器将所述图结构时变数据集合编码为合并树结构数据;将所述合并树结构数据对应的写入记录存储至预写日志,并将所述合并树结构数据写入至内存表。3.根据权利要求2所述的方法,其特征在于,所述控制编码器将所述图结构时变数据集合编码为合并树结构数据,包括:创造图结构合并树结构;将所述任一图结构时变数据中的图结构标识和图结构时变时标合并为图结构键数据;创造图结构属性合并树结构,将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构,得到图结构值数据;将所述图结构键数据和所述图结构值数据插入至所述图结构合并树结构,得到合并树结构数据。4.根据权利要求3所述的方法,其特征在于,所述将所述任一图结构时变数据中的图结构属性时变数据集合添加至所述图结构属性合并树结构,包括:将目标图结构属性时变数据中的所述属性标识和所述属性时变时标合并为图结构属性键数据,其中,所述目标图结构属性时变数据为所述任一图结构时变数据中的图结构属性时变数据集合中的任一图结构属性时变数据;将所述目标图结构属性时变数据中的所述属性内容数据作为图结构属性值数据;将所述图结构属性键数据和所述图结构属性值数据插入至所述图结构属性合并树结构。5.根据权利要求2所述的方法,其特征在于,图结构包括边和顶点,所述图结构时变数据集合包括顶点时变数据子集和边时变数据子集,所述控制编码器将所述图结构时变数据集合编码为合并树结构数据,包括:创造顶点合并树结构,将所述顶点时变数据子集添加至所述顶点合并树结构,得到顶点合并树结构数据;创造边合并树结构,将所述边时变数据子集添加至所述边合并树结构,得到边合并树结构数据。6.根据权利要求2所述的方法,其特征在于,在所述将所述合并树结构数据写入至内存表之后,还包括:在接收到针对所述时变图的数据检索指令的情况下,在有序字符串表中查询所述数据检索指令对应的目标合并树结构数据;控制解码器对所述目标合并树结构数据进行解码,得到所述数据检索指令对应的目标图结构时变数据集合。
7.根据权利要求1所述的方法,其特征在于,所述获取时变图对应的图结构时变数据集合,包括:获取时变图,并控制转换模型将所述时变图转换为图结构时变数据集合。8.一种时变图的存储装置,其特征在于,包括:集合获取单元,用于获取时变图对应的图结构时变数据集合,其中,所述图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,所述图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;集合存储单元,用于存储所述图结构时变数据集合。9.一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-7中任一项所述的方法。10.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行权利要求1-7中任一项所述的方法。11.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现权利要求1-7中任一项所述的方法。
技术总结
本公开涉及计算机技术领域,尤其涉及一种时变图的存储方法、装置、电子设备和存储介质。其中,该时变图的存储方法,包括:获取时变图对应的图结构时变数据集合,其中,图结构时变数据集合中的任一图结构时变数据包括图结构标识、图结构时变时标和图结构属性时变数据集合,图结构属性时变数据集合中的任一图结构属性时变数据包括属性标识、属性时变时标和属性内容数据;存储图结构时变数据集合。采用本公开可以提高时变图刻画的准确性。开可以提高时变图刻画的准确性。开可以提高时变图刻画的准确性。
技术研发人员:张毅
受保护的技术使用者:建信金融科技有限责任公司
技术研发日:2023.06.25
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种提高海藻糖转化率的方法 下一篇:有机发光显示面板及有机发光显示装置的制作方法