CN101923569A - 一种实时数据库的结构类型数据的存储方法 - Google Patents

一种实时数据库的结构类型数据的存储方法 Download PDF

Info

Publication number
CN101923569A
CN101923569A CN 201010223091 CN201010223091A CN101923569A CN 101923569 A CN101923569 A CN 101923569A CN 201010223091 CN201010223091 CN 201010223091 CN 201010223091 A CN201010223091 A CN 201010223091A CN 101923569 A CN101923569 A CN 101923569A
Authority
CN
China
Prior art keywords
point
data
field
max
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.)
Granted
Application number
CN 201010223091
Other languages
English (en)
Other versions
CN101923569B (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.)
CHINA REALTIME DATABASE Co Ltd
State Grid Corp of China SGCC
Original Assignee
NANJING LUCULENT SOFTWARE 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 NANJING LUCULENT SOFTWARE CO Ltd filed Critical NANJING LUCULENT SOFTWARE CO Ltd
Priority to CN2010102230917A priority Critical patent/CN101923569B/zh
Publication of CN101923569A publication Critical patent/CN101923569A/zh
Application granted granted Critical
Publication of CN101923569B publication Critical patent/CN101923569B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

一种实时数据库数据的结构化存储方法,包括以下步骤:1)按字段分解;2)按字段存储;3)字段处理完成判断;4)数据处理完成判断。本发明采用了把结构类型的数据分解成为实时数据库的标签,并且一一对应,从而可以对结构类型的每个字段分离存储,从而降低单条数据的长度,减小单条记录对系统性能的影响;通过对浮点类型字段值进行阶码分解和替换后,可以通过实时数据库对数据的压缩产生较大的压缩效率,特别是使用排序线性拟合方法更可以获得非常高的压缩比,从而达到对结构化数据高效存储和压缩的目的,具有较高的实际应用价值。

Description

