结构体数据存储方法、装置、设备及存储介质制造方法及图纸

技术编号:22295425 阅读:53 留言:0更新日期:2019-10-15 04:35
本发明专利技术提供一种结构体数据存储方法、装置、设备及存储介质,该方法包括:获取结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型;根据多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储。不仅实现了对结构体数据的复合存储,而且节约了大量的存储空间。

Structural Data Storage Method, Device, Equipment and Storage Media

【技术实现步骤摘要】
结构体数据存储方法、装置、设备及存储介质
本专利技术涉及数据存储
,尤其涉及一种结构体数据存储方法、装置、设备及存储介质。
技术介绍
列式存储格式与传统的行式存储将一行数据连续存放不同,列式存储格式将数据文件中某一列的部分数据值(或所有数据值)序列化在一起连续存储,然后再存储另一列的部分数据值(或所有数据值),数据尾部会写有该数据文件的存储格式描述信息,包括有文件的元数据信息、列的个数、相对位置、数据类型信息或统计信息等。针对包括多个成员,且每个成员的数据类型也可能不同的数据组,例如结构体类型的数据,现有技术在列式存储系统中,针对结构体类型的数据,通常是把结构体类型的数据中每列数据单独存储为一个单元,相互独立;在读取数据时,如果需要按照数据组进行读取,需要将每列数据单独读出来,然后进行组装。然而现有技术中,通过对结构体类型的数据中每列数据单独存储,浪费存储空间。
技术实现思路
本专利技术提供一种结构体数据存储方法、装置、设备及存储介质,以实现对结构体数据的复合存储,节约了大量的存储空间。第一方面,本申请实施例提供一种结构体数据存储方法,包括:获取结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型;根据多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储。本申请实施例中,通过根据结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储,不仅实现了对结构体数据的复合存储,而且节约了大量的存储空间。可选的,根据多列原始数据以及多列原始数据各自对应的数据类型,结构体数据进行复合存储,包括:生成复合存储结构的标头部分、标签部分和数据部分,标头部分包括多列原始数据的列数;标签部分包括多列原始数据各自对应的数据类型标识,以及每列原始数据的存储位置相对于标头部分的偏移量;数据部分包括多列原始数据。本申请实施例中,首先通过多列原始数据的列数生成复合存储结构的标头部分,便于对结构体数据的保存列数的查询;然后通过多列原始数据各自对应的数据类型标识以及每列原始数据的存储位置相对于标头部分的偏移量生成标签部分,实现了对每类原始数据的地址的查询;最后通过多列原始数据生成数据部分,实现了对多列原始数据的保存,进而实现了对结构体数据的复合存储。可选的,根据多列原始数据以及多列原始数据各自对应的数据类型,多结构体数据进行复合存储之前,还包括:对多列原始数据进行压缩,得到压缩后的多列原始数据;相应的,数据部分包括压缩后的多列原始数据。本申请实施例中,通过对多列原始数据进行压缩,并通过压缩后的多列原数据生成数据部分,节约了大量的存储空间。可选的,对多列原始数据进行压缩,得到压缩后的多列原始数据,包括:根据多列原始数据各自对应的数据类型,确定每列原始数据各自对应的存储模式类型;根据每列原始数据各自对应的存储模式类型,分别对每列原始数据进行模式存储,得到压缩后的多列原始数据。本申请实施例中,通过根据每列原始数据各自对应的存储模式类型,分别对每列原始数据进行模式存储,不仅节约了存储空间,且可以实现在不解压的情况下对结构体数据的查询。可选的,根据多列原始数据各自对应的数据类型,确定每列原始数据各自对应的存储模式类型,包括:在多列原始数据各自对应的数据类型中,确定不同数据类型的数据在不同的存储模式类型下的压缩比例;针对任一数据类型,确定该数据类型的目标存储模式类型,目标存储模式类型为该数据类型的数据在不同的存储模式类型下压缩比例最高的存储模式类型。本申请实施例中,通过根据数据类型,确定目标存储模式类型,且目标存储模式类型为该数据类型的数据在不同的存储模式类型下压缩比例最高的存储模式类型,进一步节约了结构体数据进行复合存储的存储空间。下面是本申请实施例提供的结构体数据存储装置、设备、存储介质以及计算机程序产品,其内容和效果可参考第一方面及第一方面可选方式提供的结构体数据存储方法,不再赘述。第二方面,本申请实施例提供一种结构体数据存储装置,包括:获取模块,用于获取结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型;存储模块,用于根据多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储。可选的,存储模块,具体用于:生成复合存储结构的标头部分、标签部分和数据部分,标头部分包括多列原始数据的列数;标签部分包括多列原始数据各自对应的数据类型标识,以及每列原始数据的存储位置相对于标头部分的偏移量;数据部分包括多列原始数据。可选的,本申请实施例提供的结构体数据存储装置,还包括:压缩模块,用于对多列原始数据进行压缩,得到压缩后的多列原始数据;相应的,数据部分包括压缩后的多列原始数据。可选的,压缩模块,包括:确定子模块,用于根据多列原始数据各自对应的数据类型,确定每列原始数据各自对应的存储模式类型;存储子模块,用于根据每列原始数据各自对应的存储模式类型,分别对每列原始数据进行模式存储,得到压缩后的多列原始数据。可选的,确定子模块,具体用于:在多列原始数据各自对应的数据类型中,确定不同数据类型的数据在不同的存储模式类型下的压缩比例;针对任一数据类型,确定该数据类型的目标存储模式类型,目标存储模式类型为该数据类型的数据在不同的存储模式类型下压缩比例最高的存储模式类型。第三方面,本专利技术实施例提供一种服务器,包括:处理器;存储器;以及计算机程序;其中,计算机程序被存储在存储器中,并且被配置为由处理器执行,计算机程序包括用于执行如第一方面及第一方面可选方式的结构体数据存储方法的指令。第四方面,本专利技术实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序使得服务器执行第一方面及第一方面可选方式的结构体数据存储方法。第五方面,本专利技术实施例提供一种计算机程序产品,包括:可执行指令,可执行指令用于实现如第一方面或第一方面可选方式的结构体数据存储方法。本申请提供的结构体数据存储方法、装置、设备及存储介质,通过获取结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型;然后根据多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储。由于通过根据结构体数据中的多列原始数据以及多列原始数据各自对应的数据类型,对结构体数据进行复合存储,不仅实现了对结构体数据的复合存储,而且节约了大量的存储空间。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一示例性应用场景图;图2是本申请一实施例提供的结构体数据存储方法的流程示意图;图3是本申请一实施例提供的复合存储结构的示意图;图4是本申请另一实施例提供的结构体数据存储方法的流程示意图;图5是本申请又一实施例提供的结构体数据存储方法的流程示意图;图6是本申请一实施例提供的结构体数据存储装置的结构示意图;图7是本申请另一实施例提供的结构体数据存储装置的结构示意图;图8是本申请实施例提供的设备的结构示意图。具体实施方式为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实本文档来自技高网...

