CN108052285B - 一种自适应编码长度的时序数据存储的方法和装置 - Google Patents
一种自适应编码长度的时序数据存储的方法和装置 Download PDFInfo
- Publication number
- CN108052285B CN108052285B CN201711319331.1A CN201711319331A CN108052285B CN 108052285 B CN108052285 B CN 108052285B CN 201711319331 A CN201711319331 A CN 201711319331A CN 108052285 B CN108052285 B CN 108052285B
- Authority
- CN
- China
- Prior art keywords
- data
- value
- memory space
- stored
- rule
- 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
- 238000000034 method Methods 0.000 title claims abstract description 36
- 230000003044 adaptive effect Effects 0.000 title claims abstract description 13
- 238000013500 data storage Methods 0.000 title abstract description 13
- 238000012163 sequencing technique Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 13
- 230000001052 transient effect Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 230000002159 abnormal effect Effects 0.000 abstract description 17
- 230000000694 effects Effects 0.000 abstract description 8
- 230000002411 adverse Effects 0.000 abstract description 2
- 241001269238 Data Species 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 229910002056 binary alloy Inorganic materials 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0674—Disk device
- G06F3/0676—Magnetic disk device
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6011—Encoder aspects
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion 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/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/60—General implementation details not specific to a particular type of compression
- H03M7/6058—Saving memory space in the encoder or decoder
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明提供一种自适应编码长度的时序数据存储的方法和装置,包括按时间戳先后顺序获取时间戳对应的数据值,将预存储前n个数据值所需的存储空间值与预存储预设编码规则的规则信息和前n个数据值对应的编码数据所需的存储空间值的比值作为获取第n个数据值的时刻对应的存储收益,若获取第n个数据值的时刻对应的存储收益比获取第n‑1个数据值的时刻对应的存储收益小,则存储预设编码规则的规则信息和前n‑1个数据值对应的编码数据;从而引入了存储收益来判断时序数据序列中是否存在异常数据,在确定存在异常数据时,对异常数据之前所有数据按对应的编码数据存储,避免了异常数据在编码过程中造成的不良影响,保证了最佳的节省存储空间的效果。
Description
技术领域
本发明涉及数据处理技术领域,更具体地,涉及一种自适应编码长度的时序数据存储的方法和装置。
背景技术
伴随着云计算、互联网、物联网等技术的不断发展和成熟,时间序列数据(简称为时序数据)在各个领域以及人们的日常生活中占据了很大的比重。时序数据是一系列带有时间戳、依时间按照升序排列、并且来自于同一个目标的数据值,比如一段时间内的环境温度、股票价格、机器的内存使用率等等。其通常具有产生速度快、数据量大等特点。
在许多实际的应用场景中,时序数据会最终保存在磁盘上。由于数据量较大,现阶段面临的一个问题是如何高效地存储时序数据,使得占用的磁盘空间尽可能少。解决这个问题的基本思想是对数据进行编码,存储经过编码后的编码数据,即通过特定算法将原来的数据转化为另一种形式,经过这种转化之后,所需的存储空间比原来的少。目前学术和工业界已经提出了许多通用的方法,它们有一个共同点,都假定数据会按照某些规律进行变化。通过存储这些规律而不是数据本身,可以有效地减少存储空间。
但这种存储经过编码后的编码数据也会带来一系列的问题,实际的时序数据中可能存在一些异常数据(比如由于采集设备故障引起某些时刻的数据值出现异常),这种情况下对这些异常数据的编码通常需要附加大量的描述信息,导致存储的效果变差,没有达到最佳的节省存储空间的效果。
发明内容
为了克服上述问题或者至少部分地解决上述问题,本发明提供一种自适应编码长度的时序数据存储的方法和装置。
根据本发明的一个方面,提供一种自适应编码长度的时序数据存储的方法,包括:按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,第二时刻为获取第n-1个数据值的时刻。
其中,将前n个数据值按预设编码规则进行编码,获取第一编码数据,包括:将前n个数据值作一阶差分处理,获取一阶差分值;确定基准值,依次获取每一一阶差分值与基准值的差值,将每一差值作为一个编码值。
其中,确定基准值,包括:将所有一阶差分值中数值最小的一阶差分值作为基准值。
其中,确定预存储前n个数据值所需的第一存储空间值,包括:确定预存储每一数据值所使用的存储空间值;将预存储每一数据值所使用的存储空间值与n的乘积作为第一存储空间值。
其中,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,包括:确定预存储规则信息所需的存储空间值;确定预存储第一编码数据中每一编码值所需的存储空间值,在所有预存储第一编码数据中每一编码值所需的存储空间值中选取最大值作为预存储第一编码数据中每一编码值的恒定存储空间值;将预存储第一编码数据中每一编码值的恒定存储空间值与第一数量的乘积作为预存储第一编码数据所需的存储空间值,将预存储规则信息所需的存储空间值与预存储第一编码数据所需的存储空间值之和作为第二存储空间值。
其中,存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,包括:将预存储第二编码数据中每一编码值的恒定存储空间值作为实际存储空间值;将第二编码数据中编码值的数量、第一个数据值、第二编码数据中的最小编码值和实际存储空间值作为规则信息存储在数据表中;将第二编码数据中每一编码值依次按分配存储空间存储在数据表中,每一分配存储空间占用的存储空间值为实际存储空间值。
其中,存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据之后,还包括:将第n个数据值存储在单独的数据表中。
本发明的另一方面,提供一种自适应编码长度的时序数据存储的装置,包括:至少一个处理器;以及与处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,处理器调用程序指令以执行上述的方法。
本发明的又一方面,提供一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当该程序指令被计算机执行时,使计算机执行上述的方法。
本发明的又一方面,提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机程序,该计算机程序使计算机执行上述的方法。
本发明提供的一种自适应编码长度的时序数据存储的方法和装置,包括按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值,将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,第二时刻为获取第n-1个数据值的时刻;在对时序数据序列进行编码的过程中,引入了存储收益来判断时序数据序列中是否存在异常数据,在确定存在异常数据时,对异常数据之前的所有数据对应的编码数据进行存储,从而避免了异常数据在编码过程中造成的不良影响,保证了最佳的节省存储空间的效果。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为根据本发明实施例的自适应编码长度的时序数据存储的方法的流程图;
图2为根据本发明实施例的数据表的数据结构的示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明的一个实施例中,参考图1,提供一种自适应编码长度的时序数据存储的方法,包括:S11,按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;S12,将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;S13,确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;S14,若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则对预设编码规则的规则信息和前n-1个数据值对应的第二编码数据进行存储,第二时刻为获取第n-1个数据值的时刻。
具体的,时序数据是一系列带有时间戳、依时间戳按照升序排列、并且来自于同一个目标的数据值。对于时序数据,在对时序数据进行存储的时候,按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值,在获取了n个数据值时,对已获取的n个数据值按预设编码规则进行编码,获得编码数据;本实施例引入存储收益,存储收益为预存储所有数据值的存储空间值与预存储编码数据和预设编码规则的规则信息所需的总存储空间值的比值;由于对编码数据进行存储时,需要附带预设编码规则的编码信息,以便于解码,因此在存储编码数据时需要存储相应的编码规则的规则信息,所需的存储空间值为存储预设编码规则的规则信息所需的存储空间值和存储编码数据所需的存储空间值之和。
将获取第n个数据值的时刻对应的存储收益与获取第n-1个数据值的时刻对应的存储收益进行比较,若获取第n个数据值的时刻对应的存储收益小于获取第n-1个数据值的时刻对应的存储收益,则说明第n个数据值带来了存储收益的下降,很可能为异常数据值,在编码过程中需要更多的信息来描述该异常数据,导致需要更多的存储空间,从而存储收益降低;那么在实际进行存储的时候,需排除第n个数据值带来的存储收益下降的影响,只对预设编码规则的规则信息和前n-1个数据值对应的编码数据进行存储;另外,在编码数据中的编码值的数量达到预设值时,为以避免数据溢出,可将预设编码规则的规则信息当前获得的编码数据进行存储。
本实施例在对时序数据序列进行编码的过程中,引入了存储收益来判断时序数据序列中是否存在异常数据,在确定存在异常数据时,对异常数据之前的所有数据对应的编码数据进行存储,从而避免了异常数据在编码过程中造成的存储收益下降的影响,保证了最佳的节省存储空间的效果。
基于以上实施例,将前n个数据值按预设编码规则进行编码,获取第一编码数据,包括:将前n个数据值作一阶差分处理,获取一阶差分值;确定基准值,依次获取每一一阶差分值与基准值的差值,将每一差值作为一个编码值。
其中,确定基准值,包括:将所有一阶差分值中数值最小的一阶差分值作为基准值。
具体的,对前n个数据值,按一阶差分的方式获取每一数据值与该数据值之前的数据值之间的一阶差分值,然后确定一个基准值,将每一个一阶差分值分别与该基准值作差,获得差值,将每一差值作为一个编码值;将该基准值选定为所有第一差值中的最小值,可以使每一个一阶差分值分别与该基准值作差后均为非负数,即所有编码值均为非负数;由于存储的数据均需转换成二进制码,编码值均为非负数,以便于在存储过程中进行二进制转码。
基于以上实施例,确定预存储前n个数据值所需的第一存储空间值,包括:确定预存储每一数据值所使用的存储空间值;将预存储每一数据值所使用的存储空间值与n的乘积作为第一存储空间值。
具体的,在存储时序数据时,对于同一个序列的数据,对每一数据均采用相同的存储空间进行存储,以便于读写与管理,存储数据值无需附加任何描述信息,则预存储数据值所需的存储空间值就是存储每一数据值所需要的存储空间值与数据值的数量(n)的乘积。
基于以上实施例,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,包括:确定预存储规则信息所需的存储空间值;确定预存储第一编码数据中每一编码值所需的存储空间值,在所有预存储第一编码数据中每一编码值所需的存储空间值中选取最大值作为预存储第一编码数据中每一编码值的恒定存储空间值;将预存储第一编码数据中每一编码值的恒定存储空间值与第一数量的乘积作为预存储第一编码数据所需的存储空间值,将预存储规则信息所需的存储空间值与预存储第一编码数据所需的存储空间值之和作为第二存储空间值。
具体的,由于存储数据时均需转换成二进制码,编码值的大小能决定了其存储空间值,例如十进制数值“10”的二进制码是“1010”,需要4bit的存储空间,十进制数值2的二进制码是“10”,只需要2bit的存储空间,每个编码值转换成二进制码后占用的存储空间可能并不相同,为了能够在没有信息损失的情况下完整的存储所有编码值,应当选择存储每一编码值所需的存储空间值中的最大值最为存储每一编码值的实际存储空间值,将该实际存储空间值与编码值的数量的乘积即为存储编码数据所需的存储空间值;由于对编码数据进行存储时,需要附带预设编码规则的编码信息,所以还需要计算存储预设编码规则的编码信息所需的存储空间值;因此,在计算存储收益时,需考虑存储预设编码规则的编码信息所需的存储空间值的影响,根据存储编码数据所需的存储空间值与存储预设编码规则的编码信息所需的存储空间值之和来计算存储收益。
基于以上实施例,存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,包括:将预存储第二编码数据中每一编码值的恒定存储空间值作为实际存储空间值;将第二编码数据中编码值的数量、第一个数据值、第二编码数据中的最小编码值和实际存储空间值作为规则信息存储在数据表中;将第二编码数据中每一编码值依次按分配存储空间存储在数据表中,每一分配存储空间占用的存储空间值为实际存储空间值。
具体的,将预设编码规则的规则信息和前n-1个数据值对应的编码数据存储在一个数据表中,该数据表的数据结构示意图如图2所示,该数据表包括表头(header)和主体(body),表头用于存储预设编码规则的规则信息,具体包括该数据表存储的编码值的数量(number)、第一个数据值(firstValue)、最小的编码值(minDelta)和存储每个编码值的实际存储空间值(Bmax);主体用于存储编码数据(Encoding data),每个编码值占用的存储空间值均相同,为表头中的存储每个编码值的实际存储空间值。
基于以上实施例,存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据之后,还包括:将第n个数据值存储在单独的数据表中。
具体的,由于存储收益减小,则说明第n个数据值可能为异常数据,将该数据值存储在单独的数据表中,避免该数据值对其它数据值在节省存储空间的存储效果上的影响,由于只有一个数据值,该单独的数据表中,只存储“1,firstValue,0,0”,其中的firstValue为第n个数据值,由于没有编码数据,所以该单独的数据表中主体部分为空。
作为本发明的又一实施例,提供一种自适应编码长度的时序数据存储的装置,包括:至少一个处理器;以及与处理器通信连接的至少一个存储器,其中:存储器存储有可被处理器执行的程序指令,处理器调用所述程序指令以执行上述各方法实施例所提供的方法,例如包括:按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,第二时刻为获取第n-1个数据值的时刻。
作为本发明的又一个实施例,提供一种计算机程序产品,该计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,该计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,第二时刻为获取第n-1个数据值的时刻。
作为本发明的又一个实施例,提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机程序,该计算机程序使该计算机执行上述各方法实施例所提供的方法,例如包括:按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,第一编码数据包括第一数量的编码值,n为大于1的整数;确定预存储前n个数据值所需的第一存储空间值,确定预存储预设编码规则的规则信息和第一编码数据所需的第二存储空间值,将第一存储空间值与第二存储空间值的比值作为第一时刻的存储收益,第一时刻为获取第n个数据值的时刻;若第一时刻的存储收益小于第二时刻的存储收益或者第一数量达到预设值,则存储预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,第二时刻为获取第n-1个数据值的时刻。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过计算机程序指令相关的硬件来完成,前述的计算机程序可以存储于一计算机可读取存储介质中,该计算机程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (9)
1.一种自适应编码长度的时序数据存储的方法,其特征在于,包括:
按时序数据中时间戳的先后顺序依次获取每一时间戳对应的数据值;
将前n个数据值按预设编码规则进行编码,获取前n个数据值对应的第一编码数据,所述第一编码数据包括第一数量的编码值,n为大于1的整数;
确定预存储前n个数据值所需的第一存储空间值,确定预存储所述预设编码规则的规则信息和所述第一编码数据所需的第二存储空间值,将所述第一存储空间值与所述第二存储空间值的比值作为第一时刻的存储收益,所述第一时刻为获取第n个数据值的时刻;
若所述第一时刻的存储收益小于第二时刻的存储收益或者所述第一数量达到预设值,则存储所述预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,所述第二时刻为获取第n-1个数据值的时刻。
2.根据权利要求1所述的方法,其特征在于,所述将前n个数据值按预设编码规则进行编码,获取所述第一编码数据,包括:
将前n个数据值作一阶差分处理,获取一阶差分值;
确定基准值,依次获取每一一阶差分值与所述基准值的差值,将每一差值作为一个编码值。
3.根据权利要求2所述的方法,其特征在于,所述确定基准值,包括:
将所有一阶差分值中数值最小的一阶差分值作为所述基准值。
4.根据权利要求1所述的方法,其特征在于,所述确定预存储前n个数据值所需的第一存储空间值,包括:
确定预存储每一数据值所使用的存储空间值;
将预存储每一数据值所使用的存储空间值与n的乘积作为所述第一存储空间值。
5.根据权利要求1所述的方法,其特征在于,所述确定预存储所述预设编码规则的规则信息和所述第一编码数据所需的第二存储空间值,包括:
确定预存储所述规则信息所需的存储空间值;
确定预存储所述第一编码数据中每一编码值所需的存储空间值,在所有预存储所述第一编码数据中每一编码值所需的存储空间值中选取最大值作为预存储所述第一编码数据中每一编码值的恒定存储空间值;
将预存储所述第一编码数据中每一编码值的恒定存储空间值与所述第一数量的乘积作为预存储所述第一编码数据所需的存储空间值,将预存储所述规则信息所需的存储空间值与预存储所述第一编码数据所需的存储空间值之和作为所述第二存储空间值。
6.根据权利要求1所述的方法,其特征在于,所述存储所述预设编码规则的规则信息和前n-1个数据值对应的第二编码数据,包括:
将预存储所述第二编码数据中每一编码值的恒定存储空间值作为实际存储空间值;
将所述第二编码数据中编码值的数量、第一个数据值、所述第二编码数据中的最小编码值和所述实际存储空间值作为所述规则信息存储在数据表中;
将所述第二编码数据中每一编码值依次按分配存储空间存储在所述数据表中,每一分配存储空间占用的存储空间值为所述实际存储空间值。
7.根据权利要求1所述的方法,其特征在于,所述存储所述预设编码规则的规则信息和前n-1个数据值对应的第二编码数据之后,还包括:
将第n个数据值存储在单独的数据表中。
8.一种自适应编码长度的时序数据存储的装置,其特征在于,包括:
至少一个处理器;以及与所述处理器通信连接的至少一个存储器,其中:
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令以执行如权利要求1至7任一所述的方法。
9.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行如权利要求1至7任一所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711319331.1A CN108052285B (zh) | 2017-12-12 | 2017-12-12 | 一种自适应编码长度的时序数据存储的方法和装置 |
US16/769,913 US11101818B2 (en) | 2017-12-12 | 2018-12-12 | Method and device for storing time series data with adaptive length encoding |
PCT/CN2018/120596 WO2019114753A1 (zh) | 2017-12-12 | 2018-12-12 | 一种自适应编码长度的时序数据存储的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711319331.1A CN108052285B (zh) | 2017-12-12 | 2017-12-12 | 一种自适应编码长度的时序数据存储的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108052285A CN108052285A (zh) | 2018-05-18 |
CN108052285B true CN108052285B (zh) | 2018-12-11 |
Family
ID=62124300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711319331.1A Active CN108052285B (zh) | 2017-12-12 | 2017-12-12 | 一种自适应编码长度的时序数据存储的方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11101818B2 (zh) |
CN (1) | CN108052285B (zh) |
WO (1) | WO2019114753A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112198818B (zh) * | 2019-07-08 | 2022-05-13 | 浙江宇视科技有限公司 | 步进式驱动结构的控制方法、装置、设备及存储介质 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108052285B (zh) | 2017-12-12 | 2018-12-11 | 清华大学 | 一种自适应编码长度的时序数据存储的方法和装置 |
CN111510153B (zh) * | 2019-01-31 | 2023-05-09 | 阿里巴巴集团控股有限公司 | 数列的压缩、解压缩方法和装置以及电子设备 |
CN110545106B (zh) * | 2019-08-06 | 2020-07-17 | 清华大学 | 时序数据的编码方法及装置 |
CN113420250A (zh) * | 2021-07-19 | 2021-09-21 | 卢恩妍 | 一种基于物联网的数据控制方式及系统 |
CN114547025B (zh) * | 2022-02-09 | 2023-07-14 | 中国长江三峡集团有限公司 | 一种储能电站数据处理方法、装置及计算机设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
CN104753539A (zh) * | 2013-12-26 | 2015-07-01 | 中国移动通信集团公司 | 一种数据压缩方法及装置 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3717851A (en) * | 1971-03-03 | 1973-02-20 | Ibm | Processing of compacted data |
JP3368157B2 (ja) * | 1996-11-18 | 2003-01-20 | キヤノン株式会社 | データ圧縮装置、方法及びシステム |
DE19851690A1 (de) * | 1998-11-10 | 2000-05-11 | Ibm | Residuum-Prüfung von Datenumwandlungen |
KR101824044B1 (ko) * | 2011-05-17 | 2018-01-31 | 삼성전자주식회사 | 부호화 출력 기능을 구비한 데이터 저장 장치 및 시스템 |
CN102737132A (zh) | 2012-06-25 | 2012-10-17 | 天津神舟通用数据技术有限公司 | 基于数据库行列混合存储的多规则复合压缩方法 |
US9628107B2 (en) * | 2014-04-07 | 2017-04-18 | International Business Machines Corporation | Compression of floating-point data by identifying a previous loss of precision |
GB2539966B (en) * | 2015-07-03 | 2017-08-30 | Sisp Tech Ltd | Data processing method and apparatus |
JP2017122951A (ja) * | 2016-01-04 | 2017-07-13 | 富士通株式会社 | 情報処理装置、十進数変換方法および十進数変換プログラム |
WO2018007809A1 (en) * | 2016-07-04 | 2018-01-11 | Sisp Technologies Ltd | Data processing method and apparatus |
CN106126728A (zh) * | 2016-07-04 | 2016-11-16 | 上海电气集团股份有限公司 | 一种实时数据分布式并行压缩的方法 |
CN110677157B (zh) * | 2017-06-27 | 2023-02-07 | 华为技术有限公司 | 信息处理的方法、装置和通信设备 |
CN108052285B (zh) * | 2017-12-12 | 2018-12-11 | 清华大学 | 一种自适应编码长度的时序数据存储的方法和装置 |
US10491240B1 (en) * | 2019-01-17 | 2019-11-26 | Cyborg Inc. | Systems and methods for variable length codeword based, hybrid data encoding and decoding using dynamic memory allocation |
-
2017
- 2017-12-12 CN CN201711319331.1A patent/CN108052285B/zh active Active
-
2018
- 2018-12-12 US US16/769,913 patent/US11101818B2/en active Active
- 2018-12-12 WO PCT/CN2018/120596 patent/WO2019114753A1/zh active Application Filing
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103577456A (zh) * | 2012-07-31 | 2014-02-12 | 国际商业机器公司 | 用于处理时序数据的方法和装置 |
CN104753539A (zh) * | 2013-12-26 | 2015-07-01 | 中国移动通信集团公司 | 一种数据压缩方法及装置 |
Non-Patent Citations (1)
Title |
---|
海量气象数据实时解析与存储系统的设计与实现;王若曈等;《计算机工程与科学》;20151130;第37卷(第11期);第2045-2054页 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112198818B (zh) * | 2019-07-08 | 2022-05-13 | 浙江宇视科技有限公司 | 步进式驱动结构的控制方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
US20200395954A1 (en) | 2020-12-17 |
WO2019114753A1 (zh) | 2019-06-20 |
CN108052285A (zh) | 2018-05-18 |
US11101818B2 (en) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108052285B (zh) | 一种自适应编码长度的时序数据存储的方法和装置 | |
CN110956272B (zh) | 实现数据处理的方法和系统 | |
CN112232439B (zh) | 非监督ReID中的伪标签更新方法及系统 | |
CN109872049B (zh) | 资源配置优化方法及装置 | |
US11294712B2 (en) | Method, device and computer program product for task management | |
CN110545106B (zh) | 时序数据的编码方法及装置 | |
US8899343B2 (en) | Replacing contiguous breakpoints with control words | |
US20210055973A1 (en) | Automatic task distribution and optimization using machine learning and artificial intelligence | |
CN106708875B (zh) | 一种特征筛选方法及系统 | |
CN110298615A (zh) | 用于选择仓库中的货品的方法、装置、介质和计算设备 | |
CN111415200A (zh) | 数据处理方法及装置 | |
CN103246575B (zh) | 软件有效代码量统计方法和装置 | |
CN115563310A (zh) | 一种关键业务节点的确定方法、装置、设备及介质 | |
CN113296788B (zh) | 指令调度方法、装置、设备及存储介质 | |
CN108196791A (zh) | 基于多个存储设备的数据访问方法及装置 | |
CN112418534B (zh) | 揽件量预测方法及装置、电子设备、计算机可读存储介质 | |
CN108564135B (zh) | 构建骨架程序并实现高性能计算程序运行时间预测的方法 | |
CN106970852A (zh) | 闪存错误控制电路及其方法 | |
CN113222651B (zh) | 广告投放模型统计类特征离散化方法、系统、设备及介质 | |
CN106658228A (zh) | 视频时长的划分方法及装置 | |
CN110197383A (zh) | 获取客户群的用户集的方法和装置 | |
US20230214757A1 (en) | Optimization processing apparatus, optimization processing method, and computer readable recording medium | |
CN110472945A (zh) | 批量流水号自动分配方法及系统 | |
CN107315676B (zh) | 高影响程度故障码挖掘方法及计算机可读存储介质 | |
CN103840970A (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 |