一种实时数据库的结构类型数据的存储方法
技术领域
本发明属于数据存储技术领域,涉及实时监控环境产生的数据的存储,特别是对由结构组成的大批量实时数据的存储处理,为一种实时数据库的结构类型数据的存储方法。
背景技术
对于一些实时监控环境产生的数据,除具有数量巨大,采集频度高,持续时间长等特点外,还需要对结构类型的数据进行存储。对这些大批量采样点的结构类型数据的处理,特别是如何对采样点的结构类型实时数据进行即时存储,并且如何对这些存储的结构类型历史数据进行快速高效的访问和分析,就成为实现实时数据库的结构类型数据存储技术的重点和难点。
实时数据库是通过设置标签的方式来对一个测点的数据进行存储,一般测点与标签是一一对应的关系。每个标签在实时数据库中由一个唯一的标识ID来表示。每个测点的存储字段通常由标签ID、时间戳、质量码和值组成。实时数据库为了提供存取数据的高效率和压缩数据的高效率,对测点的值一般仅提供对简单类型数据的存储,比如单精度浮点数类型,双精度浮点数类型,二进制数据块类型等。
其中浮点类型的数据在计算机中的具体存储方式现在通常采用IEEE754标准。该标准规定基数为2,阶码E用移码表示,尾数M用原码表示,根据原码的规格化方法,最高数字位总是1,该标准将这个1缺省存储。对于单精度浮点型符号位1bit,阶码8bit,尾数23bit,共32bit占4个字节;对于双精度浮点型符号位1bit,阶码11bit,尾数52bit,共64bit占8个字节。
对于结构类型数据来说,其数据体本身是由多种简单类型数据按照一定规则构造而成,实时数据库无法直接使用简单数据类型对结构类型数据进行存储。现在实时数据库对于结构化类型数据的存储,一般的处理方法是把结构类型数据转换为二进制数据块,然后再存储到数据库中,这种方法有两个比较大的缺点:一是由二进制数据块构成的记录,单条记录的长度可能会比较大,从而导致实时数据库存取效率降低;二是现有的实时数据库的数据压缩方法对二进制数据块的压缩效率通常比较低,或者根本不提供对二进制数据块的压缩方法,使得实时数据库的压缩效率降低。总体来说,实时数据库本身提供的存储和压缩方式对于存储结构化数据来说,在存储和查询效率、磁盘存储空间占用方面都存在较大的问题。
发明内容
本发明要解决的问题是:对于实时监控环境产生的结构类型数据,需要进行即时存储并且对存储的历史数据进行快速高效的访问和分析,要在有限的物理存储空间中存储大量的历史数据,同时还需要考虑数据能够被快速的存储和访问,现有的实时数据存储方法不能满足这些要求,易受数据长度和压缩效率影响,使得整体存储效率不够理想。
本发明的技术方案为:实时数据库中结构类型数据的存储方法,采集的结构类型数据构成结构类型数据缓冲队列,从结构类型数据缓冲队列获取数据,进行以下步骤:
1)按字段分解:把获取的结构类型数据的所有字段分解为实时数据库的标签,使每个字段都对应实时数据库中的唯一一个标签ID;
2)按字段存储:对结构类型数据各字段对应的标签ID,输入与该字段对应的历史数据进行存储,包括以下步骤:
21)值分解:把各字段的浮点值基于浮点数构成标准IEEE754按域分解为符号段sign、阶码段exps和尾数段tail,具体为:对单精度浮点类型的浮点值,共4字节32bit,将高1bit存储到符号段sign的低1bit中,高2-9bit存储到阶码段exps中,低23bit存储到尾数段tail的低23bit中,不足位的部分都以0填充,其中符号段sign和阶码段exps为1字节,尾数段tail为4字节;对双精度浮点类型的浮点值,共8字节64bit,将高1bit存储到符号段sign的低1bit中,高2-12bit存储到阶码段exps中,低52bit存储到尾数段tail的低52bit中,不足位的部分都以0填充,其中符号段sign为1字节,阶码段exps为2字节,尾数段tail为8字节;
22)阶码替换:对单精度浮点类型的浮点值,把尾数段tail的高9bit用整数127替换;对双精度浮点类型的浮点值,把尾数段tail中的高12bit用整数1023替换;进行阶码替换后的尾数段tail作为该字段的值;
23)尾数段tail按值大小排序:将阶码替换后获得的尾数段tail的值进行排序处理,按照值的大小从小到大进行排序,排序后每个值对应一个位序;
24)值域线性拟合:对于排好顺序的值,以其位序为横坐标,值为纵坐标建立值域,按照排序顺序对其依序进行线性拟合处理,线性拟合处理最终获得两个点,这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从而达到数据压缩的目的;线性拟合处理中,各个点到已获得的拟合直线的距离偏差均在设定的压缩精度范围内,如所处理的点到拟合直线的距离偏差在设定的压缩精度范围外,则以这一点为起点开始新的线性拟合处理;
25)按域组合:根据线性拟合得到的数据,对字段进行域分隔,产生标识域、时间域和数据值域三部分,标识域存储字段的标签ID,时间域为数据进行存储时的时间戳,数据值域包括符号段sign、阶码段exps和线性拟合处理后的尾数段tail数据,把三个域的内容顺序组合在一起构成数据块;
26)哈弗曼压缩存储:把按域组合得到的数据块进行哈弗曼编码压缩,并存储压缩后的数据;
3)字段处理完成判断:检查结构类型数据的每个字段对应的标签ID是否都已处理,如果完成则执行步骤4),没有完成则回到步骤2);
4)数据处理完成判断:检查获取的历史数据是否都已完成存储过程,如果完成则获取新的历史数据,开始下一轮存储处理,没有完成则回到步骤1)。
进一步的,从结构类型数据缓冲队列获取历史数据时,先进行缓冲数据量判断,设定一次处理数据量的限值,对从历史数据缓冲队列获取的历史数据量与所述限值进行比较,超过限值,则对获取的历史数据按字段分解,否则继续从历史数据缓冲队列获取历史数据。
本发明值域线性拟合具体为:
241)设置起点和待压点并保存起点:对于排好顺序的历史数据的值,按照排序顺序依序进行处理,按位序取出待处理的第一个点作为拟合起点(x1,y1),下一点作为待压点(xn,yn),如果本步骤是第一次执行则存储起点(x1,y1);
242)求出待压点的门限点和门限点斜率范围:设置压缩精度d%,求出待压点(xn,yn)的两个门限点(xn,yn±|ynd%|),所述门限点是指点值按照压缩精度确定的可近似范围边界,可近似范围为[yn-|ynd%|,yn+|ynd%|],然后分别求出从拟合起点(x1,y1)到两个门限点所确定直线的斜率范围的最小值knmin和最大值knmax:
[ k n min , k n max ] = [ ( y n - | y n d % | ) - y 1 x n - x 1 , ( y n + | y n d % | ) - y 1 x n - x 1 ]
通过[knmin,knmax]确定本次拟合过程的斜率判断范围[kmin,kmax]:
[kmin,kmax]=[knmin,knmax]
243)数据量判断:按位序检查待压点是否还存在下一点,如果没有下一点,则转到步骤247)保存待压点;如果存在下一点,则转到步骤244);
244)获得判断点并求出起点到判断点的斜率:按位序取出待压点的下一点作为判断点(xn+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1
k n + 1 = y n + 1 - y 1 x n + 1 - x 1
245)斜率范围判断:检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可以被压缩,转到步骤246);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程,转到步骤247);
246)丢弃当前待压点并重新设置新待压点:丢弃待压点(xn,yn),把判断点(xn+1,yn+1)设置为新待压点,求出新待压点的两个门限点(xn+1,yn+1±|yn+1d%|),再分别求出从起点到两个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1max:
[ k n + 1 min , k n + 1 max ] = [ ( y n + 1 - | y n + 1 d % | ) - y 1 x n + 1 - x 1 , ( y n + 1 + | y n + 1 d % | ) - y 1 x n + 1 - x 1 ]
更新斜率判断范围[kmin,kmax]:
[kmin,kmax]=[max(kmin,kn+1min),min(kmax,kn+1max)]
新待压点设置好后,继续步骤243);
247)保存待压点:存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处理的第一个点设置为新一轮压缩的拟合起点,转到步骤241)进行下一拟合过程的处理。
本发明提供了一种实时数据库的结构类型数据的存储方法,它能够对结构类型的数据进行存储,并通过对字段值的阶码替换处理,使得存储的值更加有利于实时数据的压缩,可以达到较大的提高压缩效率和存储效率的目的。
本发明的有益效果在于:本发明采用了通过实时数据库的标签来分解结构类型的数据,从而可以对结构类型的每个字段分离存储,降低实时数据库的单条数据的长度,减小单条记录对系统性能的影响;对浮点类型字段值,按照IEEE754标准分解为符号段sign、阶码段exps和尾数段tail,然后使用固定整数127和1023分别替换单精度和双精度尾数段tail的阶码,使得替换阶码后的浮点数值的有效范围缩小为1.0到2.0之间,然后再使用排序线性拟合方法可以获得较高的有损压缩比,最后对数据按域组合,使得数据的相似部分接近,并进行哈弗曼无损编码压缩,这样同时获得较高的无损压缩比。数据还原时针对单精度或双精度浮点类型只需要用原符号段sign和阶码段替换尾数段的高9bit或12bit即可,还原精度与压缩时要求的拟合精度是完全一致的。
附图说明
图1是本发明方法的流程图。
图2是本发明方法中的按字段存储方法的流程图。
图3是本发明方法中的线性拟合压缩方法的流程图。
图4是本发明方法中的线性拟合压缩方法的步骤示意图。
图5是结构字段A采样点的示意图。
图6是结构字段B采样点的示意图。
图7是存储比较示意图。
图8是结构字段A还原的示意图。
图9是结构字段B还原的示意图。
具体实施方式
以下结合附图对本发明做进一步说明。
图1和图2是本发明一种实时数据库的结构类型数据的存储方法的流程图。包括以下步骤:
1)按字段分解:从结构数据缓冲队列获取历史数据,把结构数据的所有字段分解为实时数据库的标签,每个字段都对应实时数据库中的唯一一个标签ID;
2)按字段存储:对该字段对应的标签ID输入缓存中的所有历史数据进行历史数据存储处理;
3)字段处理完成判断:检查结构的每个字段对应的标签ID是否都已处理,如果完成则执行步骤4),没有完成则回到步骤2);
4)数据处理完成判断:检查获取的历史数据是否都已完成存储过程,如果完成则获取新的历史数据,执行步骤1)开始下一轮存储处理,没有完成则回到步骤2)。
其中,步骤1)优选进行预处理:
11)获取当前历史缓冲队列中存储的缓冲数据量;
12)缓冲数据量判断:设定一次处理数据量的限值,对从历史数据缓冲队列获取的历史数据量与所述限值进行比较,超过限值,则对获取的历史数据按字段分解,否则继续从历史数据缓冲队列获取历史数据。
下面具体介绍本发明的按字段存储方法步骤,如图2所示:
21)值分解:把各字段的浮点值基于浮点数构成标准IEEE754按域分解为符号段sign、阶码段exps和尾数段tail,具体为:对单精度浮点类型的浮点值,共4字节32bit,将高1bit存储到符号段sign的低1bit中,高2-9bit存储到阶码段exps中,低23bit存储到尾数段tail的低23bit中,不足位的部分都以0填充,其中符号段sign和阶码段exps为1字节,尾数段tail为4字节;对双精度浮点类型的浮点值,共8字节64bit,将高1bit存储到符号段sign的低1bit中,高2-12bit存储到阶码段exps中,低52bit存储到尾数段tail的低52bit中,不足位的部分都以0填充,其中符号段sign为1字节,阶码段exps为2字节,尾数段tail为8字节;
22)阶码替换:对单精度浮点类型的浮点值,把尾数段tail的高9bit用整数127替换;对双精度浮点类型的浮点值,把尾数段tail中的高12bit用整数1023替换;进行阶码替换后的尾数段tail作为该字段的值;
23)尾数段tail按值大小排序:将阶码替换后获得的尾数段tail的值进行排序处理,按照值的大小从小到大进行排序,排序后每个值对应一个位序;
24)值域线性拟合:对于排好顺序的值,以其位序为横坐标,值为纵坐标建立值域,按照排序顺序对其依序进行线性拟合处理,线性拟合处理最终获得两个点,这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从而达到数据压缩的目的;线性拟合处理中,各个点到已获得的拟合直线的距离偏差均在设定的压缩精度范围内,如所处理的点到拟合直线的距离偏差在设定的压缩精度范围外,则以这一点为起点开始新的线性拟合处理;
25)按域组合:根据线性拟合得到的数据,对字段进行域分隔,产生标识域、时间域和数据值域三部分,标识域存储字段的标签ID,时间域为数据进行存储时的时间戳,数据值域包括符号段sign、阶码段exps和线性拟合处理后的尾数段tail数据,把三个域的内容顺序组合在一起构成数据块;
26)哈弗曼压缩存储:把按域组合得到的数据块进行哈弗曼编码压缩,并存储压缩后的数据;
下面具体介绍本发明的值域线性拟合步骤,如图3所示:
值域线性拟合具体为:
241)设置起点和待压点并保存起点:对于排好顺序的值,按照排序顺序依序进行处理,按位序取出待处理的第一个点作为拟合起点(x1,y1),下一点作为待压点(xn,yn),如果本步骤是第一次执行则存储起点(x1,y1);
242)求出待压点的门限点和门限点斜率范围:设置压缩精度d%,求出待压点(xn,yn)的两个门限点(xn,yn±|ynd%|),所述门限点是指点值按照压缩精度确定的可近似范围边界,可近似范围为[yn-|ynd%|,yn+|ynd%|],然后分别求出从拟合起点(x1,y1)到两个门限点所确定直线的斜率范围的最小值knmin和最大值knmax:
[ k n min , k n max ] = [ ( y n - | y n d % | ) - y 1 x n - x 1 , ( y n + | y n d % | ) - y 1 x n - x 1 ]
通过[knmin,knmax]确定本次拟合过程的斜率判断范围[kmin,kmax]:
[kmin,kmax]=[knmin,knmax]
243)数据量判断:按位序检查待压点是否还存在下一点,如果没有下一点,则转到步骤247)保存待压点;如果存在下一点,则转到步骤244);
244)获得判断点并求出起点到判断点的斜率:按位序取出待压点的下一点作为判断点(xn+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1
k n + 1 = y n + 1 - y 1 x n + 1 - x 1
245)斜率范围判断:检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可以被压缩,转到步骤246);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程,转到步骤247);
246)丢弃当前待压点并重新设置新待压点:丢弃待压点(xn,yn),把判断点(xn+1,yn+1)设置为新待压点,求出新待压点的两个门限点(xn+1,yn+1±|yn+1d%|),再分别求出从起点到两个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1max:
[ k n + 1 min , k n + 1 max ] = [ ( y n + 1 - | y n + 1 d % | ) - y 1 x n + 1 - x 1 , ( y n + 1 + | y n + 1 d % | ) - y 1 x n + 1 - x 1 ]
更新斜率判断范围[kmin,kmax]:
[kmin,kmax]=[max(kmin,kn+1min),min(kmax,kn+1max)]
新待压点设置好后,继续步骤243);
247)保存待压点:存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处理的第一个点设置为新一轮压缩的拟合起点,转到步骤241)进行下一拟合过程的处理。
图4为值域线性拟合算法的实例模拟示意图。首先设置起点和待压点并保存起点。按位序取出待处理的第一个点S设置为起点,下一点A1设置为待压点,把起点S保存到结果队列中。然后,求出待压点的门限点和门限点斜率范围。两个门限点AH和AL按照设置的压缩精度d%通过下式确定:
AH=(xn,yn+|ynd%|)
AL=(xn,yn-|ynd%|)
由起点到两个门限点确定的直线的斜率通过下式得到:
k n min = ( y n - | y n d % | ) - y 1 x n - x 1
k n max = ( y n + | y n d % | ) - y 1 x n - x 1
通过下式得到斜率判断范围[kmin,kmax]:
[kmin,kmax]=[knmin,knmax]
然后,进行数据量判断。检查是否还存在下一点,如果没有下一点,表示处理过程结束,保存当前的待压点到结果队列中;如果存在下一点,则执行获得判断点并求出起点到判断点的斜率。取出缓冲中当前待处理的点C作为判断点,用于检查待压点A1是否可以被压缩,通过下式求出起点S到判断点C的斜率:
k n + 1 = y n + 1 - y 1 x n + 1 - x 1
然后,斜率范围判断。检查kn+1是否在[kmin,kmax]范围内,不在此范围内,表示待压点A1不能被压缩,需要开始新的压缩过程,本次压缩过程结束,则执行保存待压点A1;如果在此范围内,表示待压点A1可以被压缩,执行丢弃当前待压点并把判断点设置为待压点。
丢弃待压点A,把判断点C设置为新的待压点A’,通过下式求出待压点的两个门限点:
AH=(xn+1,yn+1+|yn+1d%|)
AL=(xn+1,yn+1-|yn+1d%|)
再通过下式分别求出从起点到两个门限点所确定直线的斜率范围的最大值和最小值:
k n + 1 min = ( y n + 1 - | y n + 1 d % | ) - y 1 x n + 1 - x 1
k n + 1 max = ( y n + 1 + | y n + 1 d % | ) - y 1 x n + 1 - x 1
通过下式更新斜率判断范围[kmin,kmax]:
[kmin,kmax]=[max(kmin,kn+1min),min(kmax,kn+1max)]
继续执行数据量判断,进行后续点的处理,直到线性拟合步骤全部结束。
线性拟合步骤结束,进行按域组合。将线性拟合的各种数据分为标识域、时间域、数据值域三个部分存储,标识域存储压缩标识,也就是标签ID,压缩标识同时按位序来标识值域中在该位序的数据是否被压缩,时间域存储每一个存储的数据本身所对应的时间;数据值域存储线性拟合中与拟合处理相关的数据,由符号段sign、阶码段exps和线性拟合处理后的尾数段tail数据三个部分组成。把三个域的内容顺序组合在一起构成数据块。
哈弗曼压缩存储:把按域组合得到的数据块进行哈弗曼编码压缩,并存储压缩后的数据。
进行字段处理完成判断,检查结构的每个字段对应的标签ID是否都已处理,如果完成则执行步骤4),没有完成则回到步骤2)。
进行数据处理完成判断,检查历史缓冲队列中的数据是否已经全部处理完成,如果完成则获取新的历史数据,执行步骤11)开始下一轮压缩,没有完成则回到步骤1)。
本发明方法存储的数据,对结构数据进行还原,按照各个字段对应的标签ID和值域线性拟合的数据,读取出存储的各字段值,根据值域线性拟合后得到的拟合点值、值域坐标及位序,读出被压缩的各字段的拟合字段值,然后对拟合字段值进行还原处理。对4字节32bitd单精度和8字节64bit双精度类型的数据,分别把尾数段tail的的高位以0填充到32bit/64bit,然后使用存储的符号段sign,阶码段exps对32bit/64bit的尾数段tail的高位进行替换。单精度浮点型使用sign替换高1bit,exps替换高2-9bit;双精度浮点型使用sign替换高1bit,exps替换高2-12bit,处理后的尾数段tail值就是原值,把所有字段值还原后组合成的结构就是还原的存储的原结构数据。
为了更好的说明本发明的方法在结构数据存储方面的优势,采用仿真方式对一个结构数据利用本发明的方法进行压缩,并与二进制数据块存储进行比较。
图5和图6分别是一个结构数据的两个字段A和B的原始采样数据曲线。图7是分别使用二进制块存储结构数据和使用本发明方法存储结构数据的存储空间占用随时间变化的曲线情况,其中曲线X是使用二进制块存储的情况,曲线Y是使用本发明方法的情况,可以很明显的看出使用二进制块存储基本达不到数据压缩的目的,而只用本发明方法可以达到11%的压缩率。图8和图9是使用本发明方法压缩数据的结构字段A和B的还原曲线,可以看出还原曲线与原曲线的拟合程序是非常接近的,还原精度满足设定的压缩精度要求。
通过以上的仿真实验,说明本发明的结构数据存储方法在确保数据了还原精度前提下,可以获得较高数据压缩比,占用较小的存储空间。本发明的存储方法对于绝大多数结构数据的处理,基本可以获得较好的效果,而且随着数据量的增大,将趋向更好的存储效果。

Claims (3)

1.实时数据库中结构类型数据的存储方法,其特征是采集的结构类型数据构成结构类型数据缓冲队列,从结构类型数据缓冲队列获取数据,进行以下步骤:
1)按字段分解:把获取的结构类型数据的所有字段分解为实时数据库的标签,使每个字段都对应实时数据库中的唯一一个标签ID;
2)按字段存储:对结构类型数据各字段对应的标签ID,输入与该字段对应的历史数据进行存储,包括以下步骤:
21)值分解:把各字段的浮点值基于浮点数构成标准IEEE754按域分解为符号段sign、阶码段exps和尾数段tail,具体为:对单精度浮点类型的浮点值,共4字节32bit,将高1bit存储到符号段sign的低1bit中,高2-9bit存储到阶码段exps中,低23bit存储到尾数段tail的低23bit中,不足位的部分都以0填充,其中符号段sign和阶码段exps为1字节,尾数段tail为4字节;对双精度浮点类型的浮点值,共8字节64bit,将高1bit存储到符号段sign的低1bit中,高2-12bit存储到阶码段exps中,低52bit存储到尾数段tail的低52bit中,不足位的部分都以0填充,其中符号段sign为1字节,阶码段exps为2字节,尾数段tail为8字节;
22)阶码替换:对单精度浮点类型的浮点值,把尾数段tail的高9bit用整数127替换;对双精度浮点类型的浮点值,把尾数段tail中的高12bit用整数1023替换;进行阶码替换后的尾数段tail作为该字段的值;
23)尾数段tail按值大小排序:将阶码替换后获得的尾数段tail的值进行排序处理,按照值的大小从小到大进行排序,排序后每个值对应一个位序;
24)值域线性拟合:对于排好顺序的值,以其位序为横坐标,值为纵坐标建立值域,按照排序顺序对其依序进行线性拟合处理,线性拟合处理最终获得两个点,这两个点连接的直线为拟合直线,通过拟合直线来拟合排序在这两个点之间的所有点,从而达到数据压缩的目的;线性拟合处理中,各个点到已获得的拟合直线的距离偏差均在设定的压缩精度范围内,如所处理的点到拟合直线的距离偏差在设定的压缩精度范围外,则以这一点为起点开始新的线性拟合处理;
25)按域组合:根据线性拟合得到的数据,对字段进行域分隔,产生标识域、时间域和数据值域三部分,标识域存储字段的标签ID,时间域为数据进行存储时的时间戳,数据值域包括符号段sign、阶码段exps和线性拟合处理后的尾数段tail数据,把三个域的内容顺序组合在一起构成数据块;
26)哈弗曼压缩存储:把按域组合得到的数据块进行哈弗曼编码压缩,并存储压缩后的数据;
3)字段处理完成判断:检查结构类型数据的每个字段对应的标签ID是否都已处理,如果完成则执行步骤4),没有完成则回到步骤2);
4)数据处理完成判断:检查获取的历史数据是否都已完成存储过程,如果完成则获取新的历史数据,开始下一轮存储处理,没有完成则回到步骤1)。
2.根据权利要求1所述的一种实时数据库的结构类型数据的存储方法,其特征是从结构类型数据缓冲队列获取历史数据时,先进行缓冲数据量判断,设定一次处理数据量的限值,对从历史数据缓冲队列获取的历史数据量与所述限值进行比较,超过限值,则对获取的历史数据按字段分解,否则继续从历史数据缓冲队列获取历史数据。
3.根据权利要求1或2所述的一种实时数据库的结构类型数据的存储方法,其特征是值域线性拟合具体为:
241)设置起点和待压点并保存起点:对于排好顺序的历史数据的值,按照排序顺序依序进行处理,按位序取出待处理的第一个点作为拟合起点(x1,y1),下一点作为待压点(xn,yn),如果本步骤是第一次执行则存储起点(x1,y1);
242)求出待压点的门限点和门限点斜率范围:设置压缩精度d%,求出待压点(xn,yn)的两个门限点(xn,yn±|ynd%|),所述门限点是指点值按照压缩精度确定的可近似范围边界,可近似范围为[yn-|ynd%|,yn+|ynd%|],然后分别求出从拟合起点(x1,y1)到两个门限点所确定直线的斜率范围的最小值knmin和最大值knmax:
[ k n min , k n max ] = [ ( y n - | y n d % | ) - y 1 x n - x 1 , ( y n + | y n d % | ) - y 1 x n - x 1 ]
通过[knmin,knmax]确定本次拟合过程的斜率判断范围[kmin,kmax]:
[kmin,kmax]=[knmin,knmax]
243)数据量判断:按位序检查待压点是否还存在下一点,如果没有下一点,则转到步骤247)保存待压点;如果存在下一点,则转到步骤244);
244)获得判断点并求出起点到判断点的斜率:按位序取出待压点的下一点作为判断点(xn+1,yn+1),求出从拟合起点到判断点所确定直线的斜率kn+1
k n + 1 = y n + 1 - y 1 x n + 1 - x 1
245)斜率范围判断:检查kn+1是否在[kmin,kmax]范围内,在此范围内表示待压点可以被压缩,转到步骤246);不在此范围内,表示待压点不能被压缩,需要开始新的压缩过程,转到步骤247);
246)丢弃当前待压点并重新设置新待压点:丢弃待压点(xn,yn),把判断点(xn+1,yn+1)设置为新待压点,求出新待压点的两个门限点(xn+1,yn+1±|yn+1d%|],再分别求出从起点到两个门限点所确定直线的斜率范围的最小值kn+1min和最大值kn+1max:
[ k n + 1 min , k n + 1 max ] = [ ( y n + 1 - | y n + 1 d % | ) - y 1 x n + 1 - x 1 , ( y n + 1 + | y n + 1 d % | ) - y 1 x n + 1 - x 1 ]
更新斜率判断范围[kmin,kmax]:
[kmin,kmax]=[max(kmin,kn+1min),min(kmax,kn+1max)]
新待压点设置好后,继续步骤243);
247)保存待压点:存储当前的待压点(xn,yn),本次压缩过程结束,并把缓存中待处理的第一个点设置为新一轮压缩的拟合起点,转到步骤241)进行下一拟合过程的处理。
CN2010102230917A 2010-07-09 2010-07-09 一种实时数据库的结构类型数据的存储方法 Expired - Fee Related CN101923569B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2010102230917A CN101923569B (zh) 2010-07-09 2010-07-09 一种实时数据库的结构类型数据的存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2010102230917A CN101923569B (zh) 2010-07-09 2010-07-09 一种实时数据库的结构类型数据的存储方法

