一种提高数据存储与查询性能的方法和系统技术方案

技术编号:33776906 阅读:21 留言:0更新日期:2022-06-12 14:30
本发明专利技术提出了一种提高数据存储与查询性能的方法和系统,通过用户在建立数据表时,根据数据表存储的数据类型,或者数据表中的字段存储的数据类型,为数据表或者数据表中的字段设定压缩参数,通过压缩参数确定数据对应的压缩算法,以及压缩算法是否启用矢量指令集、启用何种矢量指令集进行优化,再对数据进行切分,对切分后的数据根据其类型以及所属的字段或数据表的压缩参数确定对应的压缩方法并进行压缩和存储。本发明专利技术实现了使用CPU内置的矢量指令集优化压缩算法,同时对单数据表中的数据采用多种压缩方式,对数据表中每个字段存储的数据使用更合适的压缩方法进行处理,提高了数据存储和读取的性能。数据存储和读取的性能。数据存储和读取的性能。

【技术实现步骤摘要】
一种提高数据存储与查询性能的方法和系统


[0001]本专利技术涉及数据存储与查询
,尤其涉及一种提高数据存储与查询性能的方法和系统。

技术介绍

[0002]信息化时代,随着数据量不断攀升,以某省电网数据为例,光计量数据每年达到500亿行,大规模的数据对于数据存储工作造成很大挑战,为解决大规模数据的存储问题,一般来讲,各数据库会将数据压缩后存储至硬盘上,但这种方法则面临着压缩效率和解压缩效率较低的问题。
[0003]另一方面,现有数据库面临着快速存储和查询性能跟不上实时分析的时间要求的问题,目前市面已有的数据库不能指定压缩方式,而是系统采用默认的压缩方式。有个别的实现了对于整张数据表指定压缩方式,但没有数据库实现每个字段不同的压缩方式。
[0004]因此,当前还没有一个普遍适用的方法,能够解决无法对数据表的不同字段实现高效压缩的问题。

技术实现思路

[0005]有鉴于此,本专利技术提出了一种提高数据存储与查询性能的方法,用于解决无法对数据表的不同字段实现高效压缩的问题。
[0006]本专利技术的技术方案是这样实现的:
[0007]本专利技术第一方面,公开一种提高数据存储与查询性能的方法,所述方法包括:
[0008]S1,用户建立数据表时设定压缩参数;
[0009]S2,使用CPU内置的矢量指令集优化压缩算法;
[0010]S3,将数据表中每个字段的数据切分为多个高维矢量,对不同字段使用不同的压缩算法进行压缩,得到压缩数据并存储。
[0011]本专利技术通过上述方法,使用CPU内置的矢量指令集优化压缩算法,同时对单数据表中的数据采用多种压缩方式,对数据表中每个字段存储的数据使用更合适的压缩方法进行处理,提高了数据存储和读取的性能。
[0012]在以上技术方案的基础上,优选的,步骤S1具体包括:
[0013]用户建立数据表时,为数据表或者数据表中的字段设定压缩参数,所述压缩参数内容包括:使用何种压缩算法,是否启用矢量指令集,以及启用何种指令集。
[0014]本专利技术通过上述方法,设定压缩参数用以对数据设置对应的优化压缩方法,简洁明了,易于操作。
[0015]在以上技术方案的基础上,优选的,压缩参数内容中,使用何种压缩算法具体包括:
[0016]用户建立数据表时,根据数据表存储的数据类型,或者数据表中的字段存储的数据类型,设定压缩参数中对应使用的压缩算法的类型,包括:ID类数据设为String类型对应
压缩算法为lz4压缩算法,时序数据对应的压缩算法为delta

of

delta压缩算法,状态数据对应的压缩算法为delta压缩算法,高频且无特殊规律的数据对应包括lzw和zstd的压缩算法。
[0017]本专利技术通过上述方法,对不同类型的数据使用不同的压缩方法,极大提高了数据的压缩效率,进而减少被压缩数据所需的存储空间。
[0018]在以上技术方案的基础上,优选的,步骤S2具体包括:
[0019]当所述数据表的压缩参数或者数据表中字段的压缩参数指定启用矢量指令集时,根据所述压缩参数确定要使用的压缩算法以及CPU内置的矢量指令集,并使用所述CPU内置的矢量指令集优化所述压缩算法。
[0020]在以上技术方案的基础上,优选的,使用所述CPU内置的矢量指令集优化所述压缩算法具体包括:
[0021]若压缩参数中确定要使用的lz4压缩算法,使用CPU内置的矢量指令集进行优化,所述矢量指令集包括:AVX256指令集,用于提升整体压缩速度以及查找性能;
[0022]若压缩参数中确定要使用的lzw和zstd压缩算法,使用CPU内置的矢量指令集进行优化,所述矢量指令集包括:SSE指令集、NEON指令集,用于提升整体压缩速度以及hash的查找性能。
[0023]本专利技术通过上述方法,使用压缩参数指定的矢量指令集优化指定压缩算法,达到较好的优化效果从而提升压缩性能。
[0024]在以上技术方案的基础上,优选的,步骤S3具体包括:
[0025]S3

1,判断切分的字段存储的数据类型是否为String类型,若是,则采用内存池与地址长度方式叠加该字段的压缩参数中指定的压缩算法进行压缩;若不是,则执行步骤S3

