本申请涉及数据压缩领域,尤其涉及一种数据压缩方法、装置、计算设备及存储系统。
背景技术:
1、随着云计算和大数据产业的繁荣,数据中心规模越大,则数据中心存储的数据也越多,更大的数据量和更长的存储周期意味着更高的存储成本。目前,计算设备可以利用压缩算法(如:lz4、lzo或snappy等)对待存储数据进行压缩后再存储,从而降低待存储数据的数据量,节省相应的硬盘、节点、机架、场地和运维开销等。在计算设备中,当用户设置好压缩算法后,所有的数据都基于所设置的压缩算法进行数据压缩,导致数据的压缩率比较低。
技术实现思路
1、本申请提供了数据压缩方法、装置、计算设备及存储系统,由此来提高数据的压缩率。
2、第一方面,提供了一种数据压缩方法,该方法可以由计算设备执行,具体包括如下步骤:计算设备对待压缩数据进行压缩时,根据影响待压缩数据的压缩结果的参数确定待压缩数据的压缩特征值,根据压缩特征值确定压缩待压缩数据的压缩策略,根据压缩策略对待压缩数据进行压缩得到压缩后数据,并存储压缩后数据。
3、如此,相对于计算设备采用一种压缩算法对不同特征的数据进行压缩,本申请提供的数据压缩方法中计算设备使用的压缩策略是依据影响待压缩数据的压缩结果的特征选取得到,利用匹配待压缩数据的特征的压缩策略对待压缩数据进行压缩,能够有效地提高数据的压缩率。
4、在一种可能的实现方式中,参数包括对待压缩数据进行压缩时所用到的硬件资源的参数及/或描述待压缩数据的数据特征的参数。数据特征的参数包含数据类型、数据块大小和待压缩数据包含的字符的分布中至少一种。硬件资源的参数包含计算设备的处理器的占用率、将压缩后数据存储至存储设备时,计算设备与存储设备之间的网络带宽和存储设备的可用存储容量中的至少一种。
5、在另一种可能的实现方式中,计算设备存储有多个压缩特征值与压缩策略的对应关系。根据压缩特征值确定压缩待压缩数据的压缩策略,包括:计算设备确定待压缩数据的压缩特征值对应的对应关系中的压缩特征值;根据对应关系所确定的压缩特征值确定压缩特征值对应的压缩策略为压缩待压缩数据的压缩策略。从而,通过预先设置多个压缩特征值与压缩策略的对应关系,使计算设备实时对待压缩数据进行压缩时快速准确地选取匹配待压缩数据的特征的压缩策略。
6、其中,多个压缩特征值与压缩策略的对应关系可以是依据神经网络训练得到的。
7、在另一种可能的实现方式中,压缩策略中包括多个压缩窗口;根据压缩策略对待压缩数据进行压缩包括:计算设备根据多个压缩窗口分别对待压缩数据进行压缩,以得到多个压缩后数据;比较多个压缩后数据的压缩率,选择压缩率最高的压缩后数据作为压缩后数据。可理解的,压缩窗口是指搜索待压缩数据中相同字符串的范围,通过多个不同的压缩窗口对待压缩数据中的相同字符串进行搜索,搜索到的相同字符串的长度可能不同,因此可能得到不同压缩率的压缩后数据。从而,利用多级弹性压缩窗口对待压缩数据进行压缩,获得压缩率尽可能高的压缩后数据。
8、在另一种可能的实现方式中,在得到压缩后数据后,方法还包括:计算设备确定压缩数据时所采用的压缩策略的压缩率;根据压缩率调节对应关系中的压缩特征值和压缩策略的参数。从而,通过更新对应关系中的压缩策略,提升对应关系的准确性,使得计算设备获取更佳匹配待压缩数据的特征的压缩策略,提高数据的压缩率。
9、第二方面,提供了一种数据压缩装置,所述装置包括用于执行第一方面或第一方面任一种可能设计中的数据压缩方法的各个模块。
10、第三方面,提供一种计算设备,该计算设备包括至少一个处理器和存储器,存储器用于存储一组计算机指令;当处理器作为第一方面或第一方面任一种可能实现方式中的执行设备执行所述一组计算机指令时,执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤。
11、第四方面,提供一种存储系统,该存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤,得到压缩后数据,所述存储节点用于存储所述压缩后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行第一方面或第一方面任一种可能实现方式中的数据压缩方法的操作步骤,得到压缩后数据,存储所述压缩后数据。
12、第五方面,提供一种计算机可读存储介质,包括:计算机软件指令;当计算机软件指令在计算设备中运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
13、第六方面,提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算设备执行如第一方面或第一方面任意一种可能的实现方式中所述方法的操作步骤。
14、本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
1.一种数据压缩方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述预设参数包括对所述待压缩数据进行压缩时所用到的硬件资源的参数及/或描述所述待压缩数据的数据特征的参数。
3.根据权利要求2所述的方法,其特征在于,所述数据特征的参数包含数据类型、数据块大小和所述待压缩数据包含的字符的分布中至少一种。
4.根据权利要求2所述的方法,其特征在于,所述硬件资源的参数包含所述计算设备的处理器的占用率、将所述压缩后数据存储至存储设备时,所述计算设备与所述存储设备之间的网络带宽和所述存储设备的可用存储容量中的至少一种。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述计算设备存储有多个压缩特征值与压缩策略的对应关系;
6.根据权利要求5所述的方法,其特征在于,所述多个压缩特征值与压缩策略的对应关系是依据神经网络训练得到的。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述压缩策略中包括多个压缩窗口;
8.根据权利要求1-7中任一项所述的方法,其特征在于,在得到所述压缩后数据后,所述方法还包括:
9.一种数据压缩装置,其特征在于,所述装置包括:
10.根据权利要求9所述的装置,其特征在于,所述预设参数包括对所述待压缩数据进行压缩时所用到的硬件资源的参数及/或描述所述待压缩数据的数据特征的参数。
11.根据权利要求10所述的装置,其特征在于,所述数据特征的参数包含数据类型、数据块大小和所述待压缩数据包含的字符的分布中至少一种。
12.根据权利要求10所述的装置,其特征在于,所述硬件资源的参数包含所述计算设备的处理器的占用率、将所述压缩后数据存储至存储设备时,所述计算设备与所述存储设备之间的网络带宽和所述存储设备的可用存储容量中的至少一种。
13.根据权利要求9-12中任一项所述的装置,其特征在于,所述计算设备存储有多个压缩特征值与压缩策略的对应关系;
14.根据权利要求13所述的装置,其特征在于,所述多个压缩特征值与压缩策略的对应关系是依据神经网络训练得到的。
15.根据权利要求9-14中任一项所述的装置,其特征在于,所述压缩策略中包括多个压缩窗口;
16.根据权利要求9-15中任一项所述的装置,其特征在于,在得到所述压缩后数据后,所述装置还包括更新模块;
17.一种计算设备,其特征在于,所述计算设备包括存储器和至少一个处理器,所述存储器用于存储一组计算机指令;当所述处理器执行所述一组计算机指令时,执行上述权利要求1-8中任一项所述的方法的操作步骤。
18.一种存储系统,其特征在于,所述存储系统包括至少一个计算节点和至少一个存储节点,所述计算节点用于执行上述权利要求1-8中任一项所述的方法的操作步骤,得到压缩后数据,所述存储节点用于存储所述压缩后数据;或者,所述计算节点将待压缩数据传输至所述存储节点,所述存储节点执行上述权利要求1-8中任一项所述的方法的操作步骤,得到压缩后数据,存储所述压缩后数据。