时序性整数数据的处理方法、系统、设备和介质技术方案

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

【技术实现步骤摘要】
时序性整数数据的处理方法、系统、设备和介质


[0001]本专利技术特别涉及时序性整数数据的处理方法、系统、设备和介质。

技术介绍

[0002]目前,通常以相对固定的频率采集或上报时序性整数数据。然而,时序性整数数据从采集、上报到传输、存储要经过许多环节,这些环节中的任何一个环节出现提前、延时或丢失等异常情况,都有一定的概率使得最终存储的数据中出现数据不连续的情形,并且在真实数据的分析过程中该情形也具有一定的占有率。现有的时序性整数数据的编码压缩和解码方法只提供了针对通用情形的解决方案,在上述特定情形中的处理效果存在较明显的劣势。

技术实现思路

[0003]本专利技术提供时序性整数数据的处理方法、系统、设备和介质,适用于秒级或固定频率下小规模数据不连续场景,可以极大地提高该场景下的时序性整数数据的压缩率,从而达到节省存储空间的目的,在监控数据存储、物联网时序数据存储等领域具有广泛应用。
[0004]本专利技术公开了一种时序性整数数据的处理方法,所述方法包括:
[0005]分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;
[0006]计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
[0007]获得所述第二数组的数值变化率;
[0008]判断所述数值变化率是否小于第一阈值,如果所述数值变化率小于所述第一阈值,则使用第一编码压缩算法对所述第二数组进行压缩,否则使用第二编码压缩算法对所述第二数组进行压缩。
[0009]可选地,获得所述第二数组的数值变化率包括:
[0010]分别计算所述第二数组中的相邻两个数值之间的差值;
[0011]判断所述差值是否为0,如果所述差值不为0,则计数加一,否则所述计数保持不变;
[0012]将所述计数除以所述第二数组的长度,获得所述数值变化率。
[0013]可选地,所述第一编码压缩算法包括缺位编码压缩算法,并且对所述第二数组进行压缩包括:
[0014]分别计算所述第二数组中的每个数值与其前一个数值之间的差值;
[0015]判断所述差值是否为0,如果所述差值不为0,则将该数值的位置与上一个差值不为0的数值的位置之间的差值与该数值组成键值对,并且写入第三数组,否则继续计算下一个数值与其前一个数值之间的差值;
[0016]依次对所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的
每个键值对进行varint编码,并且将编码结果进行流连接,获得第四数组。
[0017]可选地,所述第二编码压缩算法包括字典编码压缩算法,并且对所述第二数组进行压缩包括:
[0018]获得所述第二数组的数值分布频率字典,其中,所述数值分布频率字典指示所述第二数组中的每个不同数值的出现频率;
[0019]判断所述数值分布频率字典中的所有不同数值的数量是否小于第二阈值,如果所有不同数值的数量小于所述第二阈值,则将所述第二阈值设置为所有不同数值的数量,否则所述第二阈值保持不变;
[0020]基于所述数值分布频率字典中的每个不同数值的出现频率,将所述数值分布频率字典中的每个不同数值进行递增排序,并且保留前面所述第二阈值数量的数值,获得第五数组;
[0021]分别将所述第二数组和所述第五数组中的每个数值加上所述第二阈值,获得第六数组和第七数组;
[0022]将数值0至数值所述第二阈值减一进行递增排序,并且交换数值0和数值1的位置,获得第八数组;
[0023]基于所述第七数组和所述第八数组,获得第一映射字典,其中,所述第一映射字典指示所述第七数组和所述第八数组中的每个数值之间的映射关系;
[0024]基于所述第一映射字典,将所述第六数组中的每个数值替换为所述第八数组中的对应数值,获得第九数组;
[0025]依次对所述第七数组的长度、所述第七数组中的每个数值进行varint编码,以及对所述第九数组中的每个数值进行simple8b编码,并且将编码结果进行流连接,获得第十数组。
[0026]可选地,所述方法还包括:
[0027]对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
[0028]对所述第四数组进行varint解码,依次获得所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对;
[0029]基于所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对,获得所述第二数组;
[0030]分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
[0031]基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
[0032]可选地,所述方法还包括:
[0033]对使用所述第二编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,
[0034]对所述第十数组进行varint解码,依次获得所述第七数组的长度、所述第七数组中的每个数值,以及对剩余的所述第十数组进行simple8b解码,获得所述第九数组中的每个数值;
[0035]将数值0至数值所述第七数组的长度减一进行递增排序,并且交换数值0和数值1的位置,获得第十一数组;
[0036]基于所述第十一数组和所述第七数组,获得第二映射字典,其中,所述第二映射字典指示所述第十一数组和所述第七数组中的每个数值之间的映射关系;
[0037]基于所述第二映射字典,将所述第九数组中的每个数值替换为所述第七数组中的对应数值,获得所述第六数组;
[0038]将所述第六数组中的每个数值减去所述第七数组的长度,获得所述第二数组;
[0039]分别将所述第二数组中的每个数值乘以所述最大公约数,获得所述第一数组;
[0040]基于初始时序性整数数据和所述第一数组,获得所述多个时序性整数数据。
[0041]可选地,所述第一阈值为10%。
[0042]可选地,所述第二阈值在8至16之间。
[0043]本专利技术公开了一种时序性整数数据的处理系统,所述系统包括:
[0044]第一数组获得模块,分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;
[0045]第二数组获得模块,计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;
[0046]数值变化率获得模块,获得所述第二数组的数值变化率;
[0047]判断模块,判断所述数值变化率是否小于第一阈值;
[0048]第一编码压缩模块,当所述数值变化率小于所述第一阈值时,使用第一编码压缩算法对所述第二数组进行压缩;
[0049]第二编码压缩模块,当所述数值变化率大于所述第一阈值时,使用第二编码压缩算法对所述第二数组进行压缩。
[0050]可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种时序性整数数据的处理方法,其特征在于,所述方法包括:分别计算多个时序性整数数据中的相邻两个时序性整数数据之间的差值,获得第一数组;计算所述第一数组的最大公约数,并且分别将所述第一数组中的每个数值除以所述最大公约数,获得第二数组;获得所述第二数组的数值变化率;判断所述数值变化率是否小于第一阈值,如果所述数值变化率小于所述第一阈值,则使用第一编码压缩算法对所述第二数组进行压缩,否则使用第二编码压缩算法对所述第二数组进行压缩。2.根据权利要求1所述的方法,其特征在于,获得所述第二数组的数值变化率包括:分别计算所述第二数组中的相邻两个数值之间的差值;判断所述差值是否为0,如果所述差值不为0,则计数加一,否则所述计数保持不变;将所述计数除以所述第二数组的长度,获得所述数值变化率。3.根据权利要求1或2所述的方法,其特征在于,所述第一编码压缩算法包括缺位编码压缩算法,并且对所述第二数组进行压缩包括:分别计算所述第二数组中的每个数值与其前一个数值之间的差值;判断所述差值是否为0,如果所述差值不为0,则将该数值的位置与上一个差值不为0的数值的位置之间的差值与该数值组成键值对,并且写入第三数组,否则继续计算下一个数值与其前一个数值之间的差值;依次对所述第二数组的长度、所述第二数组中的初始数值以及所述第三数组中的每个键值对进行varint编码,并且将编码结果进行流连接,获得第四数组。4.根据权利要求1或2所述的方法,其特征在于,所述第二编码压缩算法包括字典编码压缩算法,并且对所述第二数组进行压缩包括:获得所述第二数组的数值分布频率字典,其中,所述数值分布频率字典指示所述第二数组中的每个不同数值的出现频率;判断所述数值分布频率字典中的所有不同数值的数量是否小于第二阈值,如果所有不同数值的数量小于所述第二阈值,则将所述第二阈值设置为所有不同数值的数量,否则所述第二阈值保持不变;基于所述数值分布频率字典中的每个不同数值的出现频率,将所述数值分布频率字典中的每个不同数值进行递增排序,并且保留前面所述第二阈值数量的数值,获得第五数组;分别将所述第二数组和所述第五数组中的每个数值加上所述第二阈值,获得第六数组和第七数组;将数值0至数值所述第二阈值减一进行递增排序,并且交换数值0和数值1的位置,获得第八数组;基于所述第七数组和所述第八数组,获得第一映射字典,其中,所述第一映射字典指示所述第七数组和所述第八数组中的每个数值之间的映射关系;基于所述第一映射字典,将所述第六数组中的每个数值替换为所述第八数组中的对应数值,获得第九数组;依次对所述第七数组的长度、所述第七数组中的每个数值进行varint编码,以及对所
述第九数组中的每个数值进行simple8b编码,并且将编码结果进行流连接,获得第十数组。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:对使用所述第一编码压缩算法进行压缩的所述第二数组进行解码,获得所述多个时序性整数数据,并且其中,对所述第四数组进行varint解码...

【专利技术属性】
技术研发人员:赵新宇
申请(专利权)人:优刻得科技股份有限公司
类型:发明
国别省市:

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

1