CN110198171A - 数据压缩方法、装置、计算机可读介质及电子设备 - Google Patents

数据压缩方法、装置、计算机可读介质及电子设备 Download PDF

Info

Publication number
CN110198171A
CN110198171A CN201810213159.XA CN201810213159A CN110198171A CN 110198171 A CN110198171 A CN 110198171A CN 201810213159 A CN201810213159 A CN 201810213159A CN 110198171 A CN110198171 A CN 110198171A
Authority
CN
China
Prior art keywords
data
difference
data structure
sequence
compression method
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
Application number
CN201810213159.XA
Other languages
English (en)
Other versions
CN110198171B (zh
Inventor
罗冬水
罗朝亮
阳叶
郑松坚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810213159.XA priority Critical patent/CN110198171B/zh
Publication of CN110198171A publication Critical patent/CN110198171A/zh
Application granted granted Critical
Publication of CN110198171B publication Critical patent/CN110198171B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3002Conversion to or from differential modulation
    • H03M7/3044Conversion to or from differential modulation with several bits only, i.e. the difference between successive samples being coded by more than one bit, e.g. differential pulse code modulation [DPCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0006Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format
    • H04L1/0007Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission format by modifying the frame length

Abstract

本发明涉及计算机技术领域,提供了一种数据压缩方法、装置、计算机可读介质及电子设备,该数据压缩方法包括:将数据序列中的序列点转换为差值数据;将所述差值数据编码得到编码数据;利用所述编码数据形成第一数据结构;生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;生成表示所述第二数据结构长度的第三数据结构;将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。本发明提高了数据压缩的效率,节省了存储大量数据所需的空间,并且提高了数据的索引效率。

Description

数据压缩方法、装置、计算机可读介质及电子设备
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种数据压缩方法、装置、计算机可读介质及电子设备。
背景技术
数据序列是一系列有序的数据,这类数据反映了某一事物、现象、指标等随时间的变化状态或程度。通常在制造加工业、服务业等领域需要存储数据序列,必要的时候,还要从存储的众多数据中读取所需的数据,以备工艺分析、故障追溯以及控制方案改进等方面的参考用途。但是当存储数据过多时,会占用较多的存储空间,同时以前存储的数据会溢出而无法长期保留;另外在索引数据时,所需的索引时间较多,效率较低。
因此为了提高压缩效率、节省存储空间,需要通过数据压缩和自定义存储结构来提高存储效率,从而提高系统整体处理速度及性能。
需要说明的是,在上述背景技术部分公开的信息仅用于加强对本发明的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。
发明内容
本发明的目的在于提供一种数据压缩方法及装置、计算机可读介质及电子设备,进而提高数据的压缩效率,减少数据所占用的存储空间,延长数据的保留时间,并提高索引效率。
本发明的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本发明的实践而习得。
根据本发明的第一方面,提供一种数据压缩方法,其特征在于,包括:将数据序列中的序列点转换为差值数据;将所述差值数据编码得到编码数据;利用所述编码数据形成第一数据结构;生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;生成表示所述第二数据结构长度的第三数据结构;将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
根据本发明的第二方面,提供一种数据压缩装置,其特征在于,包括:差值数据生成模块,用于将数据序列中的序列点转换为差值数据;编码数据生成模块,用于将所述差值数据编码得到编码数据;第一数据结构生成模块,用于利用所述编码数据形成第一数据结构;第二数据结构生成模块,用于生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;第三数据结构生成模块,用于生成表示所述第二数据结构长度的第三数据结构;第四数据结构生成模块,用于将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
在本发明的一些实施例中,基于前述方案,差值数据生成模块包括:第一差值运算单元,用于将所述序列点与前一序列点进行差值运算形成所述差值数据。
在本发明的一些实施例中,基于前述方案,所述序列点包括第一数据和第二数据;差值数据生成模块包括:第二差值运算单元,用于将所述序列点中的第一数据和第二数据分别与前一序列点中的第一数据和第二数据进行差值运算形成第一数据差值和第二数据差值。
在本发明的一些实施例中,基于前述方案,所述序列点为时间序列点,所述第一数据为时间,所述第二数据为对应的数据信息;差值数据生成模块包括:第三差值运算单元,用于将所述时间序列点中的时间及对应的数据信息分别与前一时间序列点中的时间及对应的数据信息进行差值运算形成所述差值数据。
在本发明的一些实施例中,基于前述方案,编码数据生成模块包括:编码单元,用于将所述差值数据编码为整型数据。
在本发明的一些实施例中,基于前述方案,所述整型数据为二进制无符号整型数据或二进制有符号整型数据。
在本发明的一些实施例中,基于前述方案,编码数据生成模块包括:第一编码单元,用于将所述第一数据差值编码为第一编码数据;及第二编码单元,用于将所述第二数据差值编码为第二编码数据。
在本发明的一些实施例中,基于前述方案,所述控制头包括第一部分和第二部分,所述第一部分表示所述第一编码数据所占的位数,所述第二部分表示所述第二编码数据所占的位数。
在本发明的一些实施例中,基于前述方案,所述数据压缩装置还包括:第五数据结构生成模块,用于压缩所述第四数据结构形成第五数据结构。
在本发明的一些实施例中,基于前述方案,所述数据压缩装置还包括:字符结构生成模块,用于对所述第五数据结构进行编码形成字符结构。
在本发明的一些实施例中,基于前述方案,所述数据压缩装置还包括:版本号添加模块,用于在所述字符结构前设置压缩版本号。
根据本发明的第三方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现如上述实施例中所述的表单验证方法。
根据本发明的第四方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如上述实施例中所述的表单验证方法。
根据本示例实施例中的数据压缩方法,服务器将数据序列中的序列点转换为差值数据,对差值数据编码得到编码数据,并根据编码数据形成第一数据结构;生成包含多个控制头的第二数据结构,各控制头分别表示编码数据的长度;生成表示第二数据结构长度的第三数据结构;将第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。一方面由于本发明针对差值数据进行编码压缩,提高了数据的压缩效率,减少了所需的存储空间,并且可以在有限的存储空间内存储更多数据;另一方面,本发明通过根据编码后的差值数据的长度形成包含多个控制头的第二数据结构,并根据第二数据结构的长度生成第三数据结构,将第一数据结构、第二数据结构、第三数据结构组合形成第四数据结构,通过第四数据结构能够迅速找到所需数据,提高索引效率。
本发明应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出可以应用本发明实施例的表单验证方法或表单验证装置的示例性系统架构的示意图;
图2示出了适于用来实现本发明实施例的电子设备的计算机系统的结构示意图;
图3示出本发明一实施例中的数据压缩方法流程图;
图4示出本发明一实施例中时间序列经压缩后的字符串结构;
图5示出本发明一实施例中云监控系统的结构示意图;
图6示出本发明一实施例中数据压缩装置结构示意图;
图7示出本发明一实施例中数据压缩装置结构示意图;
图8示出本发明一实施例中数据压缩装置结构示意图;
图9示出本发明一实施例中数据压缩装置结构示意图。
具体实施方式
现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本发明将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
图1示出了可以应用本发明实施例的数据压缩方法或数据压缩装置的示例性系统架构100的示意图。
如图1所示,系统架构100可以包括终端设备101,网络102和服务器103。网络102用以在终端设备101和服务器103之间提供通信链路的介质。网络102可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。比如服务器103可以是多个服务器组成的服务器集群等。
用户可以使用终端设备101通过网络102与服务器103交互,将采集的数据上传至服务器103;同时终端设备101可以用于显示、监视服务器103的参数。终端设备101可以是具有显示屏的各种电子设备,包括但不限于平板电脑、便携式计算机和台式计算机等等。
服务器103可以是提供各种服务的服务器。例如服务器103接收终端设备101采集的业务程序各项指标对应的数据序列或服务器103采集自身业务程序各项指标对应的数据序列,将数据序列中的序列点转换为差值数据,编码差值数据形成编码数据,并根据编码数据形成第一数据结构;接着生成多个分别对应表示编码数据的固定长度的控制头,并根据多个控制头形成第二数据结构;然后根据第二数据结构长度生成第三数据结构;最后将第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构,以便提高数据压缩的效率,节省存储大量数据所需的空间,并且提高数据的索引效率。
图2示出了适于用来实现本发明中的实施例的电子设备的计算机系统的结构示意图。
需要说明的是,图2示出的电子设备的计算机系统200仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图2所示,计算机系统200包括中央处理单元(CPU)201,其可以根据存储在只读存储器(ROM)202中的程序或者从存储部分208加载到随机访问存储器(RAM)203中的程序而执行各种适当的动作和处理。在RAM 203中,还存储有系统操作所需的各种程序和数据。CPU201、ROM 202以及RAM 203通过总线204彼此相连。输入/输出(I/O)接口205也连接至总线204。
以下部件连接至I/O接口205:包括键盘、鼠标等的输入部分206;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分207;包括硬盘等的存储部分208;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分209。通信部分209经由诸如因特网的网络执行通信处理。驱动器210也根据需要连接至I/O接口205。可拆卸介质211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器210上,以便于从其上读出的计算机程序根据需要被安装入存储部分208。
特别地,根据本发明的实施例,下文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分209从网络上被下载和安装,和/或从可拆卸介质211被安装。在该计算机程序被中央处理单元(CPU)201执行时,执行本申请的系统中限定的各种功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现,所描述的单元也可以设置在处理器中。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定。
作为另一方面,本申请还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该电子设备执行时,使得该电子设备实现如下述实施例中所述的方法。例如,所述的电子设备可以实现如图3所示的各个步骤。
在相关技术中,通常采集的数据序列为时间序列数据,时间序列数据的结构通常为id/sample time/sample value,其中的三个字段构成一行。存储时按照每个采集点占用一行记录的存储方式,一般都是预先为每个时间采集点分配一较大的存储空间,在接收到属于该时间采集点的数据时,将其存到对应空间。
然而这种数据存储方式所需预留的存储空间较大,而每个时间采集点的数据量是不可预测的,在部分时间采集点没有数据需要存储或存储数据比较少时,会造成存储空间很大的浪费;并且在空间有限的情况下,由于数据溢出而无法长期保留数据。同时,高效的索引不仅取决于索引策略,还取决于数据的存储方式,在时间采集点的数量是成千上万、甚至更多的情况下,采用这种存储方式,所需要的索引时间也较多,索引效率较低。
基于相关技术中数据存储存在的问题,在本发明一实施例中,首先提供了一种数据压缩方法,以对上述问题进行优化处理,具体参考图3所示,数据压缩方法适用于前述实施例中的所述电子设备,并至少包括以下步骤,具体为:
步骤S310:将数据序列中的序列点转换为差值数据;
步骤S320:将所述差值数据编码得到编码数据;
步骤S330:利用所述编码数据形成第一数据结构;
步骤S340:生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述差值数据的长度;
步骤S350:生成表示所述第二数据结构长度的第三数据结构;
步骤S360:将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
根据本示例实施例中的数据压缩方法,通过将数据序列中的序列点转换为差值数据,提高了数据的压缩效率,节省了数据存储所需的空间;同时根据编码后的差值数据的长度形成第二数据结构、根据第二数据结构的长度形成第三数据结构,并将第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构,通过该数据结构提高了数据的索引效率。
下面,将对本示例实施例中的数据压缩方法进行进一步的说明。
在步骤S310:将数据序列中的序列点转换为差值数据;
在本示例实施例中,服务器103接收到终端设备101发送的数据,并依序保存形成数据序列,数据序列中的各个数据称为序列点,序列点可以是二进制数据、八进制数据、十进制数据等等。服务器103将数据序列中的序列点转换为差值数据。
在本示例实施例中,数据序列中序列点可以与前一序列点进行差值运算形成差值数据,例如多个序列点分别为N1、N2、N3……N(n-1)、Nn,经过差值运算形成的差值数据分别为:[N1-0]、[N2-N1]、[N3-N2]……[N(n-1)-N(n-2)]、[Nn-N(n-1)]。当然,差值数据也可以根据其它规则形成,比如将各序列点与后一序列点进行差值运算形成;将各序列点与间隔m(m∈N*)的序列点进行差值运算形成,本发明对此不做具体限定。
在本示例实施例中,数据序列中的序列点可以包括第一数据和第二数据,则序列点中的第一数据与前一序列点中的第一数据进行差值运算形成第一数据差值,序列点中的第二数据与前一序列点中的第二数据进行差值运算形成第二数据差值,第一数据差值和第二数据差值共同形成差值数据。例如,数据序列可以是时间序列,其包含多个时间序列点,各时间序列点包括时间及对应的数据信息,其中时间为第一数据,对应的数据集信息为第二数据。假设该时间序列点的结构为[tn,vn](n∈N*),按照上述计算差值数据的方法,可以通过将各时间序列点中的时间及对应的数据信息分别与前一时间序列点中的时间及对应的数据信息进行差值运算形成差值数据,例如各时间序列点分别为:[t1,v1]、[t2,v2]、[t3,v3]……[t(n-1),v(n-1)]、[tn,vn],经过差值运算形成的差值数据即为:[t1-0,v1-0]、[t2-t1,v2-v1]、[t3-t2,v3-v2]……[tn-t(n-1),vn-v(n-1)]。
值得注意的是,序列点中数据的数量不限于上述的一个或两个,还可以包含更多的数据,将序列点转换为差值数据的方法与上述方法相同,在此不再赘述。
在步骤S320中,将所述差值数据编码得到编码数据。
在本示例实施例中,对步骤S310中得到的差值数据编码,该编码可以是改变差值数据的结构,也可以保持差值数据的结构不变。例如可以将每个差值数据编码为整型数据,该整型数据可以是二进制无符号整型数据或二进制有符号整型整型数据。无符号整型数据是不包含小数部分且最高位不储存符号的数值型数据,有符号整型数据是不包含小数部分且最高位储存符号的数值型数据,由于有符号整型将最高位储存符号,而无符号整型全都储存数字,因此无符号整型可以存放的整数范围比有符号整型可以存放的整数范围大一倍。例如无符号整型数据采用1个字节表示0-255,2个字节表示256-65535,3个字节表示65536-16777215,通过将差值数据编码为二进制无符号整型数据减少了差值数据存储时所占用的空间。而有符号整型一般需要2n个字节数表示,相对于无符号整型所使用的字节较多,例如数值255采用有符号整型表示需要2个字节,但是采用无符号整型表示只需1个字节;65535采用有符号整型表示需要4个字节,而采用无符号整型只需2个字节,因此采用无符号整型编码差值数据较采用有符号整型编码差值数据节省的存储空间更多。除此之外,也可以对差值数据编码而不改变差值数据的结构,在此不再赘述。
在步骤S330中,利用所述编码数据形成第一数据结构。
在本示例性实施例中,获得编码数据后,可以将编码数据按照差值数据的顺序依次排列形成第一数据结构。例如有四个差值数据[20,300]、[15,200]、[30,500]、[40,600],各差值数据中包含两个数据,将差值数据编码为二进制无符号整型数据,则对应的编码数据为[1,2]、[1,1]、[1,2]、[1,2],由编码数据形成的第一数据结构则为:{[1,2][1,1][1,2][1,2]}。
在步骤S340中,生成包含多个控制头的第二数据结构,各所述多个控制头具有固定长度,且分别表示所述编码数据的长度。
在本示例实施例中,可以通过具有固定长度的控制头表示编码数据的长度,当序列点包括第一数据和第二数据时,控制头相应的包括第一部分和第二部分,其中第一部分表示第一编码数据所占的位数,第二部分表示第二编码数据所占的位数。例如服务器103中CPU使用率随时间变化,服务器103中存储一包含多个时间序列点时间序列,各时间序列点包括时间和对应的数据,且时间和对应的数据均为二进制数据;通过将各时间序列点进行差值运算并编码得到包含编码时间差及对应的编码值差,此时可以设置控制头的长度为N(N∈N*)个字节,其中编码时间差所占字节长度对应控制头的前M(M∈N*)bite,编码值差所占字节长度对应控制头的后M’(M’∈N*)bite,即M+M’=8N。例如,当控制头为1个字节时,可以将其前4bite用于存储时间差的字节数,后4bite用于存储值差的字节数。上述举例是对于二进制数据而言的,对于十进制数据,也可以设置控制头的长度,例如将控制头的长度设置为三位,即各差值数据的长度信息均通过三位数表示;同样对于八进制数据等其它进制的数据也可以依照上述方式设定控制头,在此不再赘述。虽然控制头的长度可以根据实际需要设定,但是为了减少数据存储所需的空间,控制头所占的字节数越少越好。
值得注意的是,上述举例是在序列点包含第一数据和第二数据的情况下,控制头的具体设置。当序列点包含的数据多于两个时,相应的,控制头可以分为相同数量的部分,用以存储每个数据的长度。
在本示例实施例中,服务器103提取各差值数据的长度,形成多个控制头,该多个控制头按照各编码数据的排列顺序依次排列组成一连续控制头,即为第二数据结构。例如当N(N∈N*)个编码数据的长度分别为4、8......16,则当各控制头占用一个字节时,对应的控制头分别为:00000100,00001000……00010000,由控制头组成的第二数据的结构为:{0000010000001000……00010000},长度为N。
在步骤S350中,生成表示所述第二数据结构长度的第三数据结构。
在本示例实施例中,对于海量的存储数据,若想从中快速提取某些数据是比较困难的,虽然在步骤S340中根据编码数据的长度信息形成了控制头,可以根据控制头的大小对数据进行索引,但是随着差值数据的增多,控制头形成的第二数据结构所占的存储空间也会逐渐增大,使得根据控制头获取对应数据的速率降低。为了便于索引数据,可以根据第二数据结构的长度信息生成第三数据结构,由于各控制头具有固定长度,因此可以根据第三数据结构获知第二数据结构中所包含的控制头的数量,根据控制头的数量拆分控制头,再根据各控制头即可在第一数据结构中找到相应的差值数据,进而通过差值运算的逆运算获得对应的序列点。例如各控制头所占字节数为一个,当差值数据的数量为N(N∈N*)个时,由控制头形成的第二数据结构所占的字节数也为N,即第三数据结构为N。在索引的过程中,便可以通过第三数据结构中的数据判断第二数据结构中控制头的数量,进而在第一数据结构中获取相应的差值数据。
在步骤S360中,将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
在本示例实施例中,可以将第一数据结构、第二数据结构和第三数据结构按照一定的顺序排列形成一编码结构,例如可以将三种数据结构顺序排序,形成的编码结构为[第一数据结构][第二数据结构][第三数据结构],索引时逆序索引即可;也可以将三种数据结构逆序排列,形成的编码结构为[第三数据结构][第二数据结构][第一数据结构],索引时顺序索引;当然,还可以采用其它的排列方式,本发明并不以此为限。
以一实际应用为例,服务器103中存储有一时间序列[tn,vn](n∈N*),其中tn表示采集时间点,使用精确到秒的时间戳表示,例如1484115755表示时间2017-01-11 14:22:33;vn表示被采集的数据,在存储时预先设定所保存的数据精确到小数点后两位,同时为了节省存储空间,可以在存储数据的基础上乘以100,使用整数来保存数据,即51.22实际存储成5122。举例而言,一时间序列为{[1484115755,5122][148411570,5150][1484115785,5300][1484115800,5550][1484115815,5850]},将各时间序列点与前一时间序列点进行差值运算得到差值数据[15,28][15,150][15,250][15,300],对应的二进制数据为[10001,11100][1111,10010110][1111,11111010][11110,100101100];接着将各差值数据编码为二进制无符号整型数据,并根据编码数据形成第一数据结构,该第一数据结构即为{[1,1][1,1][1,1,][1,2]};设定控制头的长度为1个字节,编码时间所占的字节长度占该控制头的前4bite,编码值差所占的字节长度占该控制头的后4bite,则各编码数据对应的控制头为00010001、00010001、00010001、00010010;然后根据上述控制头形成第二数据结构,其结构即为{00010001,00010001,00010001,00010010}。
在本示例实施例中,第三数据结构中包含多个字节,用于表示第二数据结构的总长度,比如可以通过4个字节表示第二数据结构的总长度,当然本发明并不以此为限。对于第二数据结构{00010001,00010001,00010001,00010010},其长度为4个字节,经二进制转换形成一第三数据结构{00000000,00000000,00000000,00000100};最后按照[第三数据结构][第二数据结构][第一数据结构]的排序方式形成第四数据结构,即{00000000,00000000,00000000,00000100}{00010001,0010001,00010001,00010010}{[10001,11100][1111,10010110][1111,11111010][11110,100101100]}。需要说明的是,上述数据结构中所采用的“,”和“[]”均为示意性说明,在实际存储时是按照连续序列存储的。
在本示例实施例中,为了减少数据存储占用的空间,还可以对第四数据结构进行压缩,以形成第五数据结构。所采用的压缩算法可以是snappy压缩法、LZ压缩法、Huffman法等等。如采用snappy压缩法将一第四数据结构压缩形成二进制流01010010101001010101…1010101。
进一步的,在本示例实施例中,还可以将第五数据结构进行编码形成字符结构。编码方式可以是base64编码、Unicode编码等方式,也可以是其它自定义的编码方式,例如可以通过base64编码将第五数据结构01010010101001010101…1010101转换为字符结构OWQB0AhlODQpA…mUxQaglMTdjZ。
进一步的,在本示例实施例中,可以在转换形成的字符结构前添加编码压缩版本,以便压缩编码的升级。编码压缩版本可以通过数字表示,例如:OWQB0AhlODQpA…mUxQaglMTdjZ→01OWQB0AhlODQpA…mUx Qag lMTdjZ,其中01表示编码压缩算法版本。
通过以上的编码压缩方法,提高了压缩效率,节省了数据存储空间。为了清楚的观察本发明数据压缩方法的压缩效率,现举例说明:
一时间序列共有2888个点,分别为{“2007/01/11 00:00:00”,1},{“2007/01/1100:00:30”,2},{“2007/01/11 00:01:00”,3},{“2007/01/11 00:01:30”,4}……{“2007/01/11 23:59:00”,2887},{“2007/01/11 23:59:30”,2888},每一时间序列点作为一行存入数据库所需的存储空间为1398101个字节,应用本发明的压缩方法压缩后,得到的结果如图4所示。对比可知,压缩后得到的字符串所占用的存储空间为15473个字节,相对于最初的1398101个字节,减少了1382628个字节,大大节省了存储空间,同时能够保留更多的数据;并且通过设置编码压缩版本号、控制头等结构提高了索引效率,减少了搜索数据所需的时间。
本发明中的数据压缩方法可以应用到各类需要存储数据序列的场景中,比如:云监控系统、电力监控系统、连锁超市收银系统等等。图5示出了一种云监控系统,如图5所示,云监控系统500包括采集层501、接入层502、计算存储层503、应用层504和配置管理模块505。其中:
采集层501,用于通过服务器代理和网络代理采集服务器/网络设备的监控数据;
接入层502,用于接收服务器代理和网络代理上报的数据;
计算存储层503,用于接收接入层502发送的数据,并对数据进行计算和压缩存储;
应用层504,包括Web展示界面以及告警模块;
配置管理模块505,用于对设备运行的数据进行增加、删除、修改、查询、存储、备份、恢复等操作。
在云监控系统500中,服务器代理和网络代理通过采集层501向接入层502上报心跳条数据,心跳条数据包括心跳时间和代理版本号,心跳条数据经接入层502上传至计算存储层503,计算存储层503对心跳条数据进行计算和压缩存储。心跳条数据即为一时间序列数据,可以应用本发明中的数据压缩方法进行压缩,压缩后,心跳数据存储空间较之前所占用的存储空间减少了90%,大大提高了服务器103的数据存储量,节省了数据存储所需的空间。
以下介绍本发明的装置实施例,可以用于执行本发明上述的表单验证方法。对于本发明装置实施例中未披露的细节,请参照本发明上述的表单验证方法的实施例。
图6示出了一种数据压缩装置的结构示意图。参照图6所示,数据压缩装置600可以包括:差值数据生成模块601、编码数据生成模块602、第一数据结构生成模块603、第二数据结构生成模块604、第三数据结构生成模块605和第四数据结构生成模块606。
具体地,差值数据生成模块601,用于将数据序列中的序列点转换为差值数据;编码数据生成模块602,用于将所述差值数据编码得到编码数据;第一数据结构生成模块603,用于利用所述编码数据形成第一数据结构;第二数据结构生成模块604,用于生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;第三数据结构生成模块605,用于生成表示所述第二数据结构长度的第三数据结构;第四数据结构生成模块606,用于将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
在本示例实施例中,差值数据生成模块601包括:第一差值运算单元6011,用于将所述序列点与前一序列点进行差值运算形成所述差值数据。
在本示例实施例中,所述序列点包括第一数据和第二数据;差值数据生成模块601包括:第二差值运算单元6012,用于将所述序列点中的第一数据和第二数据分别与前一序列点中的第一数据和第二数据进行差值运算形成第一数据差值和第二数据差值。
在本示例实施例中,所述序列点为时间序列点,所述第一数据为时间,所述第二数据为对应的数据信息;差值数据生成模块601包括:第三差值运算单元6013,用于将所述时间序列点中的时间及对应的数据信息分别与前一时间序列点中的时间及对应的数据信息进行差值运算形成所述差值数据。
在本示例实施例中,编码数据生成模块602包括:编码单元6021,用于将所述差值数据编码为整型数据。
在本示例实施例中,整型数据包括二进制无符号整型数据或二进制有符号整型数据。
在本示例实施例中,编码数据生成模块602包括:第一编码单元6022,用于将所述第一数据差值编码为第一编码数据;及第二编码单元6023,用于将所述第二数据差值编码为第二编码数据。
在本示例实施例中,所述控制头包括第一部分和第二部分,所述第一部分表示所述第一编码数据所占的位数,所述第二部分表示所述第二编码数据所占的位数。
在本示例实施例中,如图7所示,所述数据压缩装置600还包括:第五数据结构生成模块607,用于压缩所述第四数据结构形成第五数据结构。
在本示例实施例中,如图8所示,所述数据压缩装置600还包括:字符结构生成模块608,用于将所述第五数据结构进行编码形成字符结构。
在本示例实施例中,如图9所示,所述数据压缩装置600还包括:版本号添加模块609,用于在所述字符结构前设置压缩版本号。
应当注意,尽管在上文详细描述中提及了数据压缩装置的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本发明未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由所附的权利要求指出。
应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限。

Claims (15)

1.一种数据压缩方法,其特征在于,包括:
将数据序列中的序列点转换为差值数据;
将所述差值数据编码得到编码数据;
利用所述编码数据形成第一数据结构;
生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;
生成表示所述第二数据结构长度的第三数据结构;
将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
2.根据权利要求1所述的数据压缩方法,其特征在于,将序列点转换为差值数据包括:
将所述序列点与前一序列点进行差值运算形成所述差值数据。
3.根据权利要求1所述的数据压缩方法,其特征在于,所述序列点包括第一数据和第二数据,将序列点转换为差值数据包括:
将所述序列点中的第一数据和第二数据分别与前一序列点中的第一数据和第二数据进行差值运算形成第一数据差值和第二数据差值。
4.根据权利要求3所述的数据压缩方法,其特征在于,所述序列点为时间序列点,所述第一数据为时间,所述第二数据为对应的数据信息;将序列点转换为差值数据包括:
将所述时间序列点中的时间及对应的数据信息分别与前一时间序列点中的时间及对应的数据信息进行差值运算形成所述差值数据。
5.根据权利要求1所述的数据压缩方法,其特征在于,将所述差值数据编码得到编码数据包括:
将所述差值数据编码为整型数据。
6.根据权利要求5所述的数据压缩方法,其特征在于,所述整型数据为二进制无符号整型数据或二进制有符号整型数据。
7.根据权利要求3所述的数据压缩方法,其特征在于,将所述差值数据编码得到编码数据包括:
将所述第一数据差值编码为第一编码数据;及
将所述第二数据差值编码为第二编码数据。
8.根据权利要求7所述的数据压缩方法,其特征在于,所述控制头包括第一部分和第二部分,所述第一部分表示所述第一编码数据所占的位数,所述第二部分表示所述第二编码数据所占的位数。
9.根据权利要求1所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
压缩所述第四数据结构形成第五数据结构。
10.根据权利要求9所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
对所述第五数据结构进行编码形成字符结构。
11.根据权利要求10所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
在所述字符结构前设置压缩版本号。
12.一种数据压缩装置,其特征在于,包括:
差值数据生成模块,用于将数据序列中的序列点转换为差值数据;
编码数据生成模块,用于将所述差值数据编码得到编码数据;
第一数据结构生成模块,用于利用所述编码数据形成第一数据结构;
第二数据结构生成模块,用于生成包含多个控制头的第二数据结构,所述多个控制头具有固定长度,且分别表示所述编码数据的长度;
第三数据结构生成模块,用于生成表示所述第二数据结构长度的第三数据结构;
第四数据结构生成模块,用于将所述第一数据结构、第二数据结构和第三数据结构组合形成第四数据结构。
13.根据权利要求12所述的数据压缩装置,其特征在于,所述数据压缩装置还包括:
第五数据结构生成模块,用于压缩所述第四数据结构形成第五数据结构。
14.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1至11中任一项所述的数据压缩方法。
15.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现如权利要求1至11中任一项所述的数据压缩方法。
CN201810213159.XA 2018-03-15 2018-03-15 数据压缩方法、装置、计算机可读介质及电子设备 Active CN110198171B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810213159.XA CN110198171B (zh) 2018-03-15 2018-03-15 数据压缩方法、装置、计算机可读介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810213159.XA CN110198171B (zh) 2018-03-15 2018-03-15 数据压缩方法、装置、计算机可读介质及电子设备

Publications (2)

Publication Number Publication Date
CN110198171A true CN110198171A (zh) 2019-09-03
CN110198171B CN110198171B (zh) 2022-04-12

Family

ID=67751072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810213159.XA Active CN110198171B (zh) 2018-03-15 2018-03-15 数据压缩方法、装置、计算机可读介质及电子设备

Country Status (1)

Country Link
CN (1) CN110198171B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112054804A (zh) * 2020-09-11 2020-12-08 杭州海康威视数字技术股份有限公司 压缩数据、解压数据的方法及装置
CN113220651A (zh) * 2021-04-25 2021-08-06 暨南大学 运行数据压缩方法、装置、终端设备以及存储介质
CN116016606A (zh) * 2023-01-09 2023-04-25 安徽皖欣环境科技有限公司 一种基于智慧云的污水处理运维数据高效管理系统
WO2023071893A1 (zh) * 2021-10-29 2023-05-04 深圳智慧林网络科技有限公司 一种基于三种模式的数据压缩方法和数据解压方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19706268A1 (de) * 1997-02-18 1998-08-20 Christian Wenz Dateiformatspezifisches Packverfahren
CN1825978A (zh) * 2002-04-19 2006-08-30 精工爱普生株式会社 利用基数近似或利用差分码和转义码的帧压缩
CN102244786A (zh) * 2011-07-12 2011-11-16 深圳市万兴软件有限公司 视频数据压缩、解压缩的方法、装置及移动终端
CN102571101A (zh) * 2011-12-12 2012-07-11 海南电力技术研究院 输电线路故障行波数据压缩方法
CN103944580A (zh) * 2014-04-14 2014-07-23 天津万合星辰信息技术有限公司 一种生理体征传感器持续采集信号的无损压缩方法
CN107391463A (zh) * 2017-07-20 2017-11-24 上海金大师网络科技有限公司 一种行情数据压缩方法及系统

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19706268A1 (de) * 1997-02-18 1998-08-20 Christian Wenz Dateiformatspezifisches Packverfahren
CN1825978A (zh) * 2002-04-19 2006-08-30 精工爱普生株式会社 利用基数近似或利用差分码和转义码的帧压缩
CN102244786A (zh) * 2011-07-12 2011-11-16 深圳市万兴软件有限公司 视频数据压缩、解压缩的方法、装置及移动终端
CN102571101A (zh) * 2011-12-12 2012-07-11 海南电力技术研究院 输电线路故障行波数据压缩方法
CN103944580A (zh) * 2014-04-14 2014-07-23 天津万合星辰信息技术有限公司 一种生理体征传感器持续采集信号的无损压缩方法
CN107391463A (zh) * 2017-07-20 2017-11-24 上海金大师网络科技有限公司 一种行情数据压缩方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
谢丰: "基于网络的数字监控系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112054804A (zh) * 2020-09-11 2020-12-08 杭州海康威视数字技术股份有限公司 压缩数据、解压数据的方法及装置
CN113220651A (zh) * 2021-04-25 2021-08-06 暨南大学 运行数据压缩方法、装置、终端设备以及存储介质
CN113220651B (zh) * 2021-04-25 2024-02-09 暨南大学 运行数据压缩方法、装置、终端设备以及存储介质
WO2023071893A1 (zh) * 2021-10-29 2023-05-04 深圳智慧林网络科技有限公司 一种基于三种模式的数据压缩方法和数据解压方法
CN116016606A (zh) * 2023-01-09 2023-04-25 安徽皖欣环境科技有限公司 一种基于智慧云的污水处理运维数据高效管理系统
CN116016606B (zh) * 2023-01-09 2023-08-18 安徽省分众分析测试技术有限公司 一种基于智慧云的污水处理运维数据高效管理系统

Also Published As

Publication number Publication date
CN110198171B (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
CN110198171A (zh) 数据压缩方法、装置、计算机可读介质及电子设备
CN108920222A (zh) 一种基于规则引擎的业务处理方法和装置
CN104040899B (zh) 生成符号的代码字母表以便为与程序一起使用的字生成代码字
CN110166276A (zh) 一种帧同步异常的定位方法、装置、终端设备和介质
CN109274377A (zh) 区块链网络的数据处理方法、装置、介质及电子设备
CN108595316A (zh) 分布式应用的生命周期管理方法、管理器、设备和介质
CN109002440A (zh) 用于大数据多维分析的方法、装置及系统
CN109993179A (zh) 一种对数据进行聚类的方法和装置
CN114049072B (zh) 指标确定方法、装置、电子设备和计算机可读介质
CN106202438A (zh) 存储关联数据的方法和系统
CN113034059A (zh) 异常电力信息定位方法、装置、电子设备和计算机介质
CN109597810A (zh) 一种任务切分方法、装置、介质及电子设备
CN112035753A (zh) 推荐页面生成方法、装置、电子设备和计算机可读介质
CN113705184B (zh) 自定义报表的生成方法及装置、存储介质、电子设备
CN107562461B (zh) 特征计算系统及方法、存储介质和电子设备
CN112000667B (zh) 用于检索树形数据的方法、装置、服务器和介质
CN115330540A (zh) 一种处理交易数据的方法和装置
CN114490547A (zh) 数据压缩方法、装置、设备及介质
CN108733728A (zh) 时序数据统计方法、装置、计算机设备及可读存储介质
CN113408970A (zh) 用户信息生成方法、装置、电子设备和计算机可读介质
CN111723051A (zh) 一种基于模块的镜像重构方法和装置
CN109033467A (zh) 一种多选项目表单的压缩方法、装置、介质及电子设备
CN113283607B (zh) 用于估计量子态保真度的方法、装置、电子设备和介质
CN113011138B (zh) 信息处理方法、装置、电子设备及存储介质
CN116681345A (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