Publications (2)

Publication Number Publication Date
CN101923569A true CN101923569A (zh) 2010-12-22
CN101923569B CN101923569B (zh) 2012-07-25

Family

ID=43338502

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2010102230917A Expired - Fee Related CN101923569B (zh) 2010-07-09 2010-07-09 一种实时数据库的结构类型数据的存储方法

Country Status (1)

Country Link
CN (1) CN101923569B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102427369A (zh) * 2011-10-19 2012-04-25 广东电网公司电力科学研究院 生产型时序数据的实时全息无损压缩方法
CN102521363A (zh) * 2011-12-15 2012-06-27 武汉达梦数据库有限公司 基于列分解的列存储数据库数值数据压缩方法
CN102622367A (zh) * 2011-01-30 2012-08-01 上海振华重工(集团)股份有限公司 流程数据的过滤和压缩方法
CN103389992A (zh) * 2012-05-09 2013-11-13 北京百度网讯科技有限公司 一种结构化数据存储方法及装置
CN103425797A (zh) * 2013-09-02 2013-12-04 汪德嘉 一种短动码的实现方法及其应用
CN103794006A (zh) * 2012-10-31 2014-05-14 国际商业机器公司 用于处理多个传感器的时序数据的方法和装置
CN104734726A (zh) * 2015-04-01 2015-06-24 东方电子股份有限公司 一种支持编辑的时序数据在线压缩方法
CN105634499A (zh) * 2015-12-30 2016-06-01 广东工业大学 一种基于新短浮点型数据的数据转换方法
CN106021284A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 数据查询方法、数据监测方法及装置
CN106528810A (zh) * 2016-11-18 2017-03-22 党玉龙 一种融合异构数据便于快速大数据分析的方法
CN109471859A (zh) * 2018-10-17 2019-03-15 北京我知科技有限公司 一种记录排序结果的方法
CN110008213A (zh) * 2019-03-13 2019-07-12 国电南瑞科技股份有限公司 一种调控系统实时数据分离式管理方法
CN110096693A (zh) * 2018-01-29 2019-08-06 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
CN112246681A (zh) * 2020-09-29 2021-01-22 珠海格力智能装备有限公司 一种检测数据处理方法、装置及产品检测设备
CN114565848A (zh) * 2022-02-25 2022-05-31 佛山读图科技有限公司 一种复杂场景的药液液位检测方法及系统
CN116232935A (zh) * 2023-02-07 2023-06-06 河南大学 一种物联网监测大数据传输方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723463A (zh) * 2003-02-06 2006-01-18 国际商业机器公司 用于将可扩展标记语言映射到n维数据结构的方法和系统
CN101488148A (zh) * 2009-02-25 2009-07-22 浪潮集团山东通用软件有限公司 一种从多个数据库中进行数据整理归集的方法
US20090216813A1 (en) * 2008-02-27 2009-08-27 Olivieri Ricardo N Method and system for generating a transaction-bound sequence of records in a relational database table

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1723463A (zh) * 2003-02-06 2006-01-18 国际商业机器公司 用于将可扩展标记语言映射到n维数据结构的方法和系统
US20090216813A1 (en) * 2008-02-27 2009-08-27 Olivieri Ricardo N Method and system for generating a transaction-bound sequence of records in a relational database table
CN101488148A (zh) * 2009-02-25 2009-07-22 浪潮集团山东通用软件有限公司 一种从多个数据库中进行数据整理归集的方法

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102622367B (zh) * 2011-01-30 2014-08-20 上海振华重工(集团)股份有限公司 流程数据的过滤和压缩方法
CN102622367A (zh) * 2011-01-30 2012-08-01 上海振华重工(集团)股份有限公司 流程数据的过滤和压缩方法
CN102427369A (zh) * 2011-10-19 2012-04-25 广东电网公司电力科学研究院 生产型时序数据的实时全息无损压缩方法
CN102427369B (zh) * 2011-10-19 2014-01-01 广东电网公司电力科学研究院 生产型时序数据的实时全息无损压缩方法
CN102521363A (zh) * 2011-12-15 2012-06-27 武汉达梦数据库有限公司 基于列分解的列存储数据库数值数据压缩方法
CN103389992A (zh) * 2012-05-09 2013-11-13 北京百度网讯科技有限公司 一种结构化数据存储方法及装置
US9645736B2 (en) 2012-10-31 2017-05-09 International Business Machines Corporation Processing time series data from multiple sensors
US10176208B2 (en) 2012-10-31 2019-01-08 International Business Machines Corporation Processing time series data from multiple sensors
CN103794006A (zh) * 2012-10-31 2014-05-14 国际商业机器公司 用于处理多个传感器的时序数据的方法和装置
CN103425797A (zh) * 2013-09-02 2013-12-04 汪德嘉 一种短动码的实现方法及其应用
CN104734726A (zh) * 2015-04-01 2015-06-24 东方电子股份有限公司 一种支持编辑的时序数据在线压缩方法
CN104734726B (zh) * 2015-04-01 2017-08-25 东方电子股份有限公司 一种支持编辑的时序数据在线压缩方法
CN105634499B (zh) * 2015-12-30 2020-12-01 广东工业大学 一种基于新短浮点型数据的数据转换方法
CN105634499A (zh) * 2015-12-30 2016-06-01 广东工业大学 一种基于新短浮点型数据的数据转换方法
CN106021284A (zh) * 2016-04-29 2016-10-12 乐视控股(北京)有限公司 数据查询方法、数据监测方法及装置
CN106528810A (zh) * 2016-11-18 2017-03-22 党玉龙 一种融合异构数据便于快速大数据分析的方法
CN110096693B (zh) * 2018-01-29 2024-05-28 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
CN110096693A (zh) * 2018-01-29 2019-08-06 北京搜狗科技发展有限公司 一种数据处理方法、装置和用于数据处理的装置
CN109471859A (zh) * 2018-10-17 2019-03-15 北京我知科技有限公司 一种记录排序结果的方法
CN110008213A (zh) * 2019-03-13 2019-07-12 国电南瑞科技股份有限公司 一种调控系统实时数据分离式管理方法
CN112246681A (zh) * 2020-09-29 2021-01-22 珠海格力智能装备有限公司 一种检测数据处理方法、装置及产品检测设备
CN114565848A (zh) * 2022-02-25 2022-05-31 佛山读图科技有限公司 一种复杂场景的药液液位检测方法及系统
CN114565848B (zh) * 2022-02-25 2022-12-02 佛山读图科技有限公司 一种复杂场景的药液液位检测方法及系统
CN116232935A (zh) * 2023-02-07 2023-06-06 河南大学 一种物联网监测大数据传输方法
CN116232935B (zh) * 2023-02-07 2023-12-15 深圳市兴海物联科技有限公司 一种物联网监测大数据传输方法

