CN113220651A - 运行数据压缩方法、装置、终端设备以及存储介质 - Google Patents
运行数据压缩方法、装置、终端设备以及存储介质 Download PDFInfo
- Publication number
- CN113220651A CN113220651A CN202110452028.9A CN202110452028A CN113220651A CN 113220651 A CN113220651 A CN 113220651A CN 202110452028 A CN202110452028 A CN 202110452028A CN 113220651 A CN113220651 A CN 113220651A
- Authority
- CN
- China
- Prior art keywords
- data
- operation data
- preset
- compression
- algorithm
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 76
- 238000013144 data compression Methods 0.000 title claims abstract description 32
- 238000007906 compression Methods 0.000 claims abstract description 97
- 230000006835 compression Effects 0.000 claims abstract description 97
- 238000012216 screening Methods 0.000 claims abstract description 27
- 238000012986 modification Methods 0.000 claims description 5
- 230000004048 modification Effects 0.000 claims description 5
- 238000004891 communication Methods 0.000 description 12
- 230000006837 decompression Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000007781 pre-processing Methods 0.000 description 6
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000002203 pretreatment Methods 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 241000282414 Homo sapiens Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明公开一种运行数据压缩方法,所述方法包括以下步骤:在目标运行数据中筛选满足预设条件的选定运行数据;利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。本发明还公开一种运行数据压缩装置、终端设备以及计算机可读存储介质。利用本发明的运行数据压缩方法,提高了满足预设条件的运行数据的压缩效率。
Description
技术领域
本发明涉及数据压缩领域,特别涉及一种运行数据压缩方法、装置、终端设备以及计算机可读存储介质。
背景技术
随着计算机技术的飞速发展、互联网应用、云计算的普及,人类已步入大数据时代。为了存储和传输各行各业产生的海量数据,需要花费巨大的存储代价和宝贵的网络带宽资源。特别是在云数据中心应用场景中,例如阿里云、腾讯云和百度云等,这些云数据中心有数量众多的服务器、网络设备和存储服务器等设备,同时,每台服务器上会运行大量的虚拟机和容器等。这些物理设备、虚拟机和容器等产生的各种状态信息被称为运行数据,例如,CPU使用率、内存使用率、磁盘I/O请求次数和网络传输速率等。为了保证云数据中心的稳定和高效运行,需要周期性的采集这些运行数据并对其进行存储,以便通过分析这些运行数据来掌握云数据中心的整体运行状况。
相关技术中,公布了一种运行数据压缩方法,利用Snappy算法将运行数据划分成分割数据,并利用Snappy算法对分割数据进行压缩,以获得压缩后的数据。
但是,采用现有的运行数据压缩方法,对运行数据进行压缩时,压缩效率较低。
发明内容
本发明的主要目的是提供一种运行数据压缩方法、装置、终端设备以及计算机可读存储介质,旨在解决现有技术中采用现有的运行数据压缩方法,对运行数据进行压缩时,压缩效率较低的技术问题。
为实现上述目的,本发明提出一种运行数据压缩方法,所述方法包括以下步骤:
在目标运行数据中筛选满足预设条件的选定运行数据;
利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;
利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
可选的,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:
在获取到原始运行数据时,在所述原始运行数据中筛选数据大小值小于预设阈值的所述目标运行数据。
可选的,所述利用预设压缩算法对所述选定运行数据进行数据结构的修改的步骤之前,所述方法还包括:
在所述目标运行数据中确定出数据大小值最大的所述参考运行数据;
基于所述参考运行数据的数据大小值,获得所述冗余比特位数;
利用所述冗余比特位数对Snappy算法进行修改,以获得所述预设压缩算法。
可选的,所述基于所述参考运行数据的数据大小值,获得所述冗余比特位数的步骤,包括:
基于所述参考运行数据的数据大小值对应的最大比特位数,利用公式一,确定存储串长对应的串长最大比特位数;
将第一预设参数与所述串长最大比特位数的差确定为所述冗余比特位数;
所述公式一为:
其中,M为所述串长最大比特位数,K为所述最大比特位数。
可选的,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:
将所述目标运行数据中,在预设字典中具有存储记录的目标运行数据确定为初选运行数据,所述预设字典存储于所述预设压缩算法中;
所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤,包括:
在所述初选运行数据中筛选满足预设条件的选定运行数据。
可选的,所述预设条件包括:所述初选运行数据的存储长度大于或等于预设长度字节数。
可选的,所述预处理数据中的每个预处理数据均具有第一比特位数的字节偏移量和第二比特位数的串长,其中,所述第一比特位数为所述串长最大比特位数,所述第二比特位数为第二预设参数与所述冗余比特位数的和。
此外,为实现上述目的,本发明还提出了一种运行数据压缩装置,所述装置包括:
筛选模块,用于在目标运行数据中筛选满足预设条件的选定运行数据;
修改模块,用于利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;
压缩模块,用于利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
此外,为实现上述目的,本发明还提出了一种终端设备,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行运行数据压缩程序,所述运行数据压缩程序被所述处理器执行时实现如上述任一项所述的运行数据压缩方法的步骤。
此外,为实现上述目的,本发明还提出了一种计算机可读存储介质,所述计算机可读存储介质上存储有运行数据压缩程序,所述运行数据压缩程序被处理器执行时实现如上述任一项所述的运行数据压缩方法的步骤。
本发明技术方案提出了一种运行数据压缩方法,通过在目标运行数据中筛选满足预设条件的选定运行数据;利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
现有的方法中,利用Snappy算法对所述目标运行数据中满足预设条件的选定运行数据进行分割,以获得分割数据,并利用Snappy算法对分割数据进行压缩,一条选定运行数据对应多个分割数据,由于,多个分割数据占用字节较多,使得对多个分割数据的压缩速度较低,压缩效率较低。而本发明中,利用对Snappy算法进行修改后的预设压缩算法,对于选定运行数据直接进行数据结构的转换,以获得预处理数据,并继续利用预设算法对预处理数据进行压缩,一条选定运行数据对应的预处理数据的占用字节远小于一条选定运行数据对应的多个分割数据的占用字节,从而使得对预处理数据的压缩速度较快,压缩效率较高。所以,利用本发明的方法,提高了满足预设条件的运行数据的压缩效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图;
图2为本发明运行数据压缩方法第一实施例的流程示意图;
图3为利用Snappy算法对选定运行数据进行处理时的数据结构示意图;
图4为本发明预处理数据的数据结构示意图;
图5为不满足预设条件的目标运行数据的数据结构示意图;
图6为本发明运行数据压缩装置第一实施例的结构框图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的终端设备结构示意图。
终端设备可以是移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA)、平板电脑(PAD)等用户设备(User Equipment,UE)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobile station,MS)等。终端设备可能被称为用户终端、便携式终端、台式终端等。
通常,终端设备包括:至少一个处理器301、存储器302以及存储在所述存储器上并可在所述处理器上运行的运行数据压缩程序,所述运行数据压缩程序配置为实现如前所述的运行数据压缩方法的步骤。
处理器301可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(CentralProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器301可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。处理器301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关运行数据压缩方法操作,使得运行数据压缩方法模型可以自主训练学习,提高效率和准确度。
存储器302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器301所执行以实现本申请中方法实施例提供的运行数据压缩方法。
在一些实施例中,终端还可选包括有:通信接口303和至少一个外围设备。处理器301、存储器302和通信接口303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与通信接口303相连。具体地,外围设备包括:射频电路304、显示屏305和电源306中的至少一种。
通信接口303可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器301和存储器302。在一些实施例中,处理器301、存储器302和通信接口303被集成在同一芯片或电路板上;在一些其他实施例中,处理器301、存储器302和通信接口303中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
射频电路304用于接收和发射RF(Radio Frequency,射频)信号,也称电磁信号。射频电路304通过电磁信号与通信网络以及其他通信设备进行通信。射频电路304将电信号转换为电磁信号进行发送,或者,将接收到的电磁信号转换为电信号。可选地,射频电路304包括:天线系统、RF收发器、一个或多个放大器、调谐器、振荡器、数字信号处理器、编解码芯片组、用户身份模块卡等等。射频电路304可以通过至少一种无线通信协议来与其它终端进行通信。该无线通信协议包括但不限于:城域网、各代移动通信网络(2G、3G、4G及5G)、无线局域网和/或WiFi(Wireless Fidelity,无线保真)网络。在一些实施例中,射频电路304还可以包括NFC(Near Field Communication,近距离无线通信)有关的电路,本申请对此不加以限定。
显示屏305用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏305是触摸显示屏时,显示屏305还具有采集在显示屏305的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器301进行处理。此时,显示屏305还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏305可以为一个,电子设备的前面板;在另一些实施例中,显示屏305可以为至少两个,分别设置在电子设备的不同表面或呈折叠设计;在再一些实施例中,显示屏305可以是柔性显示屏,设置在电子设备的弯曲表面上或折叠面上。甚至,显示屏305还可以设置成非矩形的不规则图形,也即异形屏。显示屏305可以采用LCD(LiquidCrystal Display,液晶显示屏)、OLED(Organic Light-Emitting Diode,有机发光二极管)等材质制备。
电源306用于为电子设备中的各个组件进行供电。电源306可以是交流电、直流电、一次性电池或可充电电池。当电源306包括可充电电池时,该可充电电池可以支持有线充电或无线充电。该可充电电池还可以用于支持快充技术。本领域技术人员可以理解,图1中示出的结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
此外,本发明实施例还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有运行数据压缩程序,所述运行数据压缩程序被处理器执行时实现如上文所述的运行数据压缩方法的步骤。因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。确定为示例,程序指令可被部署为在一个终端设备上执行,或者在位于一个地点的多个终端设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个终端设备备上执行。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,上述的计算机可读存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
基于上述硬件结构,提出本发明运行数据压缩方法的实施例。
参照图2,图2为本发明运行数据压缩方法第一实施例的流程示意图,所述方法用于终端设备,所述方法包括以下步骤:
步骤S11:在目标运行数据中筛选满足预设条件的选定运行数据。
需要说明的是,本发明的执行主体是终端设备,终端设备安装有运行数据压缩程序,终端设备执行运行数据压缩程序时,实现本发明的运行数据压缩方法的步骤。
目前,现有的无损压缩方案在原理上大概上可以分为四类:
第一类为游程编码(Run-length Encoding,RLE),RLE适用于重复数据,主要思路是将重复的字符编码成2字节,第一个字节表示重复的字符,第二个字节表示该字符重复的次数,因此,RLE方案非常简单,可以用来取代某些较为复杂的压缩方案,但它的压缩效率取决于压缩的字符串。
第二类为差分编码(Delta Encoding),这种编码方案使用顺序数据之间的差异来存储,而不是将原本的数据进行存储,它每次在存储一个数据时,都得计算与前一个数据的之间差值,将这个差值进行存储,从而减少原文件的大小。
第三类为哈夫曼编码(Huffman Encoding),哈夫曼编码的原理是按照文件中字符的出来频率的高低来进行编码存储,对于出现频率较高的字符使用较短的编码来代替,并且采用前缀编码来保证每个字符编码的唯一性。具体而言,首先根据待压缩文件中字符的出现频率来构建哈夫曼树,再根据哈夫曼树对文件中字符一一进行编码,因此,在数据压缩时把哈夫曼树保留在压缩后的数据文件中,以便在解压时对压缩文件进行正确的解码。
第四类为LEMPEL-ZIV-WELCH编码(LZW)。LZW编码是基于字典的无损编码方法,其利用单个字符来替换重复出现的字符串,压缩速度快,不需要任何的先验信息,Snappy算法是谷歌公司基于LZW的变种算法LZ77开发的,虽然Snappy算法没有其它压缩算法(例如gzip等)那么高的压缩效率,但是其压缩速度和解压速度都比较高,特别适用于大数据压缩场景,被谷歌、Apache基金会等大公司和机构广泛用于大数据压缩任务。
其中,目标运行数据为原始运行数据中筛选出来的,数据大小值小于预设阈值的运行数据,原始运行数据即终端设备从对应的服务器、网络设备或存储服务器等设备获取的全部运行数据,原始运行数据可以涉及CPU使用率、内存使用率、磁盘I/O请求次数和网络传输速率等。
原始运行数据中,首先筛选出目标运行数据,并在目标运行数据中筛选出满足所述预设条件的选定运行数据,选定运行数据需要按照本发明的方法进行压缩。原始运行数据中,非选定运行数据的部分,可以采用现有的压缩方式(任意一种压缩方式均可)进行压缩。可以理解的是,原始运行数据中的运行数据均需要压缩,只是对于其中选定运行数据,采用本发明的运行数据压缩方法具有较优的效果。
具体应用中,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:在获取到原始运行数据时,在所述原始运行数据中筛选数据大小值小于预设阈值的所述目标运行数据。
其中,预设阈值可以是216字节,预设阈值可以是211字节~216字节中的任一数值,用户基于需求确定。作为最优选择,预设阈值为211字节。
另外,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:将所述目标运行数据中,在预设字典中具有存储记录的目标运行数据确定为初选运行数据,所述预设字典存储于所述预设压缩算法中;相应的,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤,包括:在所述初选运行数据中筛选满足预设条件的选定运行数据。
需要说明的是,本发明是利用对Snappy算法进行修改后,获得的预设压缩算法对选定运行数据进行压缩的,其依旧时利用Snappy算法中涉及的预设字典进行目标运行数据的筛选(即预设压缩算法具有原修改前的Snappy算法中的预设字典):目标运行数据中,在预设字典中存在存储记录的目标运行数据即为所述初选运行数据。具体的,将目标运行数据哈希,得到哈希后的运行数据,若在预设字典中查询到该哈希后的运行数据,则该哈希后的运行数据对应的目标运行数据即为初选运行数据;若在预设字典中未查询到该哈希后的运行数据,则该哈希后的运行数据对应的目标运行数据不为初选运行数据,其不能被压缩,直接进行存储即可。同时,若在预设字典中未查询到该哈希后的运行数据,需要利用该哈希后的运行数据更新预设字典。
另外,所述预设条件包括:所述初选运行数据的存储长度大于或等于预设长度字节数。即,所述初选运行数据中,存储长度小于预设长度字节数的为非选定运行数据,不需要按照本发明的方法进行压缩。其中,预设长度字节数为12是较优的选择。
步骤S12:利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得。
其中,预设压缩算法的获得步骤如下:在所述目标运行数据中确定出数据大小值最大的所述参考运行数据;基于所述参考运行数据的数据大小值,获得所述冗余比特位数;利用所述冗余比特位数对Snappy算法进行修改,以获得所述预设压缩算法。
具体的,所述基于所述参考运行数据的数据大小值,获得所述冗余比特位数的步骤,包括:基于所述参考运行数据的数据大小值对应的最大比特位数,利用公式一,确定存储串长对应的串长最大比特位数;将第一预设参数与所述串长最大比特位数的差确定为所述冗余比特位数;
所述公式一为:
其中,M为所述串长最大比特位数,K为所述最大比特位数。
通常在具体应用中,目标运行数据中的数据均小于预设阈值(例如,211字节),第一预设参数为16。
具体应用中,目标运行数据通常位数据集合,该数据集合中的目标运行数据均不超过参考运行数据的数据大小值,基于该参考运行数据的数据大小值对应的最大比特位数K,求得最终的冗余比特位数,根据冗余比特位数修改Snappy算法,将存储匹配串和解压匹配串的代码进行相应修改,以获得预设压缩算法。
其中,所述预处理数据中的每个预处理数据均具有第一比特位数的字节偏移量和第二比特位数的串长,其中,所述第一比特位数为所述串长最大比特位数,所述第二比特位数为第二预设参数与所述冗余比特位数的和。其中,第二参数为6,在预设阈值取211字节时,第一比特位数和第二比特位数均为11。
参照图3,图3为利用Snappy算法对选定运行数据进行处理时的数据结构示意图;现有的Snappy算法,会将存储长度(单次存储长度)大于或等于预设长度字节(这里取12字节)的数据分割,并对分割后的数据进行数据结构转换,以获得分割数据,分割数据的数据结构如图3中所示。对于一条长度较大的选定运行数据(例如大于128的运行数据),需要按照图3的方式分割成多个64字节、多个60字节和一个短字节(短字节的长度为12字节~64字节)的多个分割数据,一条较长的选定运行数据对应多个分割数据。然后,利用Snappy算法对多个分割数据进行压缩。其中,在图3中,选定运行数据对应的目标运行数据所用到的预设阈值为211字节。
参照图4,图4为本发明预处理数据的数据结构示意图;预处理数据是利用预设压缩算法对选定运行数据进行数据结构转换获得,可见,对于存储长度(单次存储长度)大于或等于预设长度字节(这里取12字节)的数据不需要分割,只需要将其转换为图4所示的数据结构即可,此时,一条选定运行数据对应一个预处理数据。其中,在图4中,选定运行数据对应的目标运行数据所用到的预设阈值为211字节。
参照图5,图5为不满足预设条件的目标运行数据的数据结构示意图,对于不满足预设条件的目标运行数据,按照现有的Snappy算法对其进行数据结构的转换即可。
步骤S13:利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
其中,在本发明中,所述预设压缩算法对预处理数据进行压缩的过程,与现有的利用Snappy算法对数据进行压缩的过程是一样的,此处不再赘述。本发明的重点即在于对于满足预设条件的目标运行数据(即选定运行数据)不需要对其进行分割,直接进行数据结构的转换,以提高压缩的效率。在获得压缩后的结果数据后,需要将结果数据进行存储。
本发明技术方案提出了一种运行数据压缩方法,通过在目标运行数据中筛选满足预设条件的选定运行数据;利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
现有的方法中,利用Snappy算法对所述目标运行数据中满足预设条件的选定运行数据进行分割,以获得分割数据,并利用Snappy算法对分割数据进行压缩,一条选定运行数据对应多个分割数据,由于,多个分割数据占用字节较多,使得对多个分割数据的压缩速度较低,压缩效率较低。而本发明中,利用对Snappy算法进行修改后的预设压缩算法,对于选定运行数据直接进行数据结构的转换,以获得预处理数据,并继续利用预设算法对预处理数据进行压缩,一条选定运行数据对应的预处理数据的占用字节远小于一条选定运行数据对应的多个分割数据的占用字节,从而使得对预处理数据的压缩速度较快,压缩效率较高。所以,利用本发明的方法,提高了满足预设条件的运行数据的压缩效率。
针对本发明的运行数据压缩方法,本申请提供了实验数据,实验数据如下:
假设有1个包括多个选定运行数据的数据集合S={s1,s2,…,sn},其中,数据集合中每个数据文件的大小均不超过2KB(预设阈值为211字节),第1个数据文件s1包含由连续的25个“abcd”组成的字符串“abcdabcdabcd…”,即s1的大小为100字节;经过原Snappy压缩后的字符串(十六进制表示)为64 0C 61 62 63 64 FE 04 00 7E 04 00,大小为12字节;经过优化后的Snappy(优化后的Snappy及为本发明的预设压缩算法)压缩后的字符串(十六进制表示)为64 0C 61 62 63 64 7E 04 08,大小为9字节;可以看出压缩率得到提高。
采用随机生成的数据对提出的压缩方法进行性能测试,格式为“IP地址、时间戳、采集对象名称、采集度量、值和类型”,例如“10.159.0.14,1588492472185,cAdvisor,cpu,22,0”。对于生成的大小为8.6MB的测试文件,在max_block_size=2KB的情况下,采用不同的预处理方式后计算其压缩率、压缩速率和解压速率,其中,压缩率=压缩后文件大小/原始文件大小。计算速率的方式是测试5次取中位数,每次压缩和解压50次取性能测试值的平均值。
预处理方式1:从云数据中心采集到的每条运行数据记录(即原始运行数据,在该实验中,只需要用到原始运行数据中的选定运行数据,下文提到的具体示例均是选定运行数据对应的示例)由多个部分组成,每个部分称为字段,分别保存被采集对象的各种状态信息,例如IP地址、采集时间、CPU使用率等数据。以下为两条运行数据示例:
10.159.0.14,1588492472185,cAdvisor,cpu,22,0
10.159.0.50,1588492472286,pod,netIn,319,4
预处理方式1将具有相同类型的字段放在一起,处理后得到的数据格式如下:10.159.0.14,10.159.0.50,1588492472185,1588492472286,cAdvisor,pod,cpu,netIn,22,319,0,4,经过预处理后测试数据文件大小由8810KB变为8614KB,使用原始Snappy方法压缩后文件大小为3168KB,压缩率为36%;本发明提出的压缩方法压缩后文件大小为3160KB,压缩率为35.87%。原Snappy的压缩速率和解压速率分别为108.11MB/s和305.22MB/s,而提出的压缩方法的压缩速率和解压速率分别为109.94MB/s和313.54MB/s。
预处理方式2:在预处理方式1的基础上把IP地址转为32位整数后再转为与上一次的差值,如10.159.0.14转为36,预处理后文件大小由8810KB变为7041KB。原snappy压缩后文件大小为3049KB,压缩率为34.61%,优化后的snappy压缩后文件大小为3041KB,压缩率为34.52%。原snappy的压缩速率和解压速率分别为89.14MB/s和234.33MB/s,优化后的snappy的压缩速率和解压速率分别为91.26MB/s和237.89MB/s。
预处理方式3:在预处理方式1的基础上把时间戳转为与上一次的差值,如:1588492472286转化为1588492472286-1588492472185=101,预处理后文件大小由8810KB变为6456KB。使用原Snappy方法压缩后文件大小变为2161KB,压缩率为24.53%,而使用提出的压缩方法压缩后文件大小为为2154KB,压缩率为24.45%。原Snappy方法的压缩速率和解压速率分别为106.08MB/s和259.56MB/s,而提出的压缩方法的压缩速率和解压速率分别为108.33MB/s和266.05MB/s。
通过上述测试可以看出,在文件分块压缩的块大小不超过2KB时,本发明提出的数据压缩方法的压缩比与主流压缩方法Snappy非常接近,但是压缩速率和解压速率得到了提高。
参照图6,图6为本发明运行数据压缩装置第一实施例的结构框图,所述装置用于终端设备,所述装置包括:
筛选模块10,用于在目标运行数据中筛选满足预设条件的选定运行数据;
修改模块20,用于利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;
压缩模块30,用于利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (10)
1.一种运行数据压缩方法,其特征在于,所述方法包括以下步骤:
在目标运行数据中筛选满足预设条件的选定运行数据;
利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;
利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
2.如权利要求1所述的方法,其特征在于,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:
在获取到原始运行数据时,在所述原始运行数据中筛选数据大小值小于预设阈值的所述目标运行数据。
3.如权利要求2所述的方法,其特征在于,所述利用预设压缩算法对所述选定运行数据进行数据结构的修改的步骤之前,所述方法还包括:
在所述目标运行数据中确定出数据大小值最大的所述参考运行数据;
基于所述参考运行数据的数据大小值,获得所述冗余比特位数;
利用所述冗余比特位数对Snappy算法进行修改,以获得所述预设压缩算法。
5.如权利要求4所述的方法,其特征在于,所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤之前,所述方法还包括:
将所述目标运行数据中,在预设字典中具有存储记录的目标运行数据确定为初选运行数据,所述预设字典存储于所述预设压缩算法中;
所述在目标运行数据中筛选满足预设条件的选定运行数据的步骤,包括:
在所述初选运行数据中筛选满足预设条件的选定运行数据。
6.如权利要求5所述的方法,其特征在于,所述预设条件包括:所述初选运行数据的存储长度大于或等于预设长度字节数。
7.如权利要求6所述的方法,其特征在于,所述预处理数据中的每个预处理数据均具有第一比特位数的字节偏移量和第二比特位数的串长,其中,所述第一比特位数为所述串长最大比特位数,所述第二比特位数为第二预设参数与所述冗余比特位数的和。
8.一种运行数据压缩装置,其特征在于,所述装置包括:
筛选模块,用于在目标运行数据中筛选满足预设条件的选定运行数据;
修改模块,用于利用预设压缩算法对所述选定运行数据进行数据结构的修改,以获得预处理数据,其中,一条选定运行数据对应一条预处理数据,所述预设压缩算法是利用冗余比特位数对Snappy算法进行修改获得,所述冗余比特位数基于所述目标运行数据中的参考运行数据的数据大小值获得;
压缩模块,用于利用所述预设压缩算法,对所述预处理数据进行压缩,以获得压缩后的结果数据。
9.一种终端设备,其特征在于,所述终端设备包括:存储器、处理器及存储在所述存储器上并在所述处理器上运行运行数据压缩程序,所述运行数据压缩程序被所述处理器执行时实现如权利要求1至7中任一项所述的运行数据压缩方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有运行数据压缩程序,所述运行数据压缩程序被处理器执行时实现如权利要求1至7中任一项所述的运行数据压缩方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110452028.9A CN113220651B (zh) | 2021-04-25 | 2021-04-25 | 运行数据压缩方法、装置、终端设备以及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110452028.9A CN113220651B (zh) | 2021-04-25 | 2021-04-25 | 运行数据压缩方法、装置、终端设备以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113220651A true CN113220651A (zh) | 2021-08-06 |
CN113220651B CN113220651B (zh) | 2024-02-09 |
Family
ID=77089065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110452028.9A Active CN113220651B (zh) | 2021-04-25 | 2021-04-25 | 运行数据压缩方法、装置、终端设备以及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113220651B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116340275A (zh) * | 2023-03-14 | 2023-06-27 | 深圳乐信软件技术有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
WO2023216575A1 (zh) * | 2022-05-11 | 2023-11-16 | 华为技术有限公司 | 数据页处理的方法及其装置 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167156A (en) * | 1996-07-12 | 2000-12-26 | The United States Of America As Represented By The Secretary Of The Navy | Compression of hyperdata with ORASIS multisegment pattern sets (CHOMPS) |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
CN106844091A (zh) * | 2016-12-08 | 2017-06-13 | 深圳市金立通信设备有限公司 | 一种压缩、还原方法及终端 |
CN108304472A (zh) * | 2017-12-28 | 2018-07-20 | 中国银联股份有限公司 | 一种数据压缩存储方法以及数据压缩存储装置 |
CN109962710A (zh) * | 2017-12-14 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 数据压缩方法、电子设备及计算机可读存储介质 |
CN110198171A (zh) * | 2018-03-15 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据压缩方法、装置、计算机可读介质及电子设备 |
CN111431537A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | 数据压缩方法、装置及计算机可读存储介质 |
-
2021
- 2021-04-25 CN CN202110452028.9A patent/CN113220651B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6167156A (en) * | 1996-07-12 | 2000-12-26 | The United States Of America As Represented By The Secretary Of The Navy | Compression of hyperdata with ORASIS multisegment pattern sets (CHOMPS) |
CN104868922A (zh) * | 2014-02-24 | 2015-08-26 | 华为技术有限公司 | 数据压缩方法及装置 |
CN106844091A (zh) * | 2016-12-08 | 2017-06-13 | 深圳市金立通信设备有限公司 | 一种压缩、还原方法及终端 |
CN109962710A (zh) * | 2017-12-14 | 2019-07-02 | 阿里巴巴集团控股有限公司 | 数据压缩方法、电子设备及计算机可读存储介质 |
CN108304472A (zh) * | 2017-12-28 | 2018-07-20 | 中国银联股份有限公司 | 一种数据压缩存储方法以及数据压缩存储装置 |
CN110198171A (zh) * | 2018-03-15 | 2019-09-03 | 腾讯科技(深圳)有限公司 | 数据压缩方法、装置、计算机可读介质及电子设备 |
CN111431537A (zh) * | 2020-03-06 | 2020-07-17 | 平安科技(深圳)有限公司 | 数据压缩方法、装置及计算机可读存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023216575A1 (zh) * | 2022-05-11 | 2023-11-16 | 华为技术有限公司 | 数据页处理的方法及其装置 |
CN116340275A (zh) * | 2023-03-14 | 2023-06-27 | 深圳乐信软件技术有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
CN116340275B (zh) * | 2023-03-14 | 2024-03-01 | 深圳市乐信信息服务有限公司 | Redis复杂对象内存压缩存储方法、装置及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113220651B (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109151468B (zh) | 一种图像数据的编码、解码方法及装置 | |
US10116325B2 (en) | Data compression/decompression device | |
US20170295263A1 (en) | System and method for applying an efficient data compression scheme to url parameters | |
CN113220651B (zh) | 运行数据压缩方法、装置、终端设备以及存储介质 | |
CN108932124A (zh) | 神经网络模型压缩方法、装置、终端设备及存储介质 | |
CN102841901A (zh) | 一种网页显示的方法和装置 | |
CN115065725B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
US10817460B2 (en) | RDMA data sending and receiving methods, electronic device, and readable storage medium | |
CN103458460A (zh) | 对信号数据进行压缩和解压缩的方法和装置 | |
CN111008230A (zh) | 数据存储方法、装置、计算机设备及存储介质 | |
CN109151477B (zh) | 一种图像数据的编码、解码方法及装置 | |
CN110933706A (zh) | 一种网络通信设置方法、装置、存储介质及终端 | |
CN108965333A (zh) | 一种数据压缩、解压缩方法、系统及电子设备 | |
CN115567589B (zh) | Json数据的压缩传输方法、装置、设备及存储介质 | |
WO2019236218A1 (en) | Dynamic dictionary-based data symbol encoding | |
CN105659503A (zh) | 用于提供多用户节电码本优化的系统和方法 | |
CN101534124A (zh) | 一种用于短小自然语言的压缩算法 | |
CN112560020B (zh) | 威胁攻击检测方法、装置、终端设备以及存储介质 | |
CN109690957B (zh) | 熵编码的系统级测试 | |
CN110598057B (zh) | 一种面向遥测数据的数据搜索方法及装置 | |
CN112888024A (zh) | 数据处理方法、装置、存储介质及电子设备 | |
CN112953547A (zh) | 一种数据处理方法、装置及系统 | |
CN113821252B (zh) | 小程序的构建方法、装置、终端设备以及存储介质 | |
CN114035822A (zh) | 一种文件更新方法及设备 | |
CN113518088B (zh) | 数据处理方法、装置、服务器、客户端和介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |