CN113630124B - 时序性整数数据的处理方法、系统、设备和介质 - Google Patents

时序性整数数据的处理方法、系统、设备和介质 Download PDF

Info

Publication number
CN113630124B
CN113630124B CN202110912867.4A CN202110912867A CN113630124B CN 113630124 B CN113630124 B CN 113630124B CN 202110912867 A CN202110912867 A CN 202110912867A CN 113630124 B CN113630124 B CN 113630124B
Authority
CN
China
Prior art keywords
array
value
integer data
compression algorithm
numerical value
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.)
Active
Application number
CN202110912867.4A
Other languages
English (en)
Other versions
CN113630124A (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.)
Ucloud Technology Co ltd
Original Assignee
Ucloud Technology 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 Ucloud Technology Co ltd filed Critical Ucloud Technology Co ltd
Priority to CN202110912867.4A priority Critical patent/CN113630124B/zh
Publication of CN113630124A publication Critical patent/CN113630124A/zh
Application granted granted Critical
Publication of CN113630124B publication Critical patent/CN113630124B/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明特别涉及时序性整数数据的处理方法、系统、设备和介质。本发明的方法包括:分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;计算第一数组的最大公约数,并且分别将第一数组中的每个数值除以最大公约数,获得第二数组;获得第二数组的数值变化率;判断数值变化率是否小于第一阈值,如果数值变化率小于第一阈值,则使用第一编码压缩算法对第二数组进行压缩,否则使用第二编码压缩算法对第二数组进行压缩。本发明适用于秒级或固定频率下小规模数据不连续场景,可以极大地提高该场景下的时序性整数数据的压缩率,从而达到节省存储空间的目的,在监控数据存储、物联网时序数据存储等领域具有广泛应用。

Description