2;
[0026]S3

2,判断切分的字段是否设定有压缩参数,若是,则使用该字段的压缩参数中指定的压缩算法进行压缩;若不是,则执行步骤S3

3;
[0027]S3

3,判断切分的字段所属的数据表是否设定有压缩参数,若是,则使用该数据表的压缩参数中指定的压缩算法进行压缩;若不是,则使用预设压缩算法进行压缩。
[0028]本专利技术通过上述方法,确定数据对应的压缩参数,并根据压缩参数确定数据对应的压缩方式,以此提高数据的存储和读取效率。
[0029]在以上技术方案的基础上,优选的,步骤S3

3执行完后,还包括以下步骤:
[0030]对所述压缩数据,若在预设时间内对其无访问动作,将其写入硬盘;
[0031]用户进行查询时,根据所述压缩数据的压缩参数确定对应的压缩算法,并根据压缩算法进行解压,将解压数据存入内存缓存供用户使用。
[0032]本专利技术通过上述方法,实时存储压缩数据,在用户需要使用数据时,根据压缩参数确定解压方式并解压,提高了用户实时获取数据的效率。
[0033]本专利技术第二方面,公开一种提高数据存储与查询性能的系统,所述系统包括:
[0034]参数设置模块:用于用户建立数据表时,根据数据表存储的数据类型,或者数据表中的字段存储的数据类型,设定压缩参数,所述压缩参数内容包括:使用何种压缩算法,是否启用矢量指令集,以及启用何种指令集;
[0035]压缩算法优化模块:用于根据所述压缩参数,确定要使用的压缩算法以及CPU内置
的矢量指令集,并使用所述CPU内置的矢量指令集优化所述压缩算法;
[0036]数据处理模块:用于对数据表中每个字段的数据进行切分,得到多个高维矢量;使用数据对应的压缩算法对数据进行压缩处理,得到压缩数据并存储;根据所述压缩数据的压缩参数确定对应的压缩算法,并根据压缩算法进行解压,将解压数据存入内存缓存供用户使用。
[0037]本专利技术第三方面,公开一种电子设备,所述设备包括:至少一个处理器、至少一个存储器、通信接口和总线;其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的一种提高数据存储与查询性能的方法程序,一种提高数据存储与查询性能的方法程序配置为实现如本专利技术第一方面所述的一种提高数据存储与查询性能的方法。
[0038]本专利技术第四方面,公开一种计算机可读存储介质,所述存储介质上存储有一种提高数据存储与查询性能的方法程序,所述一种提高数据存储与查询性能的方法程序被执行时实现如本发本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种提高数据存储与查询性能的方法,其特征在于,所述一种提高数据存储与查询性能的方法包括以下步骤:S1,用户建立数据表时设定压缩参数;S2,使用CPU内置的矢量指令集优化压缩算法;S3,将数据表中每个字段的数据切分为多个高维矢量,对不同字段使用不同的压缩算法进行压缩,得到压缩数据并存储。2.如权利要求1所述的一种提高数据存储与查询性能的方法,其特征在于,所述步骤S1具体包括:用户建立数据表时,为数据表或者数据表中的字段设定压缩参数,所述压缩参数内容包括:使用何种压缩算法,是否启用矢量指令集,以及启用何种指令集。3.如权利要求2所述的一种提高数据存储与查询性能的方法,其特征在于,所述压缩参数内容中,使用何种压缩算法具体包括:用户建立数据表时,根据数据表存储的数据类型,或者数据表中的字段存储的数据类型,设定压缩参数中对应使用的压缩算法的类型,包括:ID类数据设为String类型对应压缩算法为lz4压缩算法,时序数据对应的压缩算法为delta

of

delta压缩算法,状态数据对应的压缩算法为delta压缩算法,高频且无特殊规律的数据对应包括lzw和zstd的压缩算法。4.如权利要求2所述的一种提高数据存储与查询性能的方法,其特征在于,所述步骤S2具体包括:当所述数据表的压缩参数或者数据表中字段的压缩参数指定启用矢量指令集时,根据所述压缩参数确定要使用的压缩算法以及CPU内置的矢量指令集,并使用所述CPU内置的矢量指令集优化所述压缩算法。5.如权利要求4所述的一种提高数据存储与查询性能的方法,其特征在于,所述使用所述CPU内置的矢量指令集优化所述压缩算法具体包括:若压缩参数中确定要使用的lz4压缩算法,使用CPU内置的矢量指令集进行优化,所述矢量指令集包括:AVX256指令集,用于提升整体压缩速度以及查找性能;若压缩参数中确定要使用的lzw和zstd压缩算法,使用CPU内置的矢量指令集进行优化,所述矢量指令集包括:SSE指令集、NEON指令集,用于提升整体压缩速度以及hash的查找性能。6.如权利要求3所述的一种提高数据存储与查询性能的方法,其特征在于,所述步骤S3具体包括:S3

1,判断切分的字段存储的数据类型是否为String类型,若是,则采用内存池与地址长...

【专利技术属性】
技术研发人员:褚红亮方铭刘显明余腾龙彭谦黄康
申请(专利权)人:国网江西省电力有限公司国家电网有限公司
类型:发明
国别省市:

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

1