Also Published As

Publication number Publication date
CN101923569B (zh) 2012-07-25

Similar Documents

Publication Publication Date Title
CN101923569B (zh) 一种实时数据库的结构类型数据的存储方法
CN102970043B (zh) 一种基于gzip的压缩硬件系统及其加速方法
CN103546162B (zh) 基于非连续上下文建模和最大熵原则的基因压缩方法
CN101807925B (zh) 一种基于数值排序线性拟合的历史数据压缩方法
CN106021579B (zh) 一种历史数据库的压缩方法
CN100349160C (zh) 一种对数据进行有限穷举优化的压缩方法
CN110874625B (zh) 一种数据处理方法及装置
CN112953550A (zh) 数据压缩的方法、电子设备及存储介质
CN117155407B (zh) 一种智慧镜柜消毒日志数据优化存储方法
CN103248369A (zh) 基于fpga的压缩系统及其方法
CN102298137A (zh) 自适应数据率星载sar原始数据压缩方法
CN108023597B (zh) 一种数控系统可靠性数据压缩方法
CN102904580B (zh) X-bit压缩编码算法
CN108873062A (zh) 一种基于fpga的多编码器高速地震数据并行无损压缩方法
CN105022631A (zh) 一种面向科学计算的浮点型数据并行无损压缩方法
CN114665884B (zh) 时序数据库自适应有损压缩方法、系统及介质
CN104156990A (zh) 一种支持特大型数据窗口的无损压缩编码方法及系统
CN102156719A (zh) 全球导航系统的观测值文件编解码方法
CN117495469B (zh) 基于区块链的电动自行车智能计时方法及系统
CN107911570B (zh) 一种对图片特征进行压缩及解压的方法
CN108880559A (zh) 数据压缩方法、数据解压缩方法、压缩设备及解压缩设备
US20200272605A1 (en) Data Compression and Decompression Facilitated by Machine Learning
CN114466082B (zh) 数据压缩、数据解压方法、系统及人工智能ai芯片
CN105427583B (zh) 一种基于lzw编码的道路交通数据压缩方法
CN116737716A (zh) 时序数据压缩方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: CHINA REALTIME DATABASE CO., LTD.