时序性整数数据的处理方法、系统、设备和介质
技术领域
本发明特别涉及时序性整数数据的处理方法、系统、设备和介质。
背景技术
目前,通常以相对固定的频率采集或上报时序性整数数据。然而,时序性整数数据从采集、上报到传输、存储要经过许多环节,这些环节中的任何一个环节出现提前、延时或丢失等异常情况,都有一定的概率使得最终存储的数据中出现数据不连续的情形,并且在真实数据的分析过程中该情形也具有一定的占有率。现有的时序性整数数据的编码压缩和解码方法只提供了针对通用情形的解决方案,在上述特定情形中的处理效果存在较明显的劣势。
发明内容
本发明提供时序性整数数据的处理方法、系统、设备和介质,适用于秒级或固定频率下小规模数据不连续场景,可以极大地提高该场景下的时序性整数数据的压缩率,从而达到节省存储空间的目的,在监控数据存储、物联网时序数据存储等领域具有广泛应用。
本发明公开了一种时序性整数数据的处理方法,所述方法包括:
分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;
计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
获得所述第二数组的数值变化率;
判断所述数值变化率是否小于第一阈值,如果所述数值变化率小于所述第一阈值,则使用第一编码压缩算法对所述第二数组进行压缩,否则使用第二编码压缩算法对所述第二数组进行压缩。
可选地,获得所述第二数组的数值变化率包括:
分别计算所述第二数组中的相邻两个数值之间的差值;
判断所述差值是否为0,如果所述差值不为0,则计数加一,否则所述计数保持不变;
将所述计数除以所述第二数组的长度,获得所述数值变化率。
可选地,所述第一编码压缩算法包括缺位编码压缩算法,并且对所述第二数组进行压缩包括:
分别计算所述第二数组中的每个数值与其前一个数值之间的差值;
判断所述差值是否为0,如果所述差值不为0,则将该数值的位置与上一个差值不为0的数值的位置之间的差值与该数值组成键值对,并且写入第三数组,否则继续计算下一个数值与其前一个数值之间的差值;
依次对所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对进行varint编码,并且将编码结果进行流连接,获得第四数组。
可选地,所述第二编码压缩算法包括字典编码压缩算法,并且对所述第二数组进行压缩包括:
获得所述第二数组的数值分布频率字典,其中,所述数值分布频率字典指示所述第二数组中的每个不同数值的出现频率;
判断所述数值分布频率字典中的所有不同数值的数量是否小于第二阈值,如果所有不同数值的数量小于所述第二阈值,则将所述第二阈值设置为所有不同数值的数量,否则所述第二阈值保持不变;
基于所述数值分布频率字典中的每个不同数值的出现频率,将所述数值分布频率字典中的每个不同数值进行递增排序,并且保留前面所述第二阈值数量的数值,获得第五数组;
分别将所述第二数组和所述第五数组中的每个数值加上所述第二阈值,获得第六数组和第七数组;
将数值0至数值所述第二阈值减一进行递增排序,并且交换数值0和数值1的位置,获得第八数组;
基于所述第七数组和所述第八数组,获得第一映射字典,其中,所述第一映射字典指示所述第七数组和所述第八数组中的每个数值之间的映射关系;
基于所述第一映射字典,将所述第六数组中的每个数值替换为所述第八数组中的对应数值,获得第九数组;
依次对所述第七数组的长度、所述第七数组中的每个数值进行varint编码,以及对所述第九数组中的每个数值进行simple8b编码,并且将编码结果进行流连接,获得第十数组。
可选地,所述方法还包括:
对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
对所述第四数组进行varint解码,依次获得所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对;
基于所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对,获得所述第二数组;
分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
可选地,所述方法还包括:
对使用所述第二编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
对所述第十数组进行varint解码,依次获得所述第七数组的长度、所述第七数组中的每个数值,以及对剩余的所述第十数组进行simple8b解码,获得所述第九数组中的每个数值;
将数值0至数值所述第七数组的长度减一进行递增排序,并且交换数值0和数值1的位置,获得第十一数组;
基于所述第十一数组和所述第七数组,获得第二映射字典,其中,所述第二映射字典指示所述第十一数组和所述第七数组中的每个数值之间的映射关系;
基于所述第二映射字典,将所述第九数组中的每个数值替换为所述第七数组中的对应数值,获得所述第六数组;
将所述第六数组中的每个数值减去所述第七数组的长度,获得所述第二数组;
分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
可选地,所述第一阈值为10%。
可选地,所述第二阈值在8至16之间。
本发明公开了一种时序性整数数据的处理系统,所述系统包括:
第一数组获得模块,分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;
第二数组获得模块,计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
数值变化率获得模块,获得所述第二数组的数值变化率;
判断模块,判断所述数值变化率是否小于第一阈值;
第一编码压缩模块,当所述数值变化率小于所述第一阈值时,使用第一编码压缩算法对所述第二数组进行压缩;
第二编码压缩模块,当所述数值变化率大于所述第一阈值时,使用第二编码压缩算法对所述第二数组进行压缩。
可选地,所述系统还包括:
第一解码模块,对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据;
第二解码模块,对使用所述第二编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据。
本发明公开了一种计算机设备,所述计算机设备包括存储有计算机可执行指令的存储器和处理器,所述处理器被配置为执行所述指令以实施上面描述的时序性整数数据的处理方法。
本发明公开了一种使用计算机程序编码的计算机存储介质,所述计算机程序包括指令,所述指令被计算机执行以实施上面描述的时序性整数数据的处理方法。
本发明与现有技术相比,主要区别及其效果在于:
本发明考虑到时序性整数数据存在相对固定的时间间隔,并且有一定概率出现数据提前、延迟或丢失,对时序性整数数据进行预处理和分析,根据分析结果针对不同场景选择更优的编码压缩算法,其中,针对时序性整数数据缺失或抖动较小的场景,使用缺位编码压缩算法,并且针对时序性整数数据缺失或抖动较大的场景,使用字典编码压缩算法。
在使用缺位编码压缩算法时,相对于压缩数值差值,本发明针对数值的位置再次计算差值,可以进一步提高压缩率。
在使用字典编码压缩算法时,本发明将较大数值替换为较小数值,并且将最高频的数值替换为数值1,可以进一步提高压缩率。
附图说明
图1是实施根据本发明的时序性整数数据的处理方法的通用服务器的结构图;
图2是根据本发明的时序性整数数据的处理系统的结构图;
图3是根据本发明的时序性整数数据的处理方法的流程图;
图4是根据本发明的时序性整数数据的处理系统的另一结构图;
图5是根据本发明的时序性整数数据的处理方法的另一流程图;
图6是实施根据本发明的时序性整数数据的处理方法的压缩率变化曲线示意图。
具体实施方式
为使本发明实施例的目的和技术方案更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明,提供了一种时序性整数数据的处理方法的实施方式,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
本申请方式所提供的方法实施方式可以在移动终端、计算机终端或者通用服务器中实施。以通用服务器为例,图1是实施根据本发明的时序性整数数据的处理方法的通用服务器的结构图。这里的通用服务器泛指能对外提供网络、计算等服务的计算机系统,不局限于某一种特定的服务器。
如图1所示,通用服务器100可以包括一个或多个(图中仅示出一个)处理器101(处理器101可以包括但不限于中央处理器CPU、图像处理器GPU、数字信号处理器DSP、微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于与用户交互的输入输出接口102、用于存储数据的存储器103、以及用于通信功能的传输装置104。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,通用服务器100还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
输入输出接口102可以连接一个或多个显示器、触控屏等,用于显示从通用服务器100传送的数据,还可以连接键盘、触控笔、触控板和/或鼠标等,用于输入诸如,选择、创建、编辑等的用户指令。
存储器103可用于存储数据库、队列、应用软件的软件程序以及模块,如本发明实施方式中的时序性整数数据的处理方法对应的程序指令/模块,处理器101通过运行存储在存储器103内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的时序性整数数据的处理方法。存储器103可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器103可进一步包括相对于处理器101远程设置的存储器,这些远程存储器可以通过网络连接至通用服务器100。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输装置104用于经由网络接收或者发送数据,网络可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。上述的网络具体实例可包括通用服务器100的通信供应商提供的互联网。
图2是根据本发明的时序性整数数据的处理系统的结构图。图3是根据本发明的时序性整数数据的处理方法的流程图。下面结合图2和图3进行详细说明。
在步骤S301,第一数组获得模块201分别计算多个时序性整数数据(例如,N个时序性整数数据,其中,N为大于1的整数)中的相邻两个时序性整数数据之间的差值,获得第一数组S1。
其中,时序性整数数据包括以相对固定的频率采集或上报的时间戳数据,并且时间戳数据可以是连续自增的时序性整数数据,其连续自增的频率相对固定。
在存储时间戳数据时,由于其属于较大的时序性整数数据,因此转换为二进制存储所占用的空间也较大,而与压缩存储较大的时序性整数数据相比,压缩存储较小的时序性整数数据将会节省很大的占用空间。
另外,在以相对固定的频率采集或上报的场景下,时间戳数据存在相对固定的时间间隔,并且可能由于采集耗时较多或网络延迟较大等原因,会出现某些时间戳数据较标准时间戳数据提前或延迟X秒的情况,X一般在1至5之间,甚至会出现某些时间戳数据丢失的情形。在被动拉取式监控等业务模型中,该情况出现的频率较高。
因此,考虑到上述特性,在存储这种时序性整数数据时,可以对其进行预处理,分别计算N个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得N-1个差值,并且写入第一数组S1。
在步骤S302,第二数组获得模块202计算第一数组S1的最大公约数Y,并且分别将第一数组S1中的每个数值除以最大公约数Y,获得第二数组S2。
其中,如上面所述的,时间戳数据的采集间隔一般为固定间隔,例如1s、10s、60s、300s等,因此可以针对第一数组S1计算最大公约数Y,并且分别将第一数组S1中的每个数值除以最大公约数Y,获得N-1个商值,并且写入第二数组S2。
在步骤S303,数值变化率获得模块203获得第二数组S2的数值变化率Z%,其中,第二数组S2的数值变化率Z%指示时间戳数据采集或上报时的缺失或抖动的情况。
其中,获得第二数组S2的数值变化率Z%包括:
分别计算第二数组S2中的相邻两个数值之间的差值;
判断差值是否为0,如果差值不为0,则计数加一,否则计数保持不变,其中,计数的初始值为0;
将计数除以第二数组S2的长度N-1,获得数值变化率Z%。
在步骤S304,判断模块204判断数值变化率Z%是否小于第一阈值A%;其中,第一阈值A%可以是经过多次分析计算后得出的经验值;优选地,第一阈值A%为10%。
在步骤S305,当数值变化率Z%小于第一阈值A%时,第一编码压缩模块205使用第一编码压缩算法对第二数组S2进行压缩。
其中,第一编码压缩算法包括缺位编码压缩算法(例如,Findx缺位编码算法),并且对第二数组S2进行压缩包括:
分别计算第二数组S2中的每个数值与其前一个数值之间的差值;可以理解的是,在数值变化率Z%小于第一阈值A%的场景下,大部分差值应为0;
判断差值是否为0,如果差值不为0,则将该数值V的位置J(其中,第二数组S2中的初始数值First的位置为0,即,J的初始值为0,并且第二数组S2中的最末数值的位置为N-1,即,J的最末值为N-1)与上一个差值不为0的数值的位置I之间的差值J-I与该数值V组成键值对<J-I,V>,并且写入第三数组S3,否则继续计算下一个数值与其前一个数值之间的差值;其中,针对数值的位置再次计算差值,可以进一步降低连续出现数值变化或在第二数组S2末端出现数值变化所带来的压缩率的上升,并且由于数值变化率Z%小于第一阈值A%,因此第三数组S3的长度相对于第二数组S2的长度会非常小;
依次对第二数组S2的长度N-1、第二数组S2中的初始数值First以及第三数组S3中的每个键值对<J-I,V>进行varint编码,并且将编码结果进行流连接,获得第四数组S4。
其中,Varint编码方法针对数据值较小的场景,可以有效地节省压缩后的数据长度,通过将最高位设置为数据有效位的方式,大端序数据压缩方法可以使用1-10个字节来存储一个64位的整数,而对于数据较小的场景,大部分情况使用1-2个字节即可。
另外,可以在第四数组S4的头部加上固定字节的标识信息,表示第四数组S4使用了缺位编码压缩算法以及最大公约数Y和初始时序性整数数据,以用于解码时使用。
在步骤S306,当数值变化率Z%大于第一阈值A%时,第二编码压缩模块206使用第二编码压缩算法对第二数组S2进行压缩。
其中,第二编码压缩算法包括字典编码压缩算法(例如,simple8bx字典编码压缩算法),并且对第二数组S2进行压缩包括:
获得第二数组S2的数值分布频率字典map<k,count>,其中,数值分布频率字典map<k,count>指示第二数组S2中的每个不同数值k的出现频率count(即,<k1,count1>,<k2,count2>,…);
判断数值分布频率字典map<k,count>中的所有不同数值k的数量K是否小于第二阈值M;其中,第二阈值M可以是经过多次分析计算后得出的经验值;优选地,第二阈值M在8至16之间;
如果所有不同数值k的数量K小于第二阈值M,则将第二阈值M设置为所有不同数值k的数量K,否则第二阈值M保持不变;
基于数值分布频率字典map<k,count>中的每个不同数值k的出现频率count,将数值分布频率字典map<k,count>中的每个不同数值k进行递增排序,并且保留前面第二阈值M数量的数值(即,前M个数值k1~km),获得第五数组S5:[k1,k2,…,km];其中,如果前M个数值中的多个数值的出现频率相同,则可以基于对应数值进行排序,数值越大越靠前;
将第二数组S2中的每个数值加上第二阈值M,获得第六数组S6;由于第二数组S2中的每个数值都是自然数,因此第六数组S6中的所有数值均大于等于第二阈值M;
将第五数组S5中的每个数值加上第二阈值M,获得第七数组S7:[k1+M,k2+M,…,km+M],从而保证第七数组S7中的每个数值k1+M~km+M仍然与第六数组S6中的每个数值保持对应关系。
将数值0至数值第二阈值M减一(即,数值M-1)进行递增排序(即,[0,1,2,…,M-1]),并且交换数值0和数值1的位置,获得第八数组S8:[1,0,2,…,M-1];
基于第七数组S7和第八数组S8,获得第一映射字典map<k+M,N>,其中,第一映射字典map<k+M,N>指示第七数组S7和第八数组S8中的每个数值之间的映射关系(即,<k1+M,1>,<k2+M,0>,…,<km+M,M-1>);
基于第一映射字典map<k+M,N>,将第六数组S6中的每个数值替换为第八数组S8中的对应数值,获得第九数组S9;其中,由于第九数组S9中的数值较小,因此可以极大减少在simple8bx字典编码压缩算法中进行压缩的整数大小,从而提高其单次压缩所代表的整数个数,并且由于数值1在simple8bx字典编码压缩算法中的压缩效果最好,因此通过将最高频的数值替换为数值1,可以进一步提高压缩率;
依次对第七数组S7的长度M、第七数组S7中的每个数值k1+M~km+M进行varint编码,以及对第九数组S9中的每个数值进行simple8b编码,并且将编码结果进行流连接,获得第十数组S10。
另外,可以在第十数组S10的字节流头部加上固定字节的标识信息,表示第十数组S10使用了字典编码压缩算法以及初始时序性整数数据,以用于解码时使用。
本发明考虑到时序性整数数据存在相对固定的时间间隔,并且有一定概率出现数据提前、延迟或丢失,对时序性整数数据进行预处理和分析,根据分析结果针对不同场景选择更优的编码压缩算法,其中,针对时序性整数数据缺失或抖动较小的场景,使用缺位编码压缩算法,并且针对时序性整数数据缺失或抖动较大的场景,使用字典编码压缩算法。
在使用缺位编码压缩算法时,相对于压缩数值差值,本发明针对数值的位置再次计算差值,可以进一步提高压缩率。
在使用字典编码压缩算法时,本发明将较大数值替换为较小数值,并且将最高频的数值替换为数值1,可以进一步提高压缩率。
图4是根据本发明的时序性整数数据的处理系统的另一结构图。图5是根据本发明的时序性整数数据的处理方法的另一流程图。除了上面结合图2和图3进行详细说明的内容之外,下面结合图4和图5进行详细说明。
首先,可以读取压缩数组的固定字节的标识信息,确定采用了哪种编码压缩算法。如果确定采用了缺位编码压缩算法(例如,Findx缺位编码算法),则可以按照如下步骤进行解码。
在步骤S307,第一解码模块207对使用第一编码压缩算法(即,缺位编码压缩算法,例如,Findx缺位编码算法)进行压缩的第二数组S2进行解码,获得多个时序性整数数据。
其中,对第四数组S4进行varint解码,依次获得第二数组S2的长度N-1、第二数组S2中的初始数值First以及第三数组S3中的每个键值对<J-I,V>;
基于第二数组S2的长度N-1、第二数组S2中的初始数值First以及第三数组S3中的每个键值对<J-I,V>,获得第二数组S2;其中,将第二数组S2中的初始数值First设置为读取到的最近一个有效数值Last,并且针对第二数组S2中的每个待还原数值,比较该数值的位置(其中,第二数组S2中的初始数值First的位置为0,并且第二数组S2中的最末数值的位置为N-1)与第三数组S3中的初始键值对<J1-I1,V1>中的数值V1的位置J1;如果该数值的位置小于数值V1的位置J1,则将该数值还原为读取到的最近一个有效数值Last,并还原下一个数值;以此类推,如果某一数值的位置等于数值V1的位置J1,则将该数值还原为读取到的最近一个有效数值Last加上数值V1,并且将该数值Last+V1设置为读取到的最近一个有效数值Last,并还原下一个数值,比较下一个数值的位置与第三数组S3中的第二键值对<J2-I2,V2>中的数值V2的位置J2;以此类推,直到某一数值的位置大于第三数组S3中的最末键值对<Jn-In,Vn>中的数值Vn的位置Jn,将该数值以及后面剩余的数值均还原为读取到的最近一个有效数值Last。
分别将第二数组S2中的每个数值乘以最大公约数Y,获得第一数组S1;
基于初始时序性整数数据和第一数组S1,获得多个时序性整数数据。
如果确定采用了字典编码压缩算法(例如,simple8bx字典编码压缩算法),则可以按照如下步骤进行解码。
在步骤S308,第二解码模块208对使用第二编码压缩算法(即,字典编码压缩算法,例如,simple8bx字典编码压缩算法)进行压缩的第二数组S2进行解码,获得多个时序性整数数据。
其中,对第十数组S10进行varint解码,依次获得第七数组S7的长度M、第七数组S7中的每个数值k1+M~km+M,以及对剩余的第十数组S10进行simple8b解码,获得第九数组S9中的每个数值;
将数值0至数值第七数组的长度M减一(即,数值M-1)进行递增排序(即,[0,1,2,…,M-1]),并且交换数值0和数值1的位置,获得第十一数组S11:[1,0,2,…,M-1];
基于第十一数组S11和第七数组S7,获得第二映射字典map<N,k+M>,其中,第二映射字典map<N,k+M>指示第十一数组S11和第七数组S7中的每个数值之间的映射关系(即,<1,k1+M>,<0,k2+M>,…,<M-1,km+M>);
基于第二映射字典map<N,k+M>,将第九数组S9中的每个数值替换为第七数组S7中的对应数值,获得第六数组S6;
将第六数组S6中的每个数值减去第七数组的长度M,获得第二数组S2;
分别将第二数组S2中的每个数值乘以最大公约数Y,获得第一数组S1;
基于初始时序性整数数据和第一数组S1,获得多个时序性整数数据。
图6是实施根据本发明的时序性整数数据的处理方法的压缩率变化曲线示意图。下面结合图6进行详细说明。
如图6所示,横轴表示数据变化率,指示在1000个有效数据中随机产生N个随机数据(其中,N在0至300之间,当N大于300时,曲线的趋势不变,但曲线的抖动变大),从而模拟秒级数据在300s内的丢点情况或固定频率数据在300个周期内的丢点情况,纵轴表示压缩后的数据大小(单位为byte),并且三条压缩率变化曲线分别指示采用复合编码压缩算法、gorilla算法以及simple8b算法来压缩1000个有效数据的压缩率变化曲线。从图6可以看出,相对于gorilla算法以及simple8b算法,本发明的基于数据变化率的复合编码压缩算法可以提供更好的压缩效果,其中,当数据变化率小于第一阈值A%时使用缺位编码压缩算法,并且当数据变化率大于第一阈值A%时使用字典编码压缩算法。
本发明还提供一种计算机设备,计算机设备包括存储有计算机可执行指令的存储器和处理器,处理器被配置为执行指令以实施上面描述的时序性整数数据的处理方法。
本发明还提供一种使用计算机程序编码的计算机存储介质,计算机程序包括指令,指令被计算机执行以实施上面描述的时序性整数数据的处理方法。
需要说明的是,本发明的各方法实施方式均可以以软件、硬件、固件等方式实现。不管本发明是以软件、硬件、还是固件方式实现,指令代码都可以存储在任何类型的计算机可访问的存储器中(例如永久的或者可修改的,易失性的或者非易失性的,固态的或者非固态的,固定的或者可更换的介质等等)。同样,存储器可以例如是可编程阵列逻辑(Programmable Array Logic,简称“PAL”)、随机存取存储器(Random Access Memory,简称“RAM”)、可编程只读存储器(Programmable Read Only Memory,简称“PROM”)、只读存储器(Read-Only Memory,简称“ROM”)、电可擦除可编程只读存储器(Electrically ErasableProgrammable ROM,简称“EEPROM”)、磁盘、光盘、数字通用光盘(Digital Versatile Disc,简称“DVD”)等等。
需要说明的是,本发明各设备实施方式中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现,这些逻辑单元本身的物理实现方式并不是最重要的,这些逻辑单元所实现的功能的组合才是解决本发明所提出的技术问题的关键。此外,为了突出本发明的创新部分,本发明上述各设备实施方式并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,这并不表明上述设备实施方式并不存在其它的单元。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明性附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,在本专利的权利要求和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (11)

1.一种时序性整数数据的处理方法,其特征在于,所述方法包括:
分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
获得所述第二数组的数值变化率;
判断所述数值变化率是否小于第一阈值,如果所述数值变化率小于所述第一阈值,则使用第一编码压缩算法对所述第二数组进行压缩,否则使用第二编码压缩算法对所述第二数组进行压缩;
其中,获得所述第二数组的数值变化率包括:
分别计算所述第二数组中的相邻两个数值之间的差值;
判断所述差值是否为0,如果所述差值不为0,则计数加一,否则所述计数保持不变;
将所述计数除以所述第二数组的长度,获得所述数值变化率;
其中,所述第一编码压缩算法包括缺位编码压缩算法,所述第二编码压缩算法包括字典编码压缩算法。
2.根据权利要求1所述的方法,其特征在于,使用所述第一编码压缩算法对所述第二数组进行压缩包括:
分别计算所述第二数组中的每个数值与其前一个数值之间的差值;
判断所述差值是否为0,如果所述差值不为0,则将该数值的位置与上一个差值不为0的数值的位置之间的差值与该数值组成键值对,并且写入第三数组,否则继续计算下一个数值与其前一个数值之间的差值;
依次对所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对进行varint编码,并且将编码结果进行流连接,获得第四数组。
3.根据权利要求1所述的方法,其特征在于,使用所述第二编码压缩算法对所述第二数组进行压缩包括:
获得所述第二数组的数值分布频率字典,其中,所述数值分布频率字典指示所述第二数组中的每个不同数值的出现频率;
判断所述数值分布频率字典中的所有不同数值的数量是否小于第二阈值,如果所有不同数值的数量小于所述第二阈值,则将所述第二阈值设置为所有不同数值的数量,否则所述第二阈值保持不变;
基于所述数值分布频率字典中的每个不同数值的出现频率,将所述数值分布频率字典中的每个不同数值进行递增排序,并且保留前面所述第二阈值数量的数值,获得第五数组;分别将所述第二数组和所述第五数组中的每个数值加上所述第二阈值,获得第六数组和第七数组;
将数值0至数值所述第二阈值减一进行递增排序,并且交换数值0和数值1的位置,获得第八数组;
基于所述第七数组和所述第八数组,获得第一映射字典,其中,所述第一映射字典指示所述第七数组和所述第八数组中的每个数值之间的映射关系;
基于所述第一映射字典,将所述第六数组中的每个数值替换为所述第八数组中的对应数值,获得第九数组;
依次对所述第七数组的长度、所述第七数组中的每个数值进行varint编码,以及对所述第九数组中的每个数值进行simple8b编码,并且将编码结果进行流连接,获得第十数组。
4.根据权利要求2所述的方法,其特征在于,所述方法还包括:
对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
对所述第四数组进行varint解码,依次获得所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对;
基于所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对,获得所述第二数组;
分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
对使用所述第二编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
对所述第十数组进行varint解码,依次获得所述第七数组的长度、所述第七数组中的每个数值,以及对剩余的所述第十数组进行simple8b解码,获得所述第九数组中的每个数值;将数值0至数值所述第七数组的长度减一进行递增排序,并且交换数值0和数值1的位置,获得第十一数组;
基于所述第十一数组和所述第七数组,获得第二映射字典,其中,所述第二映射字典指示所述第十一数组和所述第七数组中的每个数值之间的映射关系;
基于所述第二映射字典,将所述第九数组中的每个数值替换为所述第七数组中的对应数值,获得所述第六数组;
将所述第六数组中的每个数值减去所述第七数组的长度,获得所述第二数组;
分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
6.根据权利要求1所述的方法,其特征在于,所述第一阈值为10%。
7.根据权利要求3所述的方法,其特征在于,所述第二阈值在8至16之间。
8.一种时序性整数数据的处理系统,其特征在于,所述系统包括:
第一数组获得模块,分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;
第二数组获得模块,计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
数值变化率获得模块,获得所述第二数组的数值变化率;
判断模块,判断所述数值变化率是否小于第一阈值;
第一编码压缩模块,当所述数值变化率小于所述第一阈值时,使用第一编码压缩算法对所述第二数组进行压缩;
第二编码压缩模块,当所述数值变化率大于所述第一阈值时,使用第二编码压缩算法对所述第二数组进行压缩;
其中,获得所述第二数组的数值变化率包括:
分别计算所述第二数组中的相邻两个数值之间的差值;
判断所述差值是否为0,如果所述差值不为0,则计数加一,否则所述计数保持不变;
将所述计数除以所述第二数组的长度,获得所述数值变化率;
其中,所述第一编码压缩算法包括缺位编码压缩算法,所述第二编码压缩算法包括字典编码压缩算法。
9.根据权利要求8所述的系统,其特征在于,所述系统还包括:
第一解码模块,对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据;
第二解码模块,对使用所述第二编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据。
10.一种计算机设备,其特征在于,所述计算机设备包括存储有计算机可执行指令的存储器和处理器,所述处理器被配置为执行所述指令以实施根据权利要求1至7中任一项所述的时序性整数数据的处理方法。
11.一种使用计算机程序编码的计算机存储介质,其特征在于,所述计算机程序包括指令,所述指令被计算机执行以实施根据权利要求1至7中任一项所述的时序性整数数据的处理方法。
CN202110912867.4A 2021-08-10 2021-08-10 时序性整数数据的处理方法、系统、设备和介质 Active CN113630124B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110912867.4A CN113630124B (zh) 2021-08-10 2021-08-10 时序性整数数据的处理方法、系统、设备和介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110912867.4A CN113630124B (zh) 2021-08-10 2021-08-10 时序性整数数据的处理方法、系统、设备和介质

Publications (2)

Publication Number Publication Date
CN113630124A CN113630124A (zh) 2021-11-09
CN113630124B true CN113630124B (zh) 2023-08-08

Family

ID=78383904

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110912867.4A Active CN113630124B (zh) 2021-08-10 2021-08-10 时序性整数数据的处理方法、系统、设备和介质

Country Status (1)

Country Link
CN (1) CN113630124B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117786169B (zh) * 2024-02-26 2024-08-30 北京数变科技有限公司 一种数据自适应存储方法、装置、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164819A (en) * 1991-04-03 1992-11-17 Music John D Method and system for coding and compressing color video signals
JP2004104208A (ja) * 2002-09-05 2004-04-02 Oki Data Corp 情報符号化方法及び装置
CN1613259A (zh) * 2001-11-16 2005-05-04 皇家飞利浦电子股份有限公司 用于检测内编码图像和用于从未压缩数字视频中提取内dct精度和宏块级编码参数的方法和系统
CN101061638A (zh) * 2005-07-07 2007-10-24 日本电信电话株式会社 信号编码器、信号解码器、信号编码方法、信号解码方法、程序、记录介质和信号编解码方法
CN106303524A (zh) * 2016-08-10 2017-01-04 上海交通大学 基于预测残差异常模式的视频双重压缩检测方法
CN106649026A (zh) * 2016-09-26 2017-05-10 国家电网公司北京电力医院 适用于运维自动化系统的监测数据压缩方法
JP2018201145A (ja) * 2017-05-29 2018-12-20 京セラドキュメントソリューションズ株式会社 情報処理装置および情報処理方法
CN109067405A (zh) * 2018-07-27 2018-12-21 深圳还是威健康科技有限公司 一种数据压缩的方法、装置、终端及计算机可读存储介质
CN110266316A (zh) * 2019-05-08 2019-09-20 阿里巴巴集团控股有限公司 一种数据压缩、解压方法、装置和设备
CN112673576A (zh) * 2018-09-14 2021-04-16 西门子股份公司 数据压缩方法、数据恢复方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8610604B2 (en) * 2011-11-24 2013-12-17 International Business Machines Corporation Compression algorithm incorporating a feedback loop for dynamic selection of a predefined Huffman dictionary
US8610606B2 (en) * 2011-11-24 2013-12-17 International Business Machines Corporation Compression algorithm incorporating dynamic selection of a predefined huffman dictionary
US9350384B2 (en) * 2014-09-30 2016-05-24 International Business Machines Corporation Hierarchical data compression and computation

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5164819A (en) * 1991-04-03 1992-11-17 Music John D Method and system for coding and compressing color video signals
CN1613259A (zh) * 2001-11-16 2005-05-04 皇家飞利浦电子股份有限公司 用于检测内编码图像和用于从未压缩数字视频中提取内dct精度和宏块级编码参数的方法和系统
JP2004104208A (ja) * 2002-09-05 2004-04-02 Oki Data Corp 情報符号化方法及び装置
CN101061638A (zh) * 2005-07-07 2007-10-24 日本电信电话株式会社 信号编码器、信号解码器、信号编码方法、信号解码方法、程序、记录介质和信号编解码方法
CN106303524A (zh) * 2016-08-10 2017-01-04 上海交通大学 基于预测残差异常模式的视频双重压缩检测方法
CN106649026A (zh) * 2016-09-26 2017-05-10 国家电网公司北京电力医院 适用于运维自动化系统的监测数据压缩方法
JP2018201145A (ja) * 2017-05-29 2018-12-20 京セラドキュメントソリューションズ株式会社 情報処理装置および情報処理方法
CN109067405A (zh) * 2018-07-27 2018-12-21 深圳还是威健康科技有限公司 一种数据压缩的方法、装置、终端及计算机可读存储介质
CN112673576A (zh) * 2018-09-14 2021-04-16 西门子股份公司 数据压缩方法、数据恢复方法及装置
CN110266316A (zh) * 2019-05-08 2019-09-20 阿里巴巴集团控股有限公司 一种数据压缩、解压方法、装置和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Toward Opportunistic Compression and Transmission for Private Car Trajectory Data Collection;Jie Chen等;《IEEE Sensors Journal》;第19卷(第5期);1925 - 1935 *

Also Published As

Publication number Publication date
CN113630124A (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
CN110830437B (zh) 高频业务数据的数据压缩方法、装置、设备及存储介质
CN110445860B (zh) 一种报文发送方法、装置、终端设备及存储介质
CN110198171B (zh) 数据压缩方法、装置、计算机可读介质及电子设备
CN113630124B (zh) 时序性整数数据的处理方法、系统、设备和介质
CN110825323B (zh) 浮点数数据的存储、读取方法和计算机可读存储介质
EP4280088A1 (en) Time series data trend feature extraction method based on dynamic grid division
CN110647447A (zh) 用于分布式系统的异常实例检测方法、装置、设备和介质
CN115600824A (zh) 一种碳排放的预警方法及装置、存储介质、电子设备
CN117743870A (zh) 一种基于大数据的水利数据管理系统
CN114003596B (zh) 一种基于工业系统的多源异构数据处理系统与方法
US10211851B2 (en) Method and system for compressing data from smart meter
CN113687773A (zh) 数据压缩模型训练方法及装置、存储介质
CN112994965B (zh) 一种网络异常检测方法、装置和服务器
CN111049684B (zh) 数据分析方法、装置、设备和存储介质
CN112651552A (zh) 一种基于电力大数据产业结构优化方法、装置及存储介质
CN114759929B (zh) 车联网时序数据的压缩方法、装置和电子设备
CN117254820A (zh) 数据压缩方法、装置、设备及存储介质
CN109255090B (zh) 一种web图的索引数据压缩方法
CN114547030B (zh) 多级时序数据压缩方法、装置、电子设备及存储介质
CN112702227B (zh) 心跳事件检测方法、装置、设备及计算机可读存储介质
CN114253819A (zh) 一种用户操作监控方法、装置及相关设备
CN114187057A (zh) 一种电力营销数据采集方法、装置、设备及可读存储介质
CN114490547A (zh) 数据压缩方法、装置、设备及介质
CN113590608A (zh) 一种基于数据流处理的用户用电信息即采即校方法
CN113626381A (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