WO2021226922A1 - 数据压缩方法及装置、数据压缩设备和可读存储介质 - Google Patents

数据压缩方法及装置、数据压缩设备和可读存储介质 Download PDF

Info

Publication number
WO2021226922A1
WO2021226922A1 PCT/CN2020/090198 CN2020090198W WO2021226922A1 WO 2021226922 A1 WO2021226922 A1 WO 2021226922A1 CN 2020090198 W CN2020090198 W CN 2020090198W WO 2021226922 A1 WO2021226922 A1 WO 2021226922A1
Authority
WO
WIPO (PCT)
Prior art keywords
data point
time stamp
value
data
block
Prior art date
Application number
PCT/CN2020/090198
Other languages
English (en)
French (fr)
Inventor
郭子亮
Original Assignee
深圳市欢太科技有限公司
Oppo广东移动通信有限公司
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 深圳市欢太科技有限公司, Oppo广东移动通信有限公司 filed Critical 深圳市欢太科技有限公司
Priority to PCT/CN2020/090198 priority Critical patent/WO2021226922A1/zh
Priority to CN202080099580.8A priority patent/CN115380267A/zh
Publication of WO2021226922A1 publication Critical patent/WO2021226922A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • 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/50Conversion to or from non-linear codes, e.g. companding

Definitions

  • the data compression method of the embodiment of the present application includes: obtaining a current data point, the current data point including an associated time stamp and a value; calculating the time stamp of the current data point and the first change value of the reference time stamp, and The value of the current data point and the second change value of the reference value; and the first change value and the second change value are stored.
  • FIG. 7 is a schematic flowchart of a data compression method according to some embodiments of the present application.
  • the memory 30 is also used to store data points according to data blocks, and the data blocks store data points within a predetermined time period; the processor 20 is also used to divide the data blocks.
  • the reference time stamp is the time stamp of the first data point stored in the chunk, and the reference value is the value of the first data point stored in the chunk.
  • step 014 can be executed by the memory 30, and step 015 can be implemented by the processor 20.
  • the processor 20 can locate the query time stamp corresponding to the query time stamp and the predetermined time period corresponding to the data block.
  • the data block stored by the data point for example, as shown in FIG. 8, the predetermined time periods of data block A, data block B, data block C, and data block D are 9:00:01 to 11:00:00 and 11:00, respectively.
  • the block After locating the block where the query timestamp is located, the block can be decompressed, and the data point corresponding to the query timestamp can be quickly determined by traversing the timestamp of each data point after the query is decompressed. The data corresponding to the query timestamp is obtained. In this way, only the block corresponding to the query time stamp needs to be decompressed, and the entire data block does not need to be decompressed to query the data point corresponding to the query time stamp, and the query efficiency is high.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Nonlinear Science (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种数据压缩方法、数据压缩装置(10)、数据压缩设备(100)和非易失性计算机可读存储介质(200)。数据压缩方法包括:(011)获取当前数据点,当前数据点包括相关联的时间戳和数值;(012)计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值;及(013)存储第一变化值和第二变化值。

Description

数据压缩方法及装置、数据压缩设备和可读存储介质 技术领域
本申请涉及数据库技术领域,特别涉及一种数据压缩方法、数据压缩装置、数据压缩设备和非易失性计算机可读存储介质。
背景技术
数据压缩是指在不丢失有用信息的前提下,缩减数据量以减少存储空间,提高其传输、存储和处理效率,或按照一定的方法对数据进行重新组织,减少数据的冗余和存储的空间的一种技术方法。时序数据库包括很多数据点,每个数据点包括时间戳和数值,在存储数据点时,一般会通过数据压缩方法进行压缩存储以减少数据点占用的存储空间。
发明内容
本申请的实施方式提供了一种数据压缩方法、数据压缩装置、数据压缩设备和非易失性计算机可读存储介质。
本申请实施方式的数据压缩方法包括:获取当前数据点,所述当前数据点包括相关联的时间戳和数值;计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;及存储所述第一变化值和所述第二变化值。
本申请实施方式的数据压缩装置第一获取模块、计算模块和第一存储模块。所述第一获取模块用于获取当前数据点,所述当前数据点包括相关联的时间戳和数值;所述计算模块用于计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;所述第一存储模块用于存储所述第一变化值和所述第二变化值。
本申请实施方式的数据压缩设备包括存储器及处理器,所述处理器用于获取当前数据点,所述当前数据点包括相关联的时间戳和数值、及计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;所述存储器用于存储所述第一变化值和所述第二变化值。
本申请实施方式的一个或多个包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行以下数据压缩步骤:获取当前数据点,所述当前数据点包括相关联的时间戳和数值; 计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;及存储所述第一变化值和所述第二变化值。
本申请实施方式的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点可以从结合下面附图对实施方式的描述中将变得明显和容易理解,其中:
图1是本申请某些实施方式的数据压缩方法的流程示意图。
图2是本申请某些实施方式的数据压缩装置的模块示意图。
图3是本申请某些实施方式的数据压缩设备的结构示意图。
图4是本申请某些实施方式的数据压缩方法的原理示意图。
图5是本申请某些实施方式的数据压缩方法的原理示意图。
图6是本申请某些实施方式的数据压缩方法的流程示意图。
图7是本申请某些实施方式的数据压缩方法的流程示意图。
图8是本申请某些实施方式的数据压缩方法的原理示意图。
图9是本申请某些实施方式的数据压缩方法的流程示意图。
图10是本申请某些实施方式的数据压缩方法的流程示意图。
图11是本申请实施方式的计算机可读存储介质和处理器的模块示意图。
具体实施方式
下面详细描述本申请的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
为了实现数据压缩,保证较高的压缩率,目前的压缩方法中,一般会将相邻的数据点关联存储(如压缩时以当前数据点和前一数据点的差值来表示并存储当前数据点,或者压缩时以当前数据点和前一数据点的异或结果来表示并存储当前数据点),压缩后的当前数据点都是和相邻的前一数据点关联的,一旦出现乱序,由于相邻两个数据点是关联的,要确定乱序的数据点关联的数据点,就需要对整个数据块进行解压缩后还原每个数据点压缩前的数据,才能根据乱序的数据点的时间戳确定乱序的数据点应该存储的位置,极大的影响了乱序时的写入性能。
请参阅图1,为了解决上述技术问题,本申请提供一种数据压缩方法,数据压缩方法包括:
011:获取当前数据点,当前数据点包括相关联的时间戳和数值;
012:计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值;及
013:存储第一变化值和第二变化值。
请参阅图2和图3,本申请还提供一种数据压缩装置10。本实施方式中,数据压缩装置10应用于数据压缩设备100,也即是说,数据压缩设备100包括数据压缩装置10。数据压缩装置10包括第一获取模块11、计算模块12和第一存储模块13。第一获取模块11、计算模块12和第一存储模块13分别用于执行步骤011、步骤012和步骤013。即,第一获取模块11用于获取当前数据点;计算模块12用于计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值;及第一存储模块13用于存储第一变化值和第二变化值。
请参阅图3,本申请还提供一种数据压缩设备100。数据压缩设备100包括处理器20和存储器30。处理器20用于获取当前数据点,当前数据点包括相关联的时间戳和数值、及计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值;存储器30用于存储第一变化值和第二变化值。也即是说,步骤011、步骤012和步骤013可以由处理器20实现。
其中,数据压缩设备100可以为终端、服务器等设备,终端可以是手机、平板电脑、监控摄像头、显示器、笔记本电脑、柜员机、闸机、智能手表、头显设备、游戏机等。可以理解,数据压缩设备100并不限于上述设备,还可以是任意具有存储器30和处理器20的设备。
在数据压缩设备100为终端或服务器时,如终端或服务器接收到数据后通过处理器20对数据进行压缩,然后将压缩后的数据存储到存储器30中。在其他实施方式中,数据压缩设备100可以由上述任意一个或多个设备的部分部件组合而成,例如数据压缩设备100可以包括终端的处理器20和服务器的存储器30,也即是说,终端将获取到数据后,通过自身的处理器20对数据进行压缩,发送给服务器,服务器将压缩后的数据存储到存储器30,如此,终端实时对数据进行压缩,减少了因网络、负载均衡、API网关、服务器延迟等问题导致的乱序问题。本申请实施方式中,以数据压缩设备100为服务器为例进行说明。
具体地,服务器与终端连接,以获取终端采集的数据(如终端为监控摄像头,采集的数据为监控视频数据,如终端为手机,采集的数据为手机的位置信息、电量数据 等),或者服务器可以和其他服务器连接,以获取其他服务器的指标信息(如CPU(central processing unit,中央处理器)占用率、内存使用量等),实现对其他服务器的实时监控。以服务器与终端连接以获取终端的内存使用量为例进行说明,服务器与其他服务器连接以获取其他服务器采集的数据的原理基本相同,在此不再赘述。
终端能够实时的采集自身的内存使用量,例如,终端每隔预定时长(如1秒(S)、2S、3S)获取一次内存使用量,然后发送给服务器,终端发送给服务器的数据可包含终端的标签、指标名、发送时间、内存使用量、内存使用量的采集时间等,其中,标签可用于表示终端的特征码(特征码是终端进行网络通信时代表自身身份的唯一标识),指标名用于表示发送的数据对应的指标(如内存使用量对应的内存指标、CPU使用量对应CPU指标等),发送时间为发送数据的时间,发送时间可以作为内存使用量关联的时间戳,内存使用量的采集时间也可以作为内存使用量关联的时间戳,一般的,内存使用量的采集时间在前,那么其发送时间一般也在前,内存使用量的采集时间可以刚好为发送时间,如终端采集到数据的同时将该数据发送。由于网络、负载均衡、API网关、服务器延迟等问题,可能导致发送时间在前的数据,反而在发送时间在后的数据之后被服务器接收到,出现乱序问题。
服务器接收到终端发出的数据后,处理器20首先获取到标签和指标名,可以理解,服务器可同时监控一个或多个终端,服务器可以为每个终端划分一个或多个数据存储区以存储对应的终端发出的数据,在获取到其中一个终端的发出数据后,根据标签和指标名即可找到对应的数据存储区,然后将数据存储到数据存储区中。
在存储前,处理器20获取当前数据点,当前数据点包括时间戳和数值,其中,时间戳可以是终端发出的数据的发送时间或内存使用量的采集时间,本实施方式中,时间戳是终端发出的数据的发送时间(发射时间是当前时间和预设时间之间的时间差,如预设时间为1970年1月1日0点),数值为内存使用量(如1%、6%、25%、65%、90%等)。
终端发送的数据中的时间戳和内存使用量是关联的,在存储时,时间戳和关联的内存使用量当作一个数据点关联存储。处理器20在获取到当前数据点后,要对当前数据点进行压缩,计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值,其中,基准时间戳为用于存储当前数据点的数据块的第一个数据点的时间戳,该时间戳是未经过压缩处理的时间(如2020年3月20日0点),和终端发送的数据中的发送时间相同,基准数值为用于存储当前数据点的数据块的第一个数据点的数值,该数值也是未经过压缩的内存使用量,和终端发送的数据中的内存使用量相同。可以理解,每个数据存储区可被分为一个或多个数据块, 当前数据点为数据块中存储的第一个数据点时,此时可直接将当前数据点的时间戳和数值存储到该数据块以作为该数据块的基准时间戳和基准数值,后续的数据点的时间戳为相对基准时间戳的第一变化值,后续的数据点的数值为相对基准数值的第二变化值,从而实现数据点的数据压缩。
在计算当前数据点的时间戳和基准时间戳的第一变化值时,可通过计算当前数据点的时间戳和基准时间戳的差值得到第一变化值,例如,第一变化值等于当前数据点的时间戳和基准时间戳的差值;或者,当前数据点的时间戳和基准时间戳的差值和第一变化值存在映射关系,可通过映射公式和该差值计算得到第一变化值,如映射公式为y=ax+b,其中,y为第一变化值,x为当前数据点的时间戳和基准时间戳的差值(即,时间差),a和b为常量,可根据需要自由设置。在其他实施方式中,映射公式还可以是其他公式,如二次函数、三次函数等,不限于上述的一次函数的映射公式。如此,可通过差值计算得到第一变化值,通过第一变化值表示当前数据点的时间戳并存储,相较于直接保存当前数据点的时间戳而言,根据差值得到的第一变化值可以是比当前数据点的时间戳的数值更小的数值,用于存储该数值所需的存储位数也较少,从而实现了当前数据点的时间戳的压缩。而在解压缩以还原当前数据点的时间戳时,根据第一变化值即可计算得到当前数据点的时间戳和基准时间戳的差值,通过该差值和基准时间戳即可计算得到当前数据点的时间戳,实现当前数据点的时间戳的无损压缩和解压缩。
每个当前数据点的时间戳都是相对基准时间戳的第一变化值,以第一变化值等于差值为例,当前数据点的时间戳对应的时间越晚(即,和预设时间的差值越大),第一变化值就越大,也即是说,第一变化值的顺序即为数据点的时间顺序,因此,当数据点出现乱序(如当前数据点的时间戳对应的时间早于前一个数据点的时间戳对应的时间)时,根据当前数据点的时间戳和基准时间戳的第一变化值,即可在压缩后的数据块中找到该第一变化值所处的位置。
例如,如图4所示,数据块中存在A、B、C、D、E五个时间戳,其中A为基准时间戳(00:00:00),B、C、D和E为第一变化值,当前数据点的第一变化值为F=3,将B、C、D、E、F按大小重新进行排序,如F大于C而小于D,如图5所示,重新排序后得到A、B、C、F、D、E,F插入到C和D之间,从而无需解压缩即可实现乱序的数据点的纠正。
在计算当前数据点的数值和基准数值的第二变化值时,可通过计算当前数据点的数值和基准数值的差值得到第二变化值,例如,第二变化值等于当前数据点的数值和基准数值的差值;或者,当前数据点的数值和基准时间戳的差值和第二变化值存在映 射关系,可通过映射公式和该差值计算得到第二变化值,如映射公式为Y=cX+d,其中,Y为第二变化值,X为当前数据点的数值和基准数值的差值,c和d为常量,可根据需要自由设置。在其他实施方式中,映射公式还可以是其他公式,如二次函数、三次函数等,不限于上述的一次函数的映射公式。如此,可通过差值计算得到第二变化值,通过第二变化值表示当前数据点的数值并存储,相较于直接保存当前数据点的数值而言,根据差值得到的第二变化值可以是比当前数据点的数值更小的数值,用于存储该数值所需的存储位数也较少,从而实现了当前数据点的数值的压缩。而在解压缩以还原当前数据点的数值时,根据第二变化值即可计算得到当前数据点的数值和基准数值的差值,通过该差值和基准时间戳即可计算得到当前数据点的数值,实现当前数据点的数值的无损压缩和解压缩。
在计算当前数据点的数值和基准数值的第二变化值时,还可通过对当前数据点的数值和基准数值进行异或运算,将异或运算的结果作为第二变化值,可以理解,终端根据使用需求可预先分配好内存,每个应用程序的内存都是预先分配好的,在用户仅仅使用某个程序时,内存使用量在预设时长内(如5分钟、10分钟等)一般是不变的,因此,在基准时间戳后的预设时长内的当前数据点的数值是基本不变的,对当前数据点的数值和基准数值进行异或运算后,异或得到的第二变化值会很小,以第二变化值表示当前数据点的数值并存储,从而实现当前数据点的数值的压缩,例如,如图4所示,在存储了基准时间戳A后预设时长(如从时间戳A到时间戳E对应的时段位于基准时间戳A后的预设时长内)内,获取的当前数据点的数值(即内存使用量)和基准数值相同,如均为5%,则两者异或得到的第二变化值均为0,仅需使用一位的数据即可存储当前数据点的数值;相较于直接存储5%时需要3位的数据进行存储而言,以异或后的第二变化值存储当前数据点的数值,可实现数据的压缩,减少了当前数据点的数值所占的存储空间。且在解压缩以还原当前数据点的数值时,根据第二变化值和基准数值即可计算得到当前数据点的数值,实现当前数据点的数值的无损压缩和解压缩。当然,异或得到的第二变化值也并不一定全都能够实现数据的压缩,对于数据点的数值波动较大的指标(如CPU使用率)而言,第二变化值所需的存储位数可能等于基准数值所需的存储位数。
本申请实施方式的数据压缩方法、数据压缩装置10和数据压缩设备100通过基准时间戳和基准数值分别对当前数据点的时间戳和数值进行无损的压缩和解压缩,由于压缩后存储的第一变化值和第二变化值分别和基准时间戳和基准数值关联,当数据点出现乱序(如当前数据点的时间戳对应的时间早于前一个数据点的时间戳对应的时间)时,根据当前数据点的时间戳和基准时间戳的第一变化值,即可在压缩后的数据 块中找到该第一变化值存储的位置。相较于以相邻的数据点关联存储来对数据点进行压缩的方式中,需要对当前数据块的其他数据点解压缩以得到每个数据点的时间戳和数值,通过对比当前数据点的时间戳和每个数据点的时间戳来得到当前数据点存储的位置、再通过当前数据点关联的前一数据点的数值得到当前数据点的数值而言,存储与基准时间戳关联的第一变化值和与基准数值关联的第二变化值以实现数据点的压缩的方式无需对当前数据块中的其他数据点进行解压缩即可准确的确定当前数据点的存储位置和第二变化值,乱序写入性能明显提高。
请参阅图6,在某些实施方式中,数据压缩方法还包括:
014:按数据块对数据点进行存储,数据块存储有处于预定时段内的数据点;及
015:对数据块进行分割以得到多个组块,基准时间戳为组块中存储的第一个数据点的时间戳,基准数值为组块中存储的第一个数据点的数值。
请再次参阅图2,在某些实施方式中,数据压缩装置10还包括第二存储模块14和分割模块15。第二存储模块14和分割模块15分别用于实现步骤014和步骤015。即,第二存储模块14用于按数据块对数据点进行存储;分割模块15用于对数据块进行分割以得到多个组块。
请再次参阅图3,在某些实施方式中,存储器30还用于按数据块对数据点进行存储,数据块存储有处于预定时段内的数据点;处理器20还用于对数据块进行分割以得到多个组块,基准时间戳为组块中存储的第一个数据点的时间戳,基准数值为组块中存储的第一个数据点的数值。也即是说,步骤014可以由存储器30执行,步骤015可以由处理器20实现。
具体的,在存储器30按数据块对预定时段内的数据点存储时,由于数据块对应的预定时段一般较长,如2小时、3小时等,在较长的预定时段内,若要对一个数据点进行查询时,需要对该数据块的所有数据点均进行查询,以得到想要查询的数据点,查询效率较低,且在数据点出现乱序,进行乱序写入时,也需要将乱序的数据点的第一变化值和当前数据块的所有第一变化值进行比较才能确定乱序的数据点应该存储的位置,乱序写入的效率也较低。
因此,可将数据块分成时长较短的多个组块(如2个组块、3个组块、4个组块等等)。此时,基准时间戳为组块中存储的第一个数据点的时间戳,基准数值为组块中存储的第一个数据点的数值,使得一个组块中的数据点仅和组块中存储的第一个数据点关联。在查询数据点时,先根据查询的数据点的时间戳和每个组块的基准时间戳快速确定要查询的数据点所在的组块,然后再对组块内的数据点进行查询以得到想要查询的数据点,相较于查询整个数据块的数据点而言,查询效率较高。在乱序写入时, 同样可以根据查询的数据点的时间戳和每个组块的基准时间戳快速确定要查询的数据点所在的组块,将乱序的数据点的第一变化值和当前组块的所有第一变化值进行比较以确定乱序的数据点应该存储的位置,相较于要将乱序的数据点的第一变化值和数据块中所有第一变化值比较以确定乱序的数据点应该存储的位置而言,乱序写入的效率较高。
另外,组块的大小可根据一个指标对应的数据点的数值变化规律确定,如内存指标的内存使用量在预设时长(如5分钟、10分钟等)变化很小,则组块的时长可以为5分钟,即组块的大小根据预设时长确定,在预设时长内,指标对应的数据点的数值和基准数值的差值小于预定值。如此,每个组块中的存储的数据点的数值的和组块的基准数值的差值较小,当前数据点的数值和组块的基准数值异或得到的第二变化值较小,可提高压缩率。
请参阅图7,在某些实施方式中,数据压缩方法还包括:
016:获取查询时间戳;
017:根据查询时间戳和预定时段定位到查询时间戳对应的数据块;
018:根据查询时间戳和数据块中第一个组块的基准时间戳的时间差、及组块的时长定位到查询时间戳对应的组块,数据块中按组块对应的基准时间戳顺序存储;及
019:遍历查询查询时间戳对应的组块以获取查询时间戳对应的数据点。
请再次参阅图2,在某些实施方式中,数据压缩装置10还包括第二获取模块16、第一定位模块17、第二定位模块18和查询模块19。第二获取模块16、第一定位模块17、第二定位模块18和查询模块19分别用于执行步骤016、步骤017、步骤018和步骤019。即,第二获取模块16用于获取查询时间戳;第一定位模块17用于根据查询时间戳和预定时段定位到查询时间戳对应的数据块;第二定位模块18用于根据查询时间戳和数据块中第一个组块的基准时间戳的时间差、和组块的时长定位到查询时间戳对应的组块;查询模块19用于遍历查询查询时间戳对应的组块以获取查询时间戳对应的数据点。
请再次参阅图3,处理器20还可用于获取查询时间戳、根据查询时间戳和预定时段定位到查询时间戳对应的数据块、根据查询时间戳和数据块中第一个组块的基准时间戳的时间差、和组块的时长定位到查询时间戳对应的组块、及遍历查询查询时间戳对应的组块以获取查询时间戳对应的数据点。也即是说,步骤016、步骤017、步骤018和步骤019可以由处理器20实现。
具体的,当用户想要查看某个时刻的数据时,可输入时间戳,处理器20获取到查询时间戳后,根据查询时间戳和数据块对应的预定时段,即可定位查询时间戳对应 的数据点存储的数据块,例如,如图8所示,数据块A、数据块B、数据块C和数据块D的预定时段分别是9:00:01到11:00:00、11:00:01点到13:00:00、13:00:01到15:00:00、15:00:01点到17:00:00,查询时间戳为12:10:00,则查询时间戳位于数据块B对应的预定时段内,因此,查询时间戳对应的数据点存储在数据块B内。
在定位了查询时间戳所在的数据块后,处理器20计算查询时间戳和该数据块的第一个组块的基准时间戳的时间差,然后根据该时间差和每个组块的时长即可确定查询时间戳所在的组块。例如,如图8所示,上述数据块B划分为组块a、组块b、组块c和组块d,组块a、组块b、组块c和组块d的基准时间戳分别是11:00:01、11:30:01、12:00:01和12:30:01,组块a、组块b、组块c和组块d按基准时间戳的顺序存储,每个组块的时长相同且均为半小时,查询时间戳和组块a的基准时间戳的时间差即为1小时9分59秒,而每个组块的时长为半小时,时间差/组块的时长得到的商为2,余数为599秒(时间差和组块的时长均以秒进行表示),因此,可以确定查询时间戳所在的组块为数据块B中的第三个组块(即组块c),从而准确地定位查询时间戳所在的组块。
可以理解,为了便于快速定位查询时间戳,数据块内的组块的时长一般均相同,组块的时长可小于或等于半小时,以保证组块不会过大,影响查询效率和乱序写入效率。组块可以分为更多块(如5块、6块等),对应地,每个组块的时长就会变得更短(如24分钟、20分钟等),在此不作限制。
在定位了查询时间戳所在的组块后,可将该组块进行解压缩,通过遍历查询解压缩后的每个数据点的时间戳,即可快速地确定查询时间戳对应的数据点,从而获取到查询时间戳对应的数据。如此,只需解压缩查询时间戳对应的组块,无需将整个数据块均进行解压缩以查询查询时间戳对应的数据点,查询效率较高。
请参阅图9,在某些实施方式中,数据压缩方法还包括:
020:根据组块的时长和基准时间戳确定组块所处的预定子时段;
021:根据查询时间戳和预定子时段定位到查询时间戳对应的组块;及
022:根据查询时间戳和查询时间戳对应的组块的基准时间戳的时间差获取组块中与查询时间戳对应的数据点。
请再次参阅图2,在某些实施方式中,数据压缩装置10还包括第一确定模块20、第三定位模块21和第三获取模块22。第一确定模块20、第三定位模块21和第三获取模块22分别用于实现步骤020、步骤021和步骤022。即,第一确定模块20用于根据组块的时长和基准时间戳确定组块所处的预定子时段;第三定位模块21用于根据查询时间戳和预定子时段定位到查询时间戳对应的组块;第三获取模块22用于根 据查询时间戳和查询时间戳对应的组块的基准时间戳的时间差获取组块中与查询时间戳对应的数据点。
请再次参阅图3,在某些实施方式中,处理器20还用于根据组块的时长和基准时间戳确定组块所处的预定子时段、根据查询时间戳和预定子时段定位到查询时间戳对应的组块、及根据查询时间戳和查询时间戳对应的组块的基准时间戳的时间差获取组块中与查询时间戳对应的数据点。也即是说,步骤020、步骤021和步骤022可以由处理器20实现。
具体地,在数据块的预定时段确定后,根据组块的时长和每个组块的基准时间戳即可确定每个组块所处的预定子时段,预定子时段位于预定时段内,如图8和9所示,例如,查询时间戳对应的数据点位于数据块B中,数据块B的预定时段为11:00:01点到13:00:00,组块的时长为半小时,而数据块B中的组块a、组块b、组块c和组块d的基准时间戳分别是11:00:01、11:30:01、12:00:01和12:30:01,因此,数据块B中的组块a、组块b、组块c和组块d对应的预定子时段分别为11:00:01点到11:30:00、11:30:01点到12:00:00、12:00:01点到12:30:00、和12:30:01点到13:00:00。如此,可快速确定每个组块对应的预定子时段。
然后处理器20根据查询时间戳和预定子时段,即可快速找到查询时间戳所在的预定子时段,如查询时间戳为12.00:05,则对应的预定子时段即为12:00:01点到12:30:00,从而根据查询时间戳对应的预定子时段,定位到该预定子时段对应的组块(即,组块c),在定位到查询时间戳对应的数据点所在的组块后,处理器20根据查询时间戳和该组块的基准时间戳的时间差可计算得到查询时间戳对应的第二变化值,然后处理器20将查询时间戳对应的第二变化值和该组块内的所有第二变化值进行比对,以获取与查询时间戳对应的数据点,当然,在查询时间戳和该组块的基准时间戳的时间差为0时,即表示查询时间戳对应的数据点即为基准时间戳对应的数据点,此时直接获取基准时间戳对应的数据即可。如此,无需对当前组块进行解压缩,通过对比查询时间戳对应的第二变化值和组块中的所有第二变化值即可快速查询到查询时间戳对应的数据点,然后对该数据点单独进行解压缩即可得到查询时间戳对应的数据,查询效率更高。
请参阅图10,在某些实施方式中,数据压缩方法还包括:
023:判断当前数据点和当前数据点的前一个数据点的时间戳的时间差是否大于预定阈值;
若是,则进入步骤012;
024:若否,则根据当前数据点的时间戳定位到当前数据点对应的组块;及
025:根据当前数据点的时间戳和组块的基准时间戳的时间差确定当前数据点的存储位置并插入当前数据点到存储位置。
请再次参阅图2,在某些实施方式中,数据压缩装置10还包括判断模块23、第四定位模块24和第二确定模块25。判断模块23、第四定位模块24和第二确定模块25分别用于执行步骤023、步骤024和步骤025。即,判断模块23用于判断当前数据点和当前数据点的前一个数据点的时间戳的时间差是否大于预定阈值;计算模块12用于在当前数据点和当前数据点的前一个数据点的时间戳的时间差大于预定阈值时,计算时间戳和基准时间戳的第一变化值、和数值和基准数值的第二变化值;第四定位模块24于在当前数据点和当前数据点的前一个数据点的时间戳的时间差小于或等于预定阈值时,则根据当前数据点的时间戳定位到当前数据点对应的组块;第二确定模块25于根据当前数据点的时间戳和组块的基准时间戳的时间差确定当前数据点的存储位置并插入当前数据点到存储位置。
请再次参阅图3,在某些实施方式中,处理器20还用于判断当前数据点和当前数据点的前一个数据点的时间戳的时间差是否大于预定阈值、在当前数据点和当前数据点的前一个数据点的时间戳的时间差大于预定阈值时,则计算时间戳和基准时间戳的第一变化值、和数值和基准数值的第二变化值;在当前数据点和当前数据点的前一个数据点的时间戳的时间差小于或等于预定阈值时,则根据当前数据点的时间戳定位到当前数据点对应的组块、及根据当前数据点的时间戳和组块的基准时间戳的时间差确定当前数据点的存储位置并插入当前数据点到存储位置。也即是说,步骤022、步骤023和步骤024可以由处理器20实现。
具体地,在获取到当前数据点后,处理器20首先判断当前数据点的时间戳和前一个数据点的时间戳的时间差是否大于预定阈值(例如,预定阈值可以是0S、1S等,本实施方式中预定阈值为0S),在该时间差大于预定阈值时,可确定当前数据点的时间戳是在已经获取的所有数据点的时间戳之后,数据点的时序并没有错乱,此时可对当前数据点进行压缩(即,执行步骤012),在压缩后存储即可(即,执行步骤013)。而在该时间差小于预定阈值时,可确定当前数据点的时间戳是在已经获取的前一个数据点的时间戳之前,数据点的时序发生错乱,此时可根据当前数据点的时间戳确定该时间戳对应的组块(定位方法请参阅前述对查询时间戳的定位方法,在此不再赘述),然后根据该时间戳和该组块的基准时间戳的时间差计算得到第一变化值,通过比对该第一变化值和该组块中的所有第一变化值即可确定当前数据点的存储位置,如存储位置为相邻的两个数据点之间,该两个数据点的第一变化值分别大于该第一变化值和小于该第一变化值,如此,可准确地确定当前数据点的存储位置,然后处理器20将当 前数据点压缩后(压缩的过程请参阅步骤012和步骤013的描述)插入到存储位置,即可完成乱序的数据点的写入,无需对组块内的数据点进行解压缩。
请结合图11,本申请实施方式还提供了一种非易失性计算机可读存储介质200,非易失性计算机可读存储介质200包含计算机可执行指令202,当计算机可执行指令202被一个或多个处理器20执行时,使得处理器20执行上述任一实施方式的数据压缩方法。
例如,请结合图1,当计算机可执行指令202被一个或多个处理器20执行时,使得处理器20执行以下步骤:
011:获取当前数据点,当前数据点包括相关联的时间戳和数值;
012:计算当前数据点的时间戳和基准时间戳的第一变化值、和当前数据点的数值和基准数值的第二变化值;及
013:存储第一变化值和第二变化值。
尽管上面已经示出和描述了本申请的实施方式,可以理解的是,上述实施方式是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施方式进行变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。

Claims (20)

  1. 一种数据压缩方法,其特征在于,包括:
    获取当前数据点,所述当前数据点包括相关联的时间戳和数值;
    计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;及
    存储所述第一变化值和所述第二变化值。
  2. 根据权利要求1所述的数据压缩方法,其特征在于,所述计算所述时间戳和基准时间戳的第一变化值、和所述数值和基准数值的第二变化值,包括:
    根据所述时间戳和所述基准时间戳的差值计算所述第一变化值;及
    对所述数值和基准数值进行异或运算以计算所述第二变化值。
  3. 根据权利要求1所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
    按数据块对所述数据点进行存储,所述数据块存储有处于预定时段内的所述数据点;及
    对所述数据块进行分割以得到多个组块,所述基准时间戳为所述组块中存储的第一个所述数据点的时间戳,所述基准数值为所述组块中存储的第一个所述数据点的数值。
  4. 根据权利要求3所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
    获取查询时间戳;
    根据所述查询时间戳和所述预定时段定位到所述查询时间戳对应的所述数据块;
    根据所述查询时间戳和所述数据块中第一个所述组块的基准时间戳的时间差、和所述组块的时长定位到所述查询时间戳对应的组块,所述数据块中按所述组块对应的所述基准时间戳顺序存储;及
    遍历查询所述查询时间戳对应的组块以获取所述查询时间戳对应的数据点。
  5. 根据权利要求3所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
    根据所述组块的时长和所述基准时间戳确定所述组块所处的预定子时段;
    根据所述查询时间戳和所述预定子时段定位到所述查询时间戳对应的所述组块;及
    根据所述查询时间戳和所述查询时间戳对应的所述组块的所述基准时间戳的时间差获取所述组块中与所述查询时间戳对应的所述数据点。
  6. 根据权利要求3所述的数据压缩方法,其特征在于,所述数据压缩方法还包括:
    判断所述当前数据点和所述当前数据点的前一个数据点的时间戳的时间差是否大于预定阈值;
    若是,则进入所述计算所述时间戳和基准时间戳的第一变化值、和所述数值和基准数值的第二变化值的步骤;
    若否,则根据所述当前数据点的时间戳定位到所述当前数据点对应的所述组块;及
    根据所述当前数据点的时间戳和所述组块的基准时间戳的时间差确定所述当前数据点的存储位置并插入所述当前数据点到所述存储位置。
  7. 根据权利要求3所述的数据压缩方法,其特征在于,所述数据块中的每个所述组块的时长相同。
  8. 根据权利要求3所述的数据压缩方法,其特征在于,所述组块的时长小于半小时。
  9. 根据权利要求1所述的数据压缩方法,其特征在于,
    获取标签和指标名;及
    根据标签和指标名将所述当前数据点存储到与所述指标名和所述标签对应的数据存储区中。
  10. 一种数据压缩装置,其特征在于,包括:
    第一获取模块,用于获取当前数据点,所述当前数据点包括相关联的时间戳和数值;
    计算模块,用于计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;及
    第一存储模块,用于存储所述第一变化值和所述第二变化值。
  11. 一种数据压缩设备,其特征在于,所述数据压缩设备包括处理器和存储器, 所述处理器用于获取当前数据点,所述当前数据点包括相关联的时间戳和数值、及计算所述当前数据点的时间戳和基准时间戳的第一变化值、和所述当前数据点的数值和基准数值的第二变化值;所述存储器用于存储所述第一变化值和所述第二变化值。
  12. 根据权利要求11所述的数据压缩设备,其特征在于,所述处理器还用于根据所述时间戳和所述基准时间戳的差值计算所述第一变化值、及对所述数值和基准数值进行异或运算以计算所述第二变化值。
  13. 根据权利要求11所述的数据压缩设备,其特征在于,所述存储器还用于按数据块对所述数据点进行存储,所述数据块存储有处于预定时段内的所述数据点;所述处理器还用于对所述数据块进行分割以得到多个组块,所述基准时间戳为所述组块中存储的第一个所述数据点的时间戳,所述基准数值为所述组块中存储的第一个所述数据点的数值。
  14. 根据权利要求13所述的数据压缩设备,其特征在于,所述处理器还用于获取查询时间戳、根据所述查询时间戳和所述预定时段定位到所述查询时间戳对应的所述数据块、根据所述查询时间戳和所述数据块中第一个所述组块的基准时间戳的时间差、和所述组块的时长定位到所述查询时间戳对应的组块,所述数据块中按所述组块对应的所述基准时间戳顺序存储、及遍历查询所述查询时间戳对应的组块以获取所述查询时间戳对应的数据点。
  15. 根据权利要求13所述的数据压缩设备,其特征在于,所述处理器还用于根据所述组块的时长和所述基准时间戳确定所述组块所处的预定子时段、根据所述查询时间戳和所述预定子时段定位到所述查询时间戳对应的所述组块、及根据所述查询时间戳和所述查询时间戳对应的所述组块的所述基准时间戳的时间差获取所述组块中与所述查询时间戳对应的所述数据点。
  16. 根据权利要求13所述的数据压缩设备,其特征在于,所述处理器还用于判断所述当前数据点和所述当前数据点的前一个数据点的时间戳的时间差是否大于预定阈值、在所述当前数据点和所述当前数据点的前一个数据点的时间戳的时间差大于所述预定阈值时,则计算所述时间戳和基准时间戳的第一变化值、和所述数值和基准数值的第二变化值;在所述当前数据点和所述当前数据点的前一个数据点的时间戳的时 间差小于或等于所述预定阈值时,则根据所述当前数据点的时间戳定位到所述当前数据点对应的所述组块、及根据所述当前数据点的时间戳和所述组块的基准时间戳的时间差确定所述当前数据点的存储位置并插入所述当前数据点到所述存储位置。
  17. 根据权利要求13所述的数据压缩设备,其特征在于,所述数据块中的每个所述组块的时长相同。
  18. 根据权利要求13所述的数据压缩设备,其特征在于,所述组块的时长小于半小时。
  19. 根据权利要求13所述的数据压缩设备,其特征在于,所述处理器还用于获取标签和指标名;及根据标签和指标名将所述当前数据点存储到与所述指标名和所述标签对应的数据存储区中。
  20. 一种包含计算机可执行指令的非易失性计算机可读存储介质,当所述计算机可执行指令被一个或多个处理器执行时,使得所述处理器执行权利要求1至9中任一项所述的检测方法。
PCT/CN2020/090198 2020-05-14 2020-05-14 数据压缩方法及装置、数据压缩设备和可读存储介质 WO2021226922A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2020/090198 WO2021226922A1 (zh) 2020-05-14 2020-05-14 数据压缩方法及装置、数据压缩设备和可读存储介质
CN202080099580.8A CN115380267A (zh) 2020-05-14 2020-05-14 数据压缩方法及装置、数据压缩设备和可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/090198 WO2021226922A1 (zh) 2020-05-14 2020-05-14 数据压缩方法及装置、数据压缩设备和可读存储介质

Publications (1)

Publication Number Publication Date
WO2021226922A1 true WO2021226922A1 (zh) 2021-11-18

Family

ID=78526200

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/090198 WO2021226922A1 (zh) 2020-05-14 2020-05-14 数据压缩方法及装置、数据压缩设备和可读存储介质

Country Status (2)

Country Link
CN (1) CN115380267A (zh)
WO (1) WO2021226922A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303409A (zh) * 2023-05-24 2023-06-23 北京庚顿数据科技有限公司 超高压缩比的工业生产时序数据透明压缩方法
CN117009755A (zh) * 2023-10-07 2023-11-07 国仪量子(合肥)技术有限公司 波形数据的处理方法、计算机可读存储介质和电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050276578A1 (en) * 2002-12-26 2005-12-15 Industrial Technology Research Institute Real time data compression apparatus for a data recorder
JP2007072752A (ja) * 2005-09-07 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> 類似時系列データ計算方法、類似時系列データ計算装置、および類似時系列データ計算プログラム
CN103577456A (zh) * 2012-07-31 2014-02-12 国际商业机器公司 用于处理时序数据的方法和装置
CN106055275A (zh) * 2016-05-24 2016-10-26 深圳市敢为软件技术有限公司 数据压缩记录方法及装置
CN106330995A (zh) * 2015-06-19 2017-01-11 陕西重型汽车有限公司 用于车联网的三级数据压缩装置及其方法
CN109597588A (zh) * 2018-12-11 2019-04-09 浙江中智达科技有限公司 一种数据存储方法、数据还原方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050276578A1 (en) * 2002-12-26 2005-12-15 Industrial Technology Research Institute Real time data compression apparatus for a data recorder
JP2007072752A (ja) * 2005-09-07 2007-03-22 Nippon Telegr & Teleph Corp <Ntt> 類似時系列データ計算方法、類似時系列データ計算装置、および類似時系列データ計算プログラム
CN103577456A (zh) * 2012-07-31 2014-02-12 国际商业机器公司 用于处理时序数据的方法和装置
CN106330995A (zh) * 2015-06-19 2017-01-11 陕西重型汽车有限公司 用于车联网的三级数据压缩装置及其方法
CN106055275A (zh) * 2016-05-24 2016-10-26 深圳市敢为软件技术有限公司 数据压缩记录方法及装置
CN109597588A (zh) * 2018-12-11 2019-04-09 浙江中智达科技有限公司 一种数据存储方法、数据还原方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116303409A (zh) * 2023-05-24 2023-06-23 北京庚顿数据科技有限公司 超高压缩比的工业生产时序数据透明压缩方法
CN116303409B (zh) * 2023-05-24 2023-08-08 北京庚顿数据科技有限公司 超高压缩比的工业生产时序数据透明压缩方法
CN117009755A (zh) * 2023-10-07 2023-11-07 国仪量子(合肥)技术有限公司 波形数据的处理方法、计算机可读存储介质和电子设备
CN117009755B (zh) * 2023-10-07 2023-12-19 国仪量子(合肥)技术有限公司 波形数据的处理方法、计算机可读存储介质和电子设备

Also Published As

Publication number Publication date
CN115380267A (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
US10176208B2 (en) Processing time series data from multiple sensors
US9483533B2 (en) Method and apparatus for processing time series data
US10359939B2 (en) Data object processing method and apparatus
CN107409152B (zh) 用于压缩通过网络接收的数据的方法和装置
US20230097797A1 (en) Method and apparatus for storing and querying time series data, and server and storage medium thereof
CN111008230B (zh) 数据存储方法、装置、计算机设备及存储介质
WO2018132414A1 (en) Data deduplication using multi-chunk predictive encoding
WO2021226922A1 (zh) 数据压缩方法及装置、数据压缩设备和可读存储介质
WO2014067063A1 (zh) 重复数据检索方法及设备
US11249987B2 (en) Data storage in blockchain-type ledger
US11996868B2 (en) Adaptive delta compression for timeseries data
CN110995273B (zh) 电力数据库的数据压缩方法、装置、设备及介质
US11675768B2 (en) Compression/decompression using index correlating uncompressed/compressed content
WO2021027252A1 (zh) 块链式账本中的数据存储方法、装置及设备
CN112632568B (zh) 温度数据的存储和采集方法、系统、电子设备和存储介质
CN113078908B (zh) 一种适用于时间序列数据库的简易编解码方法
WO2021082926A1 (zh) 一种数据压缩的方法及装置
WO2024021491A1 (zh) 一种数据切片方法、装置和系统
CN113342813A (zh) 键值数据处理方法、装置、计算机设备及可读存储介质
US8972360B2 (en) Position invariant compression of files within a multi-level compression scheme
CN110389967B (zh) 数据存储方法、装置、服务器及存储介质
CN113672575A (zh) 数据压缩方法及装置、存储介质
WO2021163496A1 (en) Method for compressing sequential records of interrelated data fields
CN116865767A (zh) 一种时序数据压缩的方法及装置
KR20220060401A (ko) 지역성에 기반한 데이터 축약 방법 및 그 장치

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20935042

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 25.04.2023)

122 Ep: pct application non-entry in european phase

Ref document number: 20935042

Country of ref document: EP

Kind code of ref document: A1