【技术保护点】
1.一种结构体数据存储方法,其特征在于,包括:获取所述结构体数据中的多列原始数据以及所述多列原始数据各自对应的数据类型;根据所述多列原始数据以及所述多列原始数据各自对应的数据类型,对所述结构体数据进行复合存储。

【技术特征摘要】
1.一种结构体数据存储方法,其特征在于,包括:获取所述结构体数据中的多列原始数据以及所述多列原始数据各自对应的数据类型;根据所述多列原始数据以及所述多列原始数据各自对应的数据类型,对所述结构体数据进行复合存储。2.根据权利要求1所述的方法,其特征在于,所述根据所述多列原始数据以及所述多列原始数据各自对应的数据类型,所述结构体数据进行复合存储,包括:生成复合存储结构的标头部分、标签部分和数据部分,所述标头部分包括所述多列原始数据的列数;所述标签部分包括所述多列原始数据各自对应的数据类型标识,以及每列原始数据的存储位置相对于所述标头部分的偏移量;所述数据部分包括所述多列原始数据。3.根据权利要求2所述的方法,其特征在于,所述根据所述多列原始数据以及所述多列原始数据各自对应的数据类型,对所述结构体数据进行复合存储之前,还包括:对所述多列原始数据进行压缩,得到压缩后的多列原始数据;相应的,所述数据部分包括所述压缩后的多列原始数据。4.根据权利要求3所述的方法,其特征在于,所述对所述多列原始数据进行压缩,得到压缩后的多列原始数据,包括:根据所述多列原始数据各自对应的数据类型,确定每列原始数据各自对应的存储模式类型;根据每列原始数据各自对应的存储模式类型,分别对每列原始数据进行模式存储,得到所述压缩后的多列原始数据。5.根据权利要求4所述的方法,其特征在于,所述根据所述多列原始数据各自对应的数据类型,确定每列原始数据各自对应的存储模式类型,包括:在所述多列原始数据各自对应的数据类型中,确定不同数据类型的数据在不同的存储模式类型下的压缩比例;针对任一数据类型,确定该数据类型的目标存储模式类型,所述目标存储模式类型为该数据类型的数据在不同的存储模式类型下压缩比例最高的存储模式类型。6.一种结构体数据存储装置,其特征在于,包括:获取模块,用于获取所述结...

【专利技术属性】
技术研发人员:杨瑞王华勇
申请(专利权)人:北京百度网讯科技有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1