CN111061722B - 一种数据压缩、数据解压缩方法、装置及设备 - Google Patents
一种数据压缩、数据解压缩方法、装置及设备 Download PDFInfo
- Publication number
- CN111061722B CN111061722B CN201811204206.0A CN201811204206A CN111061722B CN 111061722 B CN111061722 B CN 111061722B CN 201811204206 A CN201811204206 A CN 201811204206A CN 111061722 B CN111061722 B CN 111061722B
- Authority
- CN
- China
- Prior art keywords
- data
- target
- compression format
- time
- determining
- 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
Links
Images
Landscapes
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本申请提供一种数据压缩、数据解压缩方法、装置及设备,该方法包括:从压缩格式集合的多个压缩格式中选择目标压缩格式;根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。通过本申请的技术方案,可以自适应的匹配数据特点,压缩性能较好,压缩率较高,适合高效并行压缩。
Description
技术领域
本申请涉及通信技术领域,尤其是涉及一种数据压缩、数据解压缩方法、装置及设备。
背景技术
随着互联网技术的发展,时间序列数据(time series data)被广泛使用,时间序列数据是一串按照时间维度索引的数据,是不同时间收集的数据,用于描述现象随时间的变化情况,简单的说,就是被测量主体在一个时间范围内的每个时刻的测量值。例如,1个小时包括3600个时刻,每个时刻的时间序列数据是:8字节的整型时间戳数据、8字节的double(双精度)型指标数据。
在实际应用中,可以使用TSDB(Time Serious Data Base,时序数据库)来存储时间序列数据,由于时间序列数据的数据量非常大,而TSDB的存储空间有限,因此,需要对时间序列数据进行压缩,并在TSDB中存储压缩后的时间序列数据。但是,目前的数据压缩方式,其压缩性能较差,压缩率较低。
发明内容
本申请提供一种数据压缩方法,所述方法包括:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
本申请提供一种数据解压缩方法,所述方法包括:
从时序数据库中读取目标数据;
从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
根据所述解压缩数据确定时间序列数据。
本申请提供一种数据压缩方法,所述方法包括:
获取目标压缩格式;
根据所述目标压缩格式对待压缩数据进行压缩,得到压缩数据;
在目标数据中添加所述目标压缩格式和所述压缩数据;
在数据库中存储所述目标数据。
本申请提供一种数据压缩装置,所述装置包括:
选择模块,用于从压缩格式集合的多个压缩格式中选择目标压缩格式;
获取模块,用于根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
本申请提供一种数据解压缩装置,所述装置包括:
读取模块,用于从时序数据库中读取目标数据;
获取模块,用于从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
确定模块,用于根据所述解压缩数据确定时间序列数据。
本申请提供一种数据压缩设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
本申请提供一种数据解压缩设备,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从时序数据库中读取目标数据;
从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
根据所述解压缩数据确定时间序列数据。
基于上述技术方案,本申请实施例中,可以从压缩格式集合的多个压缩格式中选择目标压缩格式,并根据目标压缩格式对时间序列数据进行压缩,得到压缩数据;基于上述方式,可以采用目标压缩格式对时间序列数据进行压缩,自适应的匹配数据特点,其压缩性能较好,压缩率较高,适合于高效并行压缩。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其它的附图。
图1是本申请一种实施方式中的数据压缩方法的流程图;
图2是本申请一种实施方式中的数据解压缩方法的流程图;
图3A-图3I是本申请一种实施方式中的数据压缩过程的示意图;
图4是本申请一种实施方式中的数据压缩装置的结构图;
图5是本申请一种实施方式中的数据解压缩装置的结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种数据压缩方法,该方法可以用于实现时间序列数据的压缩,参见图1所示,为该方法的流程示意图,该方法可以包括:
步骤101,从压缩格式集合的多个压缩格式中选择目标压缩格式。
具体的,可以根据压缩格式集合的多个压缩格式,分别对时间序列数据进行预压缩,得到每个压缩格式对应的压缩性能,并从得到的每个压缩性能中确定最优压缩性能;然后,将最优压缩性能对应的压缩格式确定为目标压缩格式。
例如,假设压缩格式集合可以包括压缩格式A和压缩格式B,则可以根据压缩格式A对时间序列数据进行预压缩,得到压缩性能A(如压缩率等),并可以根据压缩格式B对时间序列数据进行预压缩,得到压缩性能B。然后,可以从压缩性能A和压缩性能B中确定最优压缩性能,假设最优压缩性能为压缩性能A,这样,可以将压缩性能A对应的压缩格式A确定为目标压缩格式。
在一个例子中,上述时间序列数据可以包括时间戳数据和指标数据,上述压缩格式集合可以包括多个时间压缩格式和多个指标压缩格式;基于此,从压缩格式集合的多个压缩格式中选择目标压缩格式,可以包括但不限于:
根据该压缩格式集合的多个时间压缩格式,分别对时间戳数据进行预压缩,得到每个时间压缩格式对应的压缩性能,并从得到的每个压缩性能中确定最优压缩性能,并将最优压缩性能对应的时间压缩格式确定为目标时间压缩格式。
根据该压缩格式集合的多个指标压缩格式,分别对该指标数据进行预压缩,得到每个指标压缩格式对应的压缩性能,并从得到的每个压缩性能中确定最优压缩性能,并将最优压缩性能对应的指标压缩格式确定为目标指标压缩格式。
步骤102,根据该目标压缩格式对时间序列数据进行压缩,得到压缩数据。
情况一、时间序列数据可以包括时间戳数据,目标压缩格式可以包括目标时间压缩格式;基于此,根据目标压缩格式对时间序列数据进行压缩,得到压缩数据,可以包括:根据时间戳数据确定与该时间戳数据对应的参考值;若该参考值不为第一标识(如0),则根据该目标时间压缩格式对该参考值进行压缩,得到编码值,然后,确定压缩数据包括第一数值(如1)和该编码值。
此外,在根据时间戳数据确定与该时间戳数据对应的参考值之后,若该参考值为第一标识(如0),则还可以确定压缩数据包括第二数值(如0)。
此外,在根据时间戳数据确定与该时间戳数据对应的参考值之后,若该参考值不为第一标识,则可以确定压缩数据包括第一数值(如1)和该参考值。
情况二、时间序列数据可以包括指标数据,目标压缩格式可以包括目标指标压缩格式;基于此,根据目标压缩格式对时间序列数据进行压缩,得到压缩数据,可以包括:根据指标数据确定与该指标数据对应的参考值;若该参考值不为第二标识(如0),则可以根据该目标指标压缩格式对该参考值进行压缩,得到编码值,然后,可以确定压缩数据包括第三数值(如1)和该编码值。
其中,根据指标数据确定与该指标数据对应的参考值,可以包括:确定参数值转型方式;然后,基于该参数值转型方式,根据当前时刻的指标数据以及当前时刻之前的指标数据,确定与该当前时刻的指标数据对应的参考值。
此外,在根据指标数据确定与该指标数据对应的参考值之后,若该参考值为第二标识(如0),则还可以确定压缩数据包括第四数值(如0)。
此外,在根据指标数据确定与该指标数据对应的参考值之后,若该参考值不为第二标识,则还可以确定压缩数据包括第三数值(如1)和该参考值。
在上述实施例中,若存在多个时间序列数据,则根据该目标压缩格式对时间序列数据进行压缩,得到压缩数据,可以包括但不限于:采用并行方式,根据该目标压缩格式对多个时间序列数据进行压缩,得到压缩数据。
在一个例子中,在得到压缩数据之后,还可以包括以下步骤(图中未示出):
步骤103,在目标数据中添加该目标压缩格式和该压缩数据。
其中,针对上述情况一,可以在目标数据中添加目标时间压缩格式的模式信息和该压缩数据;该模式信息是未经过编码的数值,用于表示目标时间压缩格式。针对上述情况二,可以在目标数据中添加目标指标压缩格式的模式信息和该压缩数据;该模式信息是经过编码的数值,用于表示目标指标压缩格式。
在一个例子中,针对情况二,在目标数据中添加目标指标压缩格式的模式信息和该压缩数据之前,还可以采用特定编码方式对该目标指标压缩格式进行编码,得到该模式信息;这样,就可以在所述目标数据中添加该模式信息。
进一步的,针对情况二,还可以在该目标数据中添加该特定编码方式。
在一个例子中,该特定编码方式可以包括但不限于:定长编码方式或者变长编码方式,该变长编码方式可以包括但不限于Huffman编码方式。
在一个例子中,还可以在所述目标数据中添加参数值转型方式。
在一个例子中,还可以在所述目标数据中添加第一个时间序列数据。
在一个例子中,还可以将目标数据拆分成多个数据分段;其中,针对多个数据分段中的每个数据分段,该数据分段可以对应一个或者多个时间序列数据的压缩数据;然后,在目标数据中添加多个数据分段分别对应的分段信息。
步骤104,在时序数据库(如TSDB等)中存储该目标数据。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,本申请实施例中,可以从压缩格式集合的多个压缩格式中选择目标压缩格式,并根据目标压缩格式对时间序列数据进行压缩,得到压缩数据;基于上述方式,可以采用目标压缩格式对时间序列数据进行压缩,自适应的匹配数据特点,其压缩性能较好,压缩率较高,适合于高效并行压缩。
本申请实施例中提出一种数据解压缩方法,该方法可以用于实现时间序列数据的解压缩,参见图2所示,为该方法的流程示意图,该方法可以包括:
步骤201,从时序数据库(如TSDB等)中读取目标数据。
步骤202,从该目标数据中获取目标压缩格式和压缩数据。
步骤203,根据该目标压缩格式对该压缩数据进行解压缩,得到解压缩数据。
步骤204,根据该解压缩数据确定时间序列数据。
情况一、时间序列数据可以包括时间戳数据,目标压缩格式可以包括目标时间压缩格式;基于此,根据该目标压缩格式对压缩数据进行解压缩,得到解压缩数据,可以包括:若从压缩数据中解析出第一数值(如1)和编码值,则根据该目标时间压缩格式对该压缩数据中的编码值进行解压缩,得到解压缩数据。
根据该解压缩数据确定时间序列数据,可以包括:根据该解压缩数据确定与时间戳数据对应的参考值;根据该参考值确定时间序列数据中的时间戳数据。
在一个例子中,若从该压缩数据中解析出第二数值(如0),则还可以根据当前时刻之前的时间戳数据,确定当前时刻的时间戳数据,并根据当前时刻的时间戳数据确定时间序列数据。或者,若从该压缩数据中解析出第一数值(如1)和参考值,则还可以根据当前时刻之前的时间戳数据和该参考值,确定当前时刻的时间戳数据,并根据当前时刻的时间戳数据确定时间序列数据。
在一个例子中,从该目标数据中获取目标压缩格式和压缩数据,可以包括但不限于:可以从该目标数据中获取目标时间压缩格式的模式信息和压缩数据;其中,该模式信息可以是未经过编码的数值,用于表示目标时间压缩格式;进一步的,可以根据该模式信息确定该目标时间压缩格式。
情况二、时间序列数据可以包括指标数据,目标压缩格式可以包括目标指标压缩格式;基于此,根据该目标压缩格式对该压缩数据进行解压缩,得到解压缩数据,可以包括:若从压缩数据中解析出第三数值(如1)和编码值,则根据该目标指标压缩格式对该压缩数据中的编码值进行解压缩,得到解压缩数据。
根据该解压缩数据确定时间序列数据,可以包括:根据该解压缩数据确定与指标数据对应的参考值;根据该参考值确定时间序列数据中的指标数据。
其中,根据该参考值确定时间序列数据中的指标数据,可以包括但不限于:从所述目标数据中获取参数值转型方式;然后,基于该参数值转型方式,根据当前时刻之前的指标数据和参考值,确定所述当前时刻的指标数据。
在一个例子中,若从该压缩数据中解析出第四数值(如0),则还可以根据当前时刻之前的指标数据,确定当前时刻的指标数据,并根据当前时刻的指标数据确定时间序列数据。或者,若从该压缩数据中解析出第三数值(如1)和参考值,则还可以根据当前时刻之前的指标数据和该参考值,确定当前时刻的指标数据;然后,可以根据当前时刻的指标数据确定时间序列数据。
在一个例子中,从该目标数据中获取目标压缩格式和压缩数据,可以包括但不限于:可以从该目标数据中获取目标指标压缩格式的模式信息和压缩数据;其中,该模式信息可以是经过编码的数值,用于表示目标指标压缩格式;进一步的,可以根据该模式信息确定该目标指标压缩格式。其中,根据该模式信息确定该目标指标压缩格式,可以包括但不限于:从所述目标数据中获取特定编码方式,并采用该特定编码方式对该模式信息进行解码,得到该目标指标压缩格式;其中,该特定编码方式可以包括定长编码方式或者变长编码方式。
在一个例子中,根据该目标压缩格式对该压缩数据进行解压缩,得到解压缩数据,可以包括但不限于:从该目标数据中获取分段信息,根据该分段信息将该目标数据划分为多个数据分段,每个数据分段对应一个或者多个时间序列数据的压缩数据;然后,根据该目标压缩格式对多个数据分段进行解压缩,得到解压缩数据。在根据该目标压缩格式对多个数据分段进行解压缩,得到解压缩数据时,还可以采用并行方式对多个数据分段进行解压缩,得到解压缩数据。
在一个例子中,上述执行顺序只是为了方便描述给出的一个示例,在实际应用中,还可以改变步骤之间的执行顺序,对此执行顺序不做限制。在其它实施例中,并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其它实施例中可能被分解为多个步骤进行描述;本说明书中所描述的多个步骤,在其它实施例也可能被合并为单个步骤进行描述。
基于上述技术方案,可以从目标数据中获取目标压缩格式和压缩数据,根据该目标压缩格式对压缩数据进行解压缩,得到解压缩数据,自适应的匹配数据特点,其解压缩性能较好,解压缩率较高,适合于高效并行解压缩。
本申请实施例中还提出一种数据压缩方法,该方法可以包括:获取目标压缩格式;根据该目标压缩格式对待压缩数据进行压缩,得到压缩数据;在目标数据中添加该目标压缩格式和该压缩数据;在数据库中存储该目标数据。
在一个示例中,该目标压缩格式可以是从压缩格式集合的多个压缩格式中选择的,也可以是预先配置的压缩格式,对此不做限制。此外,该待压缩数据可以是时间序列数据,也可以是其它类型的数据,对此不做限制。
当从压缩格式集合的多个压缩格式中选择目标压缩格式,且待压缩数据是时间序列数据时,其实现流程参见图1所示。当预先配置目标压缩格式,且待压缩数据是其它类型的数据时,其实现流程与图1类似,在此不再赘述。
以下结合具体应用场景,对上述方案进行说明。本应用场景中,时间序列数据包括时间戳数据和指标数据,如8字节的整型时间戳数据、8字节的double型指标数据(如性能指标),对此时间戳数据、指标数据的类型均不做限制。
实际应用中,存在大量待压缩的时间序列数据,如1小时包括3600个时刻,每个时刻对应一个时间序列数据,这样,每个小时存在3600个时间序列数据,每个时间序列数据为16字节,即8字节的时间戳数据和8字节的指标数据。
为了方便描述,以时刻1的时间序列数据A、时刻2的时间序列数据B、时刻3的时间序列数据C为例,在实际应用中,时间序列数据远远多于三个。时间序列数据A包括时间戳数据A1和指标数据A2,时间序列数据B包括时间戳数据B1和指标数据B2,时间序列数据C包括时间戳数据C1和指标数据C2。
在一个例子中,可以预先配置压缩格式集合,该压缩格式集合可以包括多个时间压缩格式和多个指标压缩格式。例如,该时间压缩格式可以包括5比特的mask(掩码)压缩格式、5比特的trailing-zero(尾随零)压缩格式等,当然,上述时间压缩格式只是示例,对此时间压缩格式不做限制。该指标压缩格式可以包括5比特的mask压缩格式、6比特的mask压缩格式、5比特的trailing-zero压缩格式等,当然,上述指标压缩格式只是示例,对此指标压缩格式不做限制。
假设时间压缩格式为5比特的mask压缩格式、5比特的trailing-zero压缩格式,则可以根据5比特的mask压缩格式对时间戳数据(如时间戳数据A1、或时间戳数据B1、或时间戳数据C1)进行预压缩,对此压缩方式不做限制,得到压缩性能A(如压缩后数据与时间戳数据的比例);可以根据5比特的trailing-zero压缩格式对该时间戳数据进行预压缩,得到压缩性能B。进一步的,若压缩性能A是最优压缩性能,则目标时间压缩格式是5比特的mask压缩格式;若压缩性能B是最优压缩性能,则目标时间压缩格式是5比特的trailing-zero压缩格式。
假设指标压缩格式为5比特的mask压缩格式、6比特的mask压缩格式、5比特的trailing-zero压缩格式,根据5比特的mask压缩格式对指标数据(如指标数据A2、或指标数据B2、或指标数据C2)进行预压缩,对此压缩方式不做限制,得到压缩性能C(如压缩后数据与指标数据的比例);根据6比特的mask压缩格式对该指标数据进行预压缩,得到压缩性能D;根据5比特的trailing-zero压缩格式对该指标数据进行预压缩,得到压缩性能E。进一步的,若压缩性能C是最优压缩性能,则目标指标压缩格式是5比特的mask压缩格式;若压缩性能D是最优压缩性能,则目标指标压缩格式是6比特的mask压缩格式;若压缩性能E是最优压缩性能,则目标指标压缩格式是5比特的trailing-zero压缩格式。
参见图3A所示,为需要存储到时序数据库的目标数据的格式示意图。其中,该目标数据可以包括但不限于:控制信息区域(如control)、主要部分大小区域(如majorpartsize)、第一点区域(如firstpoint)、若干个时间区别区域(如diffmaskTB)、若干个指标区别区域(如diffmaskVB)、若干个时间压缩区域(如compressTB)、若干个指标压缩区域(如compressVB)、分段信息区域(如segmentinfo);当然,上述各区域只是一个示例,对此不做限制,例如,该目标数据还可以包括其它区域,该目标数据也可以包括上述区域的部分区域。时间区别区域1、指标区别区域1、时间压缩区域1、指标压缩区域1,记录第1-32个时间序列数据的相关信息;时间区别区域2、指标区别区域2、时间压缩区域2、指标压缩区域2,记录第33-64个时间序列数据的相关信息,以此类推。
第一、对时间序列数据A的处理,具体的,由于时间序列数据A是第一个时间序列数据,因此,可以将时间戳数据A1和指标数据A2添加到第一点区域,参见图3B所示,为将时间戳数据A1和指标数据A2添加到目标数据的示例。
第二、对时间序列数据B的处理,例如,可以根据目标时间压缩格式对时间戳数据B1进行压缩,并根据目标指标压缩格式对指标数据B2进行压缩。
针对时间戳数据B1的压缩过程,可以包括:根据时间戳数据B1确定参考值,例如,可以采用如下公式确定该参考值,R=Tx-Tx-1-(Tx-1-Tx-2);在该公式中,R可以为参考值,Tx可以为当前时刻的时间戳数据B1,Tx-1可以为当前时刻的上一时刻的时间戳数据A1,Tx-2可以为当前时刻的上一时刻的上一时刻的时间戳数据,由于当前没有该时间戳数据,因此,可以将Tx-2确定为默认值或者时间戳数据A1。当然,上述公式只是确定参考值的一个示例,对此不做限制。显然,由于Tx、Tx-1、Tx-2均为已知,因此,可以利用上述公式确定出参考值。
若该参考值R为0,则将时间戳数据B1压缩成数值0,即压缩数据包括数值0,并将压缩数据0记录到时间区别区域1,参见图3C所示。
若该参考值R不为0,则可以将时间戳数据B1压缩成数值1和参考值R,即压缩数据可以包括数值1和参考值R,并可以确定参考值R的模式信息。
例如,若参考值R大于等于-4,且小于等于4,则确定参考值R的模式信息是模式0,并通过“1”表示模式0,这样,可以将数值1记录到时间区别区域1,将1和参考值R记录到时间压缩区域1,“1”表示模式0,而模式0表示1后面的4个比特是参考值R,参见图3D所示,以参考值R为0011为例。
若参考值R大于等于-32,且小于等于32,且不满足“参考值R大于等于-4,且小于等于4”,则可以确定参考值R的模式信息是模式1,并通过“01”表示模式1,这样,可以将数值1记录到时间区别区域1,将01和参考值R记录到时间压缩区域1,“01”表示模式1,而模式1表示01后面的8个比特是参考值R。
在一个例子中,还可以采用如下方式:根据目标时间压缩格式对参考值R进行压缩,得到编码值T,即将时间戳数据B1压缩成数值1和编码值T,压缩数据包括数值1和编码值T。此外,可以确定模式信息;例如,若目标时间压缩格式是5比特的mask压缩格式,则采用5比特的mask压缩格式将参考值R压缩成编码值T,并可以确定模式信息是模式2(预先配置模式2与5比特的mask压缩格式的对应关系),并通过未经过编码的数值“001”表示模式2,这样,可以将数值1记录到时间区别区域1,将001和编码值T记录到时间压缩区域1,“001”表示模式2,即编码值T是经过5比特的mask压缩格式进行编码。
此外,若目标时间压缩格式是5比特的trailing-zero压缩格式,则可以采用5比特的trailing-zero压缩格式将参考值R压缩成编码值T,并可以确定模式信息是模式3,并通过未经过编码的数值“000”表示模式3,这样,可以将数值1记录到时间区别区域1,将000和编码值T记录到时间压缩区域1,“000”表示模式3,即编码值T是经过5比特的trailing-zero压缩格式进行编码。
其中,若不满足“参考值R大于等于-32,且小于等于32”,则可以采用“根据目标时间压缩格式对参考值R进行压缩,得到编码值T”的实现方式,即使满足“参考值R大于等于-32,且小于等于32”,也可以采用上述方式。
针对指标数据B2的压缩过程,可以包括:根据指标数据B2确定参考值S,若该参考值S为0,则可以将指标数据B2压缩成数值0,即压缩数据可以包括数值0,并将压缩数据0记录到指标区别区域1,参见图3E所示。
若该参考值S不为0,则可以确定特定编码方式,该特定编码方式可以为定长编码方式或者变长编码方式,该变长编码方式可以为Huffman编码方式。
其中,若采用Huffman编码方式,则:可以将指标数据B2压缩成数值1和参考值S,即压缩数据包括数值1和参考值S,并确定参考值S的模式信息。
例如,若参考值S大于等于-64,且小于等于64,则可以确定参考值S的模式信息是模式0,并通过“1”表示模式0。这样,可以将数值1记录到指标区别区域1,将1和参考值S记录到指标压缩区域1,“1”表示模式0,而模式0表示后面是参考值S,参见图3F所示,以参考值S是11000000为例。
在一个例子中,还可以采用如下方式:根据目标指标压缩格式对参考值S进行压缩,得到编码值W,即将指标数据B2压缩成数值1和编码值W,压缩数据包括数值1和编码值W。此外,可以确定模式信息;例如,若目标指标压缩格式是6比特的mask压缩格式,则采用6比特的mask压缩格式将参考值S压缩成编码值W,并确定模式信息是模式1,并通过数值“01”表示模式1,这样,将数值1记录到指标区别区域1,将01和编码值W记录到指标压缩区域1,“01”表示模式1,即编码值W是经过6比特的mask压缩格式进行编码。
若目标指标压缩格式是5比特的mask压缩格式,则可以采用5比特的mask压缩格式将参考值S压缩成编码值W,并可以确定模式信息是模式2,并通过数值“001”表示模式2,将数值1记录到指标区别区域1,将001和编码值W记录到指标压缩区域1。若目标指标压缩格式是5比特的trailing-zero压缩格式,则可以采用5比特的trailing-zero压缩格式将参考值S压缩成编码值W,并可以确定模式信息是模式3,并通过数值“000”表示模式3,这样,可以将数值1记录到指标区别区域1,将000和编码值W记录到指标压缩区域1。
若采用定长编码方式,则:根据目标指标压缩格式对参考值S进行压缩,得到编码值W,即将指标数据B2压缩成数值1和编码值W,压缩数据包括数值1和编码值W。此外,确定模式信息;例如,若目标指标压缩格式是6比特的mask压缩格式,则采用6比特的mask压缩格式将参考值S压缩成编码值W,并确定模式信息是模式1,并通过数值“00”表示模式1,将数值1记录到指标区别区域1,将00和编码值W记录到指标压缩区域1。若目标指标压缩格式是5比特的mask压缩格式,则采用5比特的mask压缩格式将参考值S压缩成编码值W,并确定模式信息是模式2,并通过数值“01”表示模式2,将数值1记录到指标区别区域1,将01和编码值W记录到指标压缩区域1。若目标指标压缩格式是5比特的trailing-zero压缩格式,则采用5比特的trailing-zero压缩格式将参考值S压缩成编码值W,并确定模式信息是模式3,并通过数值“10”表示模式3,将数值1记录到指标区别区域1,将10和编码值W记录到指标压缩区域1。
在上述实施例中,Huffman编码方式与定长编码方式的区别可以在于:针对目标指标压缩格式的不同模式,Huffman编码方式中的模式信息可以是变长的,而该定长编码方式中的模式信息是定长的。例如,6比特的mask压缩格式对应模式1,通过Huffman编码方式将模式1编码成模式信息“01”,5比特的mask压缩格式对应模式2,通过Huffman编码方式将模式2编码成模式信息“001”,显然,上述模式1和模式2对应的模式信息是不同的长度。又例如,6比特的mask压缩格式对应模式1,通过定长编码方式将模式1编码成模式信息“00”,5比特的mask压缩格式对应模式2,通过定长编码方式将模式2编码成模式信息“01”,显然,上述模式1和模式2对应的模式信息是相同的长度。
在一个例子中,还可以将特定编码方式记录到控制信息区域,例如,若特定编码方式存在两种可能,则通过一个比特表示,如通过0表示定长编码方式,通过1表示Huffman编码方式,参见图3G所示,为Huffman编码方式的示例。当特定编码方式有三种或四种可能,则通过两个比特表示,以此类推。
在上述实施例中,是根据指标数据B2确定参考值S,具体的,可以先确定参数值转型方式(即参考值的计算公式);然后,基于该参数值转型方式,可以根据当前时刻的指标数据和当前时刻之前的指标数据,确定参考值S。
例如,参数值转型方式可以为S=Vx-Vx-1;或者,参数值转型方式可以为S=Vx-1-Vx;或者,参数值转型方式也可以为S=Vx与Vx-1的异或。当然,上述只是参数值转型方式的几个示例,对此不做限制。在上述公式中,S可以为参考值,Vx可以为当前时刻的指标数据B2,Vx-1可以为当前时刻的上一时刻的指标数据A2。显然,由于Vx、Vx-1为已知,因此,可以利用上述公式确定出参考值S。
在一个例子中,还可以将参数值转型方式记录到所述控制信息区域,例如,若参数值转型方式存在三种或者四种可能,则可以通过两个比特表示,如可以通过00表示参数值转型方式S=Vx-Vx-1,通过01表示参数值转型方式S=Vx-1-Vx,以此类推,参见图3H所示,为参数值转型方式S=Vx-Vx-1的示例。
第三、对时间序列数据C的处理,例如,根据目标时间压缩格式对时间戳数据C1进行压缩,并根据目标指标压缩格式对指标数据C2进行压缩。对时间序列数据C的处理过程与时间序列数据B的处理过程类似,在此不再赘述。
在上述实施例中,若存在多个时间序列数据,还可以采用并行方式,根据目标压缩格式对多个时间序列数据进行压缩,得到压缩数据,具体压缩过程可以参见上述实施例。例如,可以通过多个GPU(Graphics Processing Unit,图形处理器)并行对多个时间序列数据进行压缩,得到压缩数据,具体的,每个GPU处理一组时间序列数据,并将这组时间序列数据的信息记录到同一组区域(如时间区别区域、指标区别区域、时间压缩区域、指标压缩区域)。
例如,GPU1对第1-32个时间序列数据进行压缩,将信息记录到时间区别区域1、指标区别区域1、时间压缩区域1、指标压缩区域1,具体压缩过程参见上述实施例;GPU2对第33-64个时间序列数据进行压缩,将信息记录到时间区别区域2、指标区别区域2、时间压缩区域2、指标压缩区域2,以此类推。
其中,各GPU可以是并行处理的,也就是说,在GPU1对第1-32个时间序列数据进行压缩的过程中,GPU2也可以对第33-64个时间序列数据进行压缩,因此,可以并行对多个时间序列数据进行压缩,从而可以提高压缩效率。
在上述实施例中,为了使多个GPU对目标数据进行并行解压缩,还可以将目标数据拆分成多个数据分段,每个数据分段可以对应一个或者多个时间序列数据的压缩数据。例如,参见图3I所示,可以将32个时间序列数据的压缩数据作为一组,且每个数据分段可以包括N个组,N为大于等于1的正整数,在每组的压缩数据中,数据是以字节对齐,从而避免了不同压缩数据的比特移位操作,很适合于高效并行压缩和解压缩。当然,也可以将8个或16个时间序列数据的压缩数据作为一组,只要数据是以字节对齐即可,对此不做限制。
进一步的,在将目标数据拆分成多个数据分段后,还可以在目标数据的分段信息区域中添加多个数据分段分别对应的分段信息。例如,可以将时间区别区域1-指标压缩区域1划分为数据分段1,并将第四个时间区别区域-第六个指标压缩区域划分为数据分段2,以此类推,则可以在目标数据的分段信息区域记录数据分段1的首地址(即时间区别区域1的开始地址)和尾地址(指标压缩区域1的结束地址),并记录数据分段2的首地址和尾地址,以此类推。
在上述实施例中,还可以通过主要部分大小区域记录一些关键信息,如整个数据的首地址(如时间区别区域1的开始地址)和尾地址(如最后一个指标压缩区域的结束地址)、上述数据的长度、版本信息等,对此不做限制。
经过上述处理后,就可以得到目标数据,并在时序数据库中存储该目标数据。进一步的,还可以从该时序数据库中读取该目标数据,并对该目标数据进行解压缩处理,以下结合上述图3A-图3I,对数据解压缩过程进行说明。
第一,针对时间序列数据A的处理。参见图3H所示,可以从目标数据的第一点区域解析出时间戳数据A1和指标数据A2,这样,可以将时间戳数据A1和指标数据A2确定为时间序列数据A,即,可以直接得到时间序列数据A。
第二,针对时间序列数据B的处理。例如,可以从该目标数据中获取目标压缩格式和压缩数据,并根据该目标压缩格式对该压缩数据进行解压缩,得到解压缩数据,然后,可以根据该解压缩数据确定时间序列数据B。
针对时间戳数据B1的解压缩过程,可以包括:参见图3C所示,若从时间区别区域1中解析出数值0,则表示参考值R为0,因此,根据当前时刻之前的时间戳数据,确定当前时刻的时间戳数据B1。例如,在R=Tx-Tx-1-(Tx-1-Tx-2)时,R为0,Tx-1为当前时刻的上一时刻的时间戳数据A1,Tx-2为当前时刻的上一时刻的上一时刻的时间戳数据,可以将Tx-2确定为默认值或时间戳数据A1,因此,在R、Tx-1、Tx-2为已知的情况下,可以得到Tx,即当前时刻的时间戳数据B1。
参见图3D所示,若从时间区别区域1中解析出数值1,则表示参考值R不为0,因此,从时间压缩区域1中读取参考值,根据参考值确定时间戳数据B1。首先,读取时间压缩区域1的第一位,若第一位是1,表示参考值R的模式信息是模式0,读取后面的4个比特(如0011),而这4个比特就是参考值R,然后从时间压缩区域1中去除已经读取的比特,在之后的读取过程不再读取。若读取的第一位是0,则继续读取第二位,若第二位是1,即前两位是01,则表示参考值R的模式信息是模式1,读取后面的8个比特,而这8个比特就是参考值R,然后去除这些已经读取的比特。经过上述处理,可以得到参考值R,然后,基于R=Tx-Tx-1-(Tx-1-Tx-2),在R、Tx-1、Tx-2为已知的情况下,得到时间戳数据B1。
若从时间区别区域1中解析出数值1,则表示参考值R不为0,因此,可以从时间压缩区域1中读取编码值,并根据目标时间压缩格式对该编码值进行解压缩,得到解压缩数据,该解压缩数据也就是参考值R,然后,可以根据该参考值R确定时间戳数据B1。首先,读取时间压缩区域1的第一位,若第一位是0,则继续读取第二位,若第二位是0,则继续读取第三位,若第三位是1,即前三位是001,则表示参考值R的模式信息是模式2,即目标时间压缩格式是5比特的mask压缩格式;若第三位是0,即前三位是000,则表示参考值R的模式信息是模式3,即目标时间压缩格式是5比特的trailing-zero压缩格式。
其中,时间压缩区域1的前三位可以表示目标时间压缩格式的模式信息,如模式信息是001,则表示目标时间压缩格式是5比特的mask压缩格式;模式信息是000,则表示目标时间压缩格式是5比特的trailing-zero压缩格式。
然后,读取001或者000后面的编码值,编码值的位数与目标时间压缩格式有关,可以预先知道编码值的位数,这样,就可以从时间压缩区域1中读取到该编码值,然后,就可以利用目标时间压缩格式对该编码值进行解压缩,对此解压缩过程不做限制,而解压缩后的数据就可以是参考值R,然后,可以基于R=Tx-Tx-1-(Tx-1-Tx-2),在R、Tx-1、Tx-2为已知的情况下,得到时间戳数据B1。
针对指标数据B2的解压缩过程,可以包括:从目标数据中获取特定编码方式和参数值转型方式。例如,参见图3H所示,可以从目标数据的控制信息区域获取100,1表示Huffman编码方式,而00表示参数值转型方式S=Vx-Vx-1。
参见图3E所示,若从指标区别区域1中解析出数值0,则表示参考值S为0,因此,可以根据当前时刻之前的指标数据,确定当前时刻的指标数据B2。例如,在S=Vx-Vx-1时,S为0,Vx-1为当前时刻的上一时刻的指标数据A2,因此,在S和Vx-1为已知的情况下,可以得到Vx,即当前时刻的指标数据B2。
参见图3H所示,若从指标区别区域1中解析出数值1,则表示参考值S不为0,因此从指标压缩区域1中读取参考值,并根据该参考值确定指标数据B2。
首先,读取指标压缩区域1的第一位,若第一位是1,则表示参考值S的模式信息是模式0,读取后面的7个比特(如1000000),这7个比特(对应参考值S位于-64与64之间)就是参考值S,从指标压缩区域1中去除已经读取的比特。在S=Vx-Vx-1时,在S和Vx-1为已知的情况下,可以得到指标数据B2。
参见图3H所示,若从指标区别区域1中解析出数值1,则表示参考值S不为0,因此,可以从指标压缩区域1中读取编码值,并根据目标指标压缩格式对该编码值进行解压缩,得到解压缩数据,该解压缩数据也就是参考值S,然后,可以根据该参考值S确定指标数据B2。首先,可以读取指标压缩区域1的前两位,若前两位是01,则可以确定模式信息是01。进一步的,若上述特定编码方式是Huffman编码方式,则可以通过Huffman编码方式对模式信息01进行解码,得到模式1,并可以确定目标指标压缩格式是6比特的mask压缩格式;若上述特定编码方式是定长编码方式,则可以通过定长编码方式对模式信息01进行解码,得到模式2,并可以确定目标指标压缩格式是5比特的mask压缩格式。
其中,针对定长编码方式,可以只读取指标压缩区域1的前两位,并利用前两位确定目标指标压缩格式。如前两位是00,可以通过定长编码方式对模式信息00行解码,得到模式1,确定目标指标压缩格式是6比特的mask压缩格式。
进一步的,针对Huffman编码方式,若前两位是00,则还可以继续读取第三位,若第三位是1,即前三位是001,则通过Huffman编码方式对模式信息001进行解码,得到模式2,确定目标指标压缩格式是5比特的mask压缩格式;若第三位是0,即前三位是000,则通过Huffman编码方式对模式信息000进行解码,得到模式3,确定目标指标压缩格式是5比特的trailing-zero压缩格式。
然后,读取模式信息(如两位或者三位的模式信息)后面的编码值,编码值的位数与目标指标压缩格式有关,可以预先知道编码值的位数,这样,就可以从指标压缩区域1中读取到该编码值,然后,就可以利用目标指标压缩格式对该编码值进行解压缩,对此解压缩过程不做限制,而解压缩后的数据就可以是参考值S,在S=Vx-Vx-1时,S和Vx-1为已知,因此,可以得到指标数据B2。
经过上述解压缩的处理过程,就可以得到时间戳数据B1和指标数据B2,然后,还可以将时间戳数据B1和指标数据B2确定为时间序列数据B。
第三,针对时间序列数据C的处理。例如,可以从该目标数据中获取目标压缩格式和压缩数据,并根据该目标压缩格式对该压缩数据进行解压缩,得到解压缩数据,然后,可以根据该解压缩数据确定时间序列数据C。其中,对时间序列数据C的处理过程与时间序列数据B的处理过程类似,在此不再赘述。
在上述实施例中,还可以采用并行方式,对压缩数据进行解压缩,得到解压缩数据,具体解压缩过程参见上述实施例。例如,通过多个GPU并行对压缩数据进行解压缩,得到解压缩数据。具体的,从目标数据中获取分段信息,并根据该分段信息将目标数据划分为多个数据分段,每个数据分段对应一个或者多个时间序列数据的压缩数据;根据目标压缩格式对多个数据分段进行解压缩,得到解压缩数据。在根据该目标压缩格式对多个数据分段进行解压缩,得到解压缩数据时,可以采用并行方式对多个数据分段进行解压缩,得到解压缩数据。
例如,可以从目标数据的分段信息区域中解析出分段信息,如数据分段1的首地址和尾地址,数据分段2的首地址和尾地址,以此类推。基于数据分段1的首地址和尾地址,从目标数据中获取数据分段1,然后,GPU1对数据分段1中的压缩数据进行解压缩;基于数据分段2的首地址和尾地址,从目标数据中获取数据分段2,然后,GPU2对数据分段2中的压缩数据进行解压缩;以此类推,每个GPU对一个数据分段的压缩数据进行解压缩,具体解压缩方式参见上述实施例。而且,各GPU可以是并行处理的,也就是说,在GPU1对数据分段1中的压缩数据进行解压缩时,GPU2也可以对数据分段2中的压缩数据进行解压缩,因此,可以并行对多个数据分段进行解压缩,从而提高解压缩效率。
基于上述技术方案,本申请实施例中,可以配置多个压缩格式,并进行压缩格式的分析,得到比较高效的目标压缩格式,并利用目标压缩格式进行压缩/解压缩,提高搜索空间,提升压缩率。可以得到最优性能,其压缩性能较好,压缩率较高,解压缩性能较好,解压缩率较高,适合于高效并行压缩/解压缩。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据压缩装置,如图4所示,为所述数据压缩装置的结构图,所述数据压缩装置包括:选择模块41,用于从压缩格式集合的多个压缩格式中选择目标压缩格式;获取模块42,用于根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
所述选择模块41从压缩格式集合的多个压缩格式中选择目标压缩格式时具体用于:根据所述压缩格式集合的多个压缩格式,分别对时间序列数据进行预压缩,得到压缩格式对应的压缩性能,并从得到的压缩性能中确定最优压缩性能;将所述最优压缩性能对应的压缩格式确定为目标压缩格式。
所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述获取模块42根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据时用于:根据所述时间戳数据确定与所述时间戳数据对应的参考值;
若所述参考值不为第一标识,则根据所述目标时间压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第一数值和所述编码值;或者,确定所述压缩数据包括第一数值和所述参考值;
若所述参考值为第一标识,确定所述压缩数据包括第二数值。
所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;所述获取模块42根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据时具体用于:根据所述指标数据确定与所述指标数据对应的参考值;
若所述参考值不为第二标识,则根据所述目标指标压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第三数值和所述编码值;或者,确定所述压缩数据包括第三数值和所述参考值;
若所述参考值为第二标识,确定所述压缩数据包括第四数值。
基于与上述方法同样的构思,本实施例还提供一种数据压缩设备,包括:处理器和机器可读存储介质;所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
本实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据。
基于与上述方法同样的申请构思,本申请实施例还提供一种数据解压缩装置,如图5所示,为数据解压缩装置的结构图,所述数据解压缩装置包括:
读取模块51,用于从时序数据库中读取目标数据;
获取模块52,用于从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
确定模块53,用于根据所述解压缩数据确定时间序列数据。
所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述获取模块52根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据时具体用于:若从所述压缩数据中解析出第一数值和编码值,则根据所述目标时间压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;所述确定模块53根据所述解压缩数据确定时间序列数据时具体用于:根据所述解压缩数据确定与时间戳数据对应的参考值;根据所述参考值确定所述时间序列数据中的时间戳数据。
所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;所述获取模块52根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据时具体用于:若从所述压缩数据中解析出第三数值和编码值,则根据所述目标指标压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;所述确定模块53根据所述解压缩数据确定时间序列数据时具体用于:根据所述解压缩数据确定与指标数据对应的参考值;根据所述参考值确定所述时间序列数据中的指标数据。
基于与上述方法同样的构思,本实施例还提供一种数据解压缩设备,包括:处理器和机器可读存储介质;所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从时序数据库中读取目标数据;从所述目标数据中获取目标压缩格式和压缩数据;根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;根据所述解压缩数据确定时间序列数据。
本实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被执行时进行如下处理:
从时序数据库中读取目标数据;从所述目标数据中获取目标压缩格式和压缩数据;根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;根据所述解压缩数据确定时间序列数据。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (26)
1.一种数据压缩方法,其特征在于,所述方法包括:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据;
其中,若所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据,包括:根据所述时间戳数据确定与所述时间戳数据对应的参考值;若所述参考值不为第一标识,则根据所述目标时间压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第一数值和所述编码值;或者,确定所述压缩数据包括第一数值和所述参考值;若所述参考值为第一标识,确定所述压缩数据包括第二数值。
2.根据权利要求1所述的方法,其特征在于,
所述从压缩格式集合的多个压缩格式中选择目标压缩格式,包括:
根据所述压缩格式集合的多个压缩格式,分别对时间序列数据进行预压缩,得到压缩格式对应的压缩性能,并从得到的压缩性能中确定最优压缩性能;
将所述最优压缩性能对应的压缩格式确定为目标压缩格式。
3.根据权利要求1所述的方法,其特征在于,所述时间序列数据包括时间戳数据和指标数据,所述压缩格式集合包括多个时间压缩格式和多个指标压缩格式;所述从压缩格式集合的多个压缩格式中选择目标压缩格式,包括:
根据所述压缩格式集合的多个时间压缩格式,分别对时间戳数据进行预压缩,得到时间压缩格式对应的压缩性能,并从得到的压缩性能中确定最优压缩性能,将所述最优压缩性能对应的时间压缩格式确定为目标时间压缩格式;
根据所述压缩格式集合的多个指标压缩格式,分别对指标数据进行预压缩,得到指标压缩格式对应的压缩性能,并从得到的压缩性能中确定最优压缩性能,将所述最优压缩性能对应的指标压缩格式确定为目标指标压缩格式。
4.根据权利要求1所述的方法,其特征在于,所述根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据之后,所述方法还包括:
在目标数据中添加所述目标时间压缩格式的模式信息以及所述压缩数据;其中,所述模式信息是未经过编码的数值,用于表示所述目标时间压缩格式。
5.根据权利要求1所述的方法,其特征在于,
若所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据,还包括:
根据所述指标数据确定与所述指标数据对应的参考值;
若所述参考值不为第二标识,则根据所述目标指标压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第三数值和所述编码值;或者,确定所述压缩数据包括第三数值和所述参考值;
若所述参考值为第二标识,确定所述压缩数据包括第四数值。
6.根据权利要求5所述的方法,其特征在于,
所述根据所述指标数据确定与所述指标数据对应的参考值,包括:
确定参数值转型方式;基于所述参数值转型方式,根据当前时刻的指标数据以及当前时刻之前的指标数据,确定与当前时刻的指标数据对应的参考值;
所述方法还包括:在目标数据中添加所述参数值转型方式。
7.根据权利要求5所述的方法,其特征在于,所述根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据之后,所述方法还包括:
在目标数据中添加所述目标指标压缩格式的模式信息和所述压缩数据;其中,所述模式信息是经过编码的数值,用于表示所述目标指标压缩格式。
8.根据权利要求7所述的方法,其特征在于,所述在目标数据中添加所述目标指标压缩格式的模式信息和所述压缩数据之前,所述方法还包括:
采用特定编码方式对所述目标指标压缩格式进行编码,得到所述模式信息;
所述方法还包括:在目标数据中添加所述特定编码方式;
其中,所述特定编码方式包括定长编码方式或者变长编码方式。
9.根据权利要求1所述的方法,其特征在于,所述根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据之后,所述方法还包括:
在目标数据中添加所述目标压缩格式和所述压缩数据;
在时序数据库中存储所述目标数据。
10.根据权利要求9所述的方法,其特征在于,
所述在时序数据库中存储所述目标数据之前,所述方法还包括:
将所述目标数据拆分成多个数据分段;其中,针对所述多个数据分段中的数据分段,所述数据分段对应一个或者多个时间序列数据的压缩数据;
在所述目标数据中添加所述多个数据分段分别对应的分段信息。
11.一种数据解压缩方法,其特征在于,所述方法包括:
从时序数据库中读取目标数据;
从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
根据所述解压缩数据确定时间序列数据;
其中,若所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据,包括:若从所述压缩数据中解析出第一数值和编码值,则根据所述目标时间压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;
所述根据所述解压缩数据确定时间序列数据,包括:根据所述解压缩数据确定与时间戳数据对应的参考值;根据所述参考值确定所述时间序列数据中的时间戳数据。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
若从所述压缩数据中解析出第二数值,则根据当前时刻之前的时间戳数据,确定当前时刻的时间戳数据,根据当前时刻的时间戳数据确定时间序列数据;
若从所述压缩数据中解析出第一数值和参考值,则根据当前时刻之前的时间戳数据和所述参考值,确定当前时刻的时间戳数据;根据所述当前时刻的时间戳数据确定时间序列数据。
13.根据权利要求11所述的方法,其特征在于,
所述从所述目标数据中获取目标压缩格式和压缩数据,包括:
从所述目标数据中获取目标时间压缩格式的模式信息和压缩数据;其中,所述模式信息是未经过编码的数值,用于表示目标时间压缩格式;
根据所述模式信息确定所述目标时间压缩格式。
14.根据权利要求11所述的方法,其特征在于,若所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;所述根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据,还包括:
若从所述压缩数据中解析出第三数值和编码值,则根据所述目标指标压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;
所述根据所述解压缩数据确定时间序列数据,还包括:
根据所述解压缩数据确定与指标数据对应的参考值;
根据所述参考值确定所述时间序列数据中的指标数据。
15.根据权利要求14所述的方法,其特征在于,
所述根据所述参考值确定所述时间序列数据中的指标数据,包括:
从所述目标数据中获取参数值转型方式;基于所述参数值转型方式,根据当前时刻之前的指标数据和所述参考值,确定所述当前时刻的指标数据。
16.根据权利要求14所述的方法,其特征在于,所述方法还包括:
若从所述压缩数据中解析出第四数值,则根据当前时刻之前的指标数据,确定当前时刻的指标数据,并根据当前时刻的指标数据确定时间序列数据;
若从所述压缩数据中解析出第三数值和参考值,则根据当前时刻之前的指标数据和所述参考值,确定所述当前时刻的指标数据;根据所述当前时刻的指标数据确定时间序列数据。
17.根据权利要求14所述的方法,其特征在于,
所述从所述目标数据中获取目标压缩格式和压缩数据,包括:
从所述目标数据中获取目标指标压缩格式的模式信息和压缩数据;其中,所述模式信息是经过编码的数值,用于表示目标指标压缩格式;
根据所述模式信息确定所述目标指标压缩格式。
18.根据权利要求17所述的方法,其特征在于,
所述根据所述模式信息确定所述目标指标压缩格式,包括:
从所述目标数据中获取特定编码方式;
采用所述特定编码方式对所述模式信息进行解码,得到目标指标压缩格式;
其中,所述特定编码方式包括定长编码方式或者变长编码方式。
19.根据权利要求11所述的方法,其特征在于,所述根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据,包括:
从所述目标数据中获取分段信息,根据所述分段信息将所述目标数据划分为多个数据分段,所述数据分段对应一个或者多个时间序列数据的压缩数据;
根据所述目标压缩格式对所述多个数据分段进行解压缩,得到解压缩数据。
20.一种数据压缩方法,其特征在于,所述方法包括:
获取目标压缩格式;
根据所述目标压缩格式对待压缩数据进行压缩,得到压缩数据;
在目标数据中添加所述目标压缩格式和所述压缩数据;
在数据库中存储所述目标数据;
其中,若所述待压缩数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;根据所述目标压缩格式对待压缩数据进行压缩,得到压缩数据,包括:根据所述时间戳数据确定与所述时间戳数据对应的参考值;若所述参考值不为第一标识,则根据所述目标时间压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第一数值和所述编码值;或者,确定所述压缩数据包括第一数值和所述参考值;若所述参考值为第一标识,确定所述压缩数据包括第二数值。
21.一种数据压缩装置,其特征在于,所述装置包括:
选择模块,用于从压缩格式集合的多个压缩格式中选择目标压缩格式;
获取模块,用于根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据;
其中,所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述获取模块根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据时具体用于:根据所述时间戳数据确定与所述时间戳数据对应的参考值;若所述参考值不为第一标识,则根据所述目标时间压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第一数值和所述编码值;或者,确定所述压缩数据包括第一数值和所述参考值;若所述参考值为第一标识,确定所述压缩数据包括第二数值。
22.根据权利要求21所述的装置,其特征在于,所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;所述获取模块根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据时具体用于:
根据所述指标数据确定与所述指标数据对应的参考值;
若所述参考值不为第二标识,则根据所述目标指标压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第三数值和所述编码值;或者,确定所述压缩数据包括第三数值和所述参考值;
若所述参考值为第二标识,确定所述压缩数据包括第四数值。
23.一种数据解压缩装置,其特征在于,所述装置包括:
读取模块,用于从时序数据库中读取目标数据;
获取模块,用于从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
确定模块,用于根据所述解压缩数据确定时间序列数据;
其中,所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述获取模块根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据时具体用于:
若从所述压缩数据中解析出第一数值和编码值,则根据所述目标时间压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;
所述确定模块根据所述解压缩数据确定时间序列数据时具体用于:
根据所述解压缩数据确定与时间戳数据对应的参考值;
根据所述参考值确定所述时间序列数据中的时间戳数据。
24.根据权利要求23所述的装置,其特征在于,所述时间序列数据包括指标数据,所述目标压缩格式包括目标指标压缩格式;所述获取模块根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据时具体用于:
若从所述压缩数据中解析出第三数值和编码值,则根据所述目标指标压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;
所述确定模块根据所述解压缩数据确定时间序列数据时具体用于:
根据所述解压缩数据确定与指标数据对应的参考值;
根据所述参考值确定所述时间序列数据中的指标数据。
25.一种数据压缩设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从压缩格式集合的多个压缩格式中选择目标压缩格式;
根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据;
其中,若所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;根据所述目标压缩格式对时间序列数据进行压缩,得到压缩数据,包括:根据所述时间戳数据确定与所述时间戳数据对应的参考值;若所述参考值不为第一标识,则根据所述目标时间压缩格式对所述参考值进行压缩,得到编码值,确定所述压缩数据包括第一数值和所述编码值;或者,确定所述压缩数据包括第一数值和所述参考值;若所述参考值为第一标识,确定所述压缩数据包括第二数值。
26.一种数据解压缩设备,其特征在于,包括:
处理器和机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述处理器执行所述计算机指令时进行如下处理:
从时序数据库中读取目标数据;
从所述目标数据中获取目标压缩格式和压缩数据;
根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据;
根据所述解压缩数据确定时间序列数据;
其中,若所述时间序列数据包括时间戳数据,所述目标压缩格式包括目标时间压缩格式;所述根据所述目标压缩格式对所述压缩数据进行解压缩,得到解压缩数据,包括:若从所述压缩数据中解析出第一数值和编码值,则根据所述目标时间压缩格式对所述压缩数据中的编码值进行解压缩,得到解压缩数据;
所述根据所述解压缩数据确定时间序列数据,包括:根据所述解压缩数据确定与时间戳数据对应的参考值;根据所述参考值确定所述时间序列数据中的时间戳数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204206.0A CN111061722B (zh) | 2018-10-16 | 2018-10-16 | 一种数据压缩、数据解压缩方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811204206.0A CN111061722B (zh) | 2018-10-16 | 2018-10-16 | 一种数据压缩、数据解压缩方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111061722A CN111061722A (zh) | 2020-04-24 |
CN111061722B true CN111061722B (zh) | 2023-06-06 |
Family
ID=70296555
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811204206.0A Active CN111061722B (zh) | 2018-10-16 | 2018-10-16 | 一种数据压缩、数据解压缩方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111061722B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112968751A (zh) * | 2021-01-27 | 2021-06-15 | 伊之密机器人自动化科技(苏州)有限公司 | 一种工业时序数据压缩方法及系统 |
CN114327264B (zh) * | 2021-12-22 | 2023-05-12 | 北京力控元通科技有限公司 | 一种时序数据压缩方法、装置及设备 |
CN114390292B (zh) * | 2022-03-23 | 2022-05-24 | 苏州浪潮智能科技有限公司 | 一种视频压缩系统及服务器 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006319956A (ja) * | 2005-04-13 | 2006-11-24 | Matsushita Electric Ind Co Ltd | Mpeg符号化ストリーム復号装置 |
JP2007202156A (ja) * | 2007-01-23 | 2007-08-09 | Indigita Corp | デジタルビデオおよびデータ記録装置 |
CN102036059A (zh) * | 2009-09-25 | 2011-04-27 | 腾讯科技(深圳)有限公司 | 一种透明图像的压缩和解压缩方法、装置和系统 |
CN103595416A (zh) * | 2012-08-16 | 2014-02-19 | 西门子公司 | 压缩生产数据流并以不同标准过滤压缩数据的系统和方法 |
CN105653698A (zh) * | 2015-12-30 | 2016-06-08 | 北京奇艺世纪科技有限公司 | 一种数据库表Hive Table的数据加载方法和装置 |
CN106919617A (zh) * | 2015-12-25 | 2017-07-04 | 北京奇虎科技有限公司 | 一种压缩存储方法和装置 |
CN107545021A (zh) * | 2017-05-10 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种数据存储方法及装置 |
CN107831741A (zh) * | 2017-10-18 | 2018-03-23 | 上海华电电力发展有限公司 | 用于电厂的新的时间序列数据读取方法 |
CN108197181A (zh) * | 2017-12-25 | 2018-06-22 | 广州亦云信息技术股份有限公司 | 一种时序数据的压缩存储方法、电子设备及存储介质 |
CN108399263A (zh) * | 2018-03-15 | 2018-08-14 | 北京大众益康科技有限公司 | 时序数据的存储和查询方法及存储和处理平台 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577456B (zh) * | 2012-07-31 | 2016-12-21 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
US10909078B2 (en) * | 2015-02-25 | 2021-02-02 | International Business Machines Corporation | Query predicate evaluation and computation for hierarchically compressed data |
-
2018
- 2018-10-16 CN CN201811204206.0A patent/CN111061722B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006319956A (ja) * | 2005-04-13 | 2006-11-24 | Matsushita Electric Ind Co Ltd | Mpeg符号化ストリーム復号装置 |
JP2007202156A (ja) * | 2007-01-23 | 2007-08-09 | Indigita Corp | デジタルビデオおよびデータ記録装置 |
CN102036059A (zh) * | 2009-09-25 | 2011-04-27 | 腾讯科技(深圳)有限公司 | 一种透明图像的压缩和解压缩方法、装置和系统 |
CN103595416A (zh) * | 2012-08-16 | 2014-02-19 | 西门子公司 | 压缩生产数据流并以不同标准过滤压缩数据的系统和方法 |
CN106919617A (zh) * | 2015-12-25 | 2017-07-04 | 北京奇虎科技有限公司 | 一种压缩存储方法和装置 |
CN105653698A (zh) * | 2015-12-30 | 2016-06-08 | 北京奇艺世纪科技有限公司 | 一种数据库表Hive Table的数据加载方法和装置 |
CN107545021A (zh) * | 2017-05-10 | 2018-01-05 | 新华三信息安全技术有限公司 | 一种数据存储方法及装置 |
CN107831741A (zh) * | 2017-10-18 | 2018-03-23 | 上海华电电力发展有限公司 | 用于电厂的新的时间序列数据读取方法 |
CN108197181A (zh) * | 2017-12-25 | 2018-06-22 | 广州亦云信息技术股份有限公司 | 一种时序数据的压缩存储方法、电子设备及存储介质 |
CN108399263A (zh) * | 2018-03-15 | 2018-08-14 | 北京大众益康科技有限公司 | 时序数据的存储和查询方法及存储和处理平台 |
Non-Patent Citations (4)
Title |
---|
Yong-dong Wang 等.Compression algorithm of road traffic data in time series based on temporal correlation.《IET Intelligent Transport System》.2018,(第3期),第177-185页. * |
孟倩.基于高通量测序的短序列生物数据压缩研究.《计算机应用与软件》.2017,第34卷(第04期),第22-27、98页. * |
张海涛 等.GML数据的整体同构压缩算法研究.《地理与地理信息科学》.2009,第25卷(02),第19-22、26页. * |
曾碧贵 等.时间序列数据摘要与索引机制.《工业控制计算机》.2017,第30卷(第01期),第59-60页. * |
Also Published As
Publication number | Publication date |
---|---|
CN111061722A (zh) | 2020-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111061722B (zh) | 一种数据压缩、数据解压缩方法、装置及设备 | |
EP1744461A2 (en) | Data compression | |
US7511638B2 (en) | Data compression for communication between two or more components in a system | |
CN104657362A (zh) | 数据存储、查询方法和装置 | |
CN110021369B (zh) | 基因测序数据压缩解压方法、系统及计算机可读介质 | |
CN106849956B (zh) | 压缩方法、解压缩方法、装置和数据处理系统 | |
CN112527736A (zh) | 基于dna的数据存储方法、数据恢复方法及终端设备 | |
JP2012506665A (ja) | データ記録を圧縮し復元する方法及び装置 | |
CN113312325B (zh) | 轨迹数据传输方法、装置、设备及存储介质 | |
US20160092492A1 (en) | Sharing initial dictionaries and huffman trees between multiple compressed blocks in lz-based compression algorithms | |
US9294124B2 (en) | Dictionary-based compression method, dictionary-based decompression method and dictionary composing method | |
JP4037875B2 (ja) | コンピュータグラフィックスデータ符号化装置、復号化装置、符号化方法、および、復号化方法 | |
CN107103632B (zh) | 图像压缩方法及装置 | |
KR20090029173A (ko) | Jpeg 어플리케이션의 가변 길이 코드 디코딩 | |
CN116707532A (zh) | 一种压缩文本的解压方法、装置、存储介质及电子设备 | |
WO2018068250A1 (zh) | 处理数据的方法、装置、芯片和摄像头 | |
US20220199202A1 (en) | Method and apparatus for compressing fastq data through character frequency-based sequence reordering | |
USRE45300E1 (en) | Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements | |
CN115765754A (zh) | 一种数据编码方法及一种编码数据比较方法 | |
US4890326A (en) | Method for compressing data | |
CN116208171A (zh) | 数据压缩和解压缩方法、装置、电子设备及存储介质 | |
US10931303B1 (en) | Data processing system | |
WO2018039983A1 (zh) | 一种生物序列数据的处理方法及装置 | |
CN110392262A (zh) | 一种压缩虚拟桌面图像的方法及装置 | |
WO2019191904A1 (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 |