本说明书一个或多个实施例涉及图数据处理,尤其涉及一种图数据的存储、读取方法及装置。
背景技术:
1、在图数据处理中,通常需要对图数据进行序列化(也称编码)和反序列化(解码)处理。其中,序列化是指将原始数据按照一定的编码规范转换成指定格式(比如,二进制的字节流)的过程,反序列化是指将指定格式的数据解析成原始数据的过程。这里的图数据例如可以为隐私数据。
2、目前,一种常用的序列化技术是基于谷歌公司提出的protobuf协议的序列化,然而,在利用该种序列化方式处理大规模的图数据时,其处理速度比较缓慢,这会影响图数据的存储和读取效率。因此,需要提供一种更有效的图数据存储和读取方案。
技术实现思路
1、本说明书一个或多个实施例描述了一种图数据的存储、读取方法及装置,可以大大提升图数据的存储和读取效率。
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、本说明书一个或多个实施例提供的图数据的存储方法,基于图模式,直接将待存储的目标图数据转换成符合目标协议的编码,之后将该编码写入到目标存储系统中,可以避免对目标图数据进行冗余计算,这可以提升图数据的存储效率。此外,本方案针对每个生效属性,从预计算的字段编号表中查询对应的字段编号,可以避免针对同一属性需要多次计算字段编号,进而浪费计算资源的问题。
1.一种图数据的存储方法,包括:
2.根据权利要求1所述的方法,其中,所述字段编号表用于记录针对所述目标类型的图形元素所枚举的多个属性各自的字段编号,所述多个属性中任意的第一属性的第一字段编号通过以下步骤预计算得到:
3.根据权利要求2所述的方法,其中,所述目标图模式还定义,所述多个生效属性的数据类型及属性id;
4.根据权利要求1所述的方法,其中,所述得到所述目标属性对应的编码片段,包括:
5.根据权利要求1所述的方法,其中,所述目标图模式,还定义所述多个生效属性的数据类型、属性id以及属性值的约束条件;
6.根据权利要求1所述的方法,其中,所述多个生效属性是按序排列的;
7.根据权利要求1所述的方法,其中,所述目标协议为protobuf协议。
8.一种图数据的读取方法,包括:
9.根据权利要求8所述的方法,其中,所述读取对应的编码片段并解码,包括:
10.根据权利要求8所述的方法,还包括:
11.一种图数据的存储装置,包括:
12.一种图数据的读取装置,包括:
13.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-10中任一项所述的方法。
14.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-10中任一项所述的方法。