Free format text: FORMER OWNER: NANJING LUCULENT SOFTWARE CO., LTD.

Effective date: 20110412

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 210013 WORLD S WINDOWS TECHNOLOGY SOFTWARE PARK, NO. 12, DINGHUAIMEN, GULOUDISTRICT, NANJING CITY, JIANGSU PROVINCE TO: 210013 19F, TOWER A, INNOVATION TECHNOLOGY BUILDING, NO. 5, NEW MODEL ROAD, GULOU DISTRICT, NANJING CITY, JIANGSU PROVINCE

TA01 Transfer of patent application right

Effective date of registration: 20110412

Address after: 210013 19F, building A, 5 new model road, Gulou District, Jiangsu, Nanjing

Applicant after: China Realtime Database Co., Ltd.

Address before: Gulou District of Nanjing city in Jiangsu province 210013 dinghuai Gate No. 12 window of the world software technology park

Applicant before: Nanjing Luculent Software Co., Ltd.

C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: STATE ELECTRIC NET CROP.

Effective date: 20130108

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20130108

Address after: 210013 19F, building A, 5 new model road, Gulou District, Jiangsu, Nanjing

Patentee after: China Realtime Database Co., Ltd.

Patentee after: State Grid Corporation of China

Address before: 210013 19F, building A, 5 new model road, Gulou District, Jiangsu, Nanjing

Patentee before: China Realtime Database Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120725

Termination date: 20150709

EXPY Termination of patent right or utility model