平码五不中公式规律
  • / 12
  • 下载费用:30 金币  

一种多源时间序列数据压缩存储方法.pdf

关 键 ?#21097;?/dt>
一种 时间 序列 数据压缩 存储 方法
  专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
摘要
申请专利号:

CN201210591238.7

申请日:

2012.12.29

公开号:

CN103914449A

公开日:

2014.07.09

当前法律状态:

授权

有效性:

有权

法?#19978;?#24773;: 授权|||实质审查的生效IPC(主分类):G06F 17/30申请日:20121229|||公开
IPC分类号: G06F17/30 主分类号: G06F17/30
申请人: 上海可鲁系统软件有限公司
发明人: 俞高宇; 张晓华; 梁俊
地址: 201203 上海市浦东新区祖冲之路887弄82号二楼北
优?#28909;ǎ?/td>
专利代理机构: 代理人:
PDF完整版下载: PDF下载
法律状态
申请(专利)号:

CN201210591238.7

授权公告号:

103914449B||||||

法律状态公告日:

2017.06.16|||2014.08.06|||2014.07.09

法律状态类型:

授权|||实质审查的生效|||公开

摘要

本发明公开了一种多源时间序列数据压缩存储方法,包含以下步骤:对各部署对象分组;将各部署对象组划分内部组;在内存中为每个内部组分配一个用于缓存的内存文件;在收到某量测点的时间序列数据时,进?#26800;?#19968;级有损压缩,并根据该量测点所属的部署对象组和内部组,?#19994;?#20854;对应的内存文件,将压缩后的数据缓存到内存文件中;在内存文件写满或达到预设的时间限制时,将内存文件映射到硬盘,进?#26800;?#20108;级无损压缩,将压缩后的数据块存储到关系型数据库中。使得数据缓存时能够快速?#19994;?#23545;应的内存文件,并快速定位存储位置,提高了缓存效率;采用分块压缩方式,提高了压缩效率,并且有效地节约了硬盘容量;而且,通过关系型数据库,提高了数据读取速度。

权利要求书

权利要求书
1.  一种多源时间序列数据压缩存储方法,所述多源时间序列数据来自不同部署对象的不同量测点,其特征在于,包含以下步骤:
根据各部署对象所包含的量测点数量,?#36816;?#36848;各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;
对各部署对象组进行组内划分,?#36816;?#36848;预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;
在内存中为每个部署对象组?#26800;?#27599;个内部组分配一个用于缓存的内存文件,并进行内存镜像处理;
在收到来自一部署对象辖下量测点的时间序列数据时,对该数据进?#26800;?#19968;级有损压缩,并根据该量测点所属的部署对象组和内部组,?#19994;?#35813;量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;
在所述内存文件写满或达到预设的时间限制时,对该内存文件进?#26800;?#20108;级无损压缩,将压缩后的数据块存储到关系型数据库中。

2.  根据权利要求1所述的多源时间序列数据压缩存储方法,其特征在于,所述第二级无损压缩为LZW压缩;和/或
所述内存文件对应的存储空间为512K至2M之间;和/或
所述预设的时间限制为30?#31181;印?BR>
3.  根据权利要求1所述的多源时间序列数据压缩存储方法,其特征在于,
所述内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,所述索引区中保存每个所述量测点在该内存文件中存储位置的索引,所述数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。

4.  根据权利要求3所述的多源时间序列数据压缩存储方法,其特征在于,所述将压缩后的时间序列数据缓存到内存文件?#26800;?#27493;骤中,包含以下子步骤:
根据该数据所属量测点的本地标识?#19994;?#35813;量测点对应的存储位置索引,如果该索引表?#38236;?#21069;未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在所述数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将所述量测点数据存储在该新分配的数据片中;反之,则将所述量测点的数据存储在该索引指?#38236;?#25968;据片的相应位置;
如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。

5.  根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
在接收到来自部署对象辖下量测点的时间序列数据之前,在所述内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据缓存,在所述索引区中保存各量测点对应的数据片的位置;或者
在初次收到一量测点数据时,在所述内存文件数据区中为该量测点分配一数据片进行数据缓存,在所述索引区中保存该量测点对应的数据片的位置。

6.  根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
为每个部署对象组的内部组?#26800;?#21508;量测点分配唯一对应一本地标识,所述本地标识为连续的序列;
所述索引区中?#36816;?#36848;本地标识为顺序,?#26469;?#20445;存每个所述量测点在该内存文件中存储位置的索引;
所述根据该数据所属量测点的本地标识?#19994;?#35813;量测点对应的存储位置索引的步骤中,根据所述量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件?#26800;?#23384;储位置。

7.  根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,所述待存储的量测点数据包含:数据值、质量码、和时间戳;
所述数据片包含页面头和页面体,所述将量测点数据存储在数据片的步骤中,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片?#26800;?#27493;骤之后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面?#20998;小?BR>
8.  根据权利要求1至7中?#25105;?#19968;项所述的多源时间序列数据压缩存储方法,其特征在于,所述内存文件进?#26800;?#20108;级无损压缩的步骤中,以数据片为单位分别进行无损压缩,得到压缩后的各数据块;
所述将压缩后的数据块存储到关系型数据库?#26800;?#27493;骤中,在所述关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结束时间或相对于起始时间的时间跨度、数据块长度、?#36879;?#21387;缩后的数据块。

9.  根据权利要求8所述的多源时间序列数据压缩存储方法,其特征在于,所述将量测点的数据存储在该索引指?#38236;?#25968;据片或新分配的数据片的步骤之后,还包含以下步骤:
提取该数据片的统计数据,所述统计数据至少包含以下之一:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和;
所述将压缩后的数据块存储到关系型数据库?#26800;?#27493;骤中,还在所述关系型数据库中保存该数据块对应的数据片的统计数据。

10.  根据权利要求1至8中?#25105;?#19968;项所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
在所述部署对象新增量测点时,优先将所述新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组,对应一新内存文件。

说明书

说明书一种多源时间序列数据压缩存储方法
技术领域
本发明涉及一种数据压缩存储方法,尤其涉及一种多源时间序列数据压缩存储方法。
背景技术
对于电力、石油和连锁经营等大?#25512;?#19994;,其分站或经营场所分布在全国、甚至全球各地,它们的每个分站或经营场所又包含许多的量测点,这些大?#25512;?#19994;的数据中心,随时随刻都要对这些量测点产生的数据进行存储,需要的时候,还要从存储的众多数据中读取所需的数据。而这些工业数据有一个共同点:数据量比较大、数据来源比较广泛。通常,工业数据是各个量测点一段连续的量,其存储的数据都带有时间戳。工业数据具有明显的时间特性,其结构可以用VQT(Value、Quality、Timestamp,数据值、质量码、时间戳)来表示。同时工业数据是不断产生的,从而具有海量数据、以及来源广泛的特点。针对这些特点,怎样更快速地对数据进行存储,而且有效地利用存储空间是需要亟待解决的问题。
在实时数据库中,索引策略决定数据库快速定位数据的效率,索引可以提高数据存储和查询的效率。索引的作用相当于图书的目录,可以根据目录?#26800;?#39029;码快速?#19994;?#25152;需的内容。?#21271;?#20013;有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,?#32531;?#36820;回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,?#32531;?#22312;索引中?#19994;?#31526;合查询条件的索引值,最 后通过保存在索引?#26800;腞OWID(相当于页码)快速?#19994;?#34920;中对应的记录。
高效的索引不仅取决于索引策略,还取决于数据的存储方式,以及待存储的数据的特性。对于数量大、来源?#27573;?#24191;的工业数据,采用通用的存储和索引方式存在以下问题:
由于工业数据是随着时间推?#28006;?#28176;产生、进行存储的,即不同的数据源(量测点)均是陆续不规律地生成数据;传统的存储方式一般都是预先为每个量测点分配一较大的存储空间,在收到属于该量测点的数据时,将其存到对应空间。然而这种数据存储方式所需预留的存储空间极大,而每个量测点的数据量是不可预测的,在部分量测点没有数据需要存储、或存储数据比较少时,会造成存储空间的很大浪?#36873;?#24182;且,在量测点的数量是成千上万、甚至更多的情况下,采用这种存储方式,所需要的索引时间依然较多,需要进一步改进。
为?#31169;?#30465;存储空间提高存储效率,现有技术?#22815;?#36890;过数据压缩和自定义存储结构的方式来提高存储效率,从而提高系统整体处理速度及性能。对实时数据库而言,数据压缩可?#28304;?#26469;两方面的好处:一是,?#21152;?#30828;盘容量减小;二是,系统整体处理速度提高。目前,很多实时数据库的存储方案大多采用二级压缩技术。通常的具体做法是第一级采用有损压缩,如PI中使用的旋转门压缩算法,IH中使用的死区压缩算法;第二级采用无损压缩,针对具体的量测点数据项(VQT),对相邻的数据项之间的值(Value)、质量码(Quality)、时间戳(Timestamp)采用适当?#26723;?#25968;据精度以及编码压缩等方法。在实际系统中,这类方法也存在制约因素,如压缩、解压的难度和时间消耗,数据压缩率与数据量大小有一定关系,即在一定量?#27573;?#20869;,压缩率顺着数据量的增大而迅速增大,超过一定?#27573;?#21518;,压缩率增大不明显。
另外,由于上述方法常结合自定义格式的文件来实现自定义结构的存储,自定义存储结构虽然能够提高存储速度?#26723;?#23384;储空间,但其查询速度通常要比传统的关系型数据库慢,在一定程度上限制了数据读取的速度。
发明内容
本发明主要解决的技术问题是提供一种多源时间序列数据压缩存储方法,使得提高了数据压缩存储过程?#26800;?#32531;存效率和压缩效率,从而提高了数据整体存储效率,并且有效地节约了硬盘容量,加快了数据查询速度。
为?#31169;?#20915;上述技术问题,本发明提供了一种多源时间序列数据压缩存储方法,多源时间序列数据来自不同部署对象的不同量测点,包含以下步骤:
根据各部署对象所包含的量测点数量,对各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;
对各部署对象组进行组内划分,以预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;
在内存中为每个部署对象组?#26800;?#27599;个内部组分配一个用于缓存的内存文件,并进行内存镜像处理;
在收到来自一部署对象辖下量测点的时间序列数据时,对该数据进?#26800;?#19968;级有损压缩,并根据该量测点所属的部署对象组和内部组,?#19994;?#35813;量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;
在内存文件写满或达到预设的时间限制时,对该内存文件进?#26800;?#20108;级无损压缩,将压缩后的数据块存储到关系型数据库中。
作为进一步改进,第二级无损压缩为LZW压缩;和/或内存文件对应的存储空间为512K至2M之间;和/或预设的时间限制为30?#31181;印?
作为进一步改进,内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,索引区中保存每个量测点在该内存文件中存储位置的索引,数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。
作为进一步改进,将压缩后的时间序列数据缓存到内存文件?#26800;?#27493;骤中,包含以下子步骤:
根据该数据所属量测点的本地标识?#19994;?#35813;量测点对应的存储位置索引,如果该索引表?#38236;?#21069;未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将量测点数据存储在该新分配的数据片中;反之,则将量测点的数据存储在该索引指?#38236;?#25968;据片的相应位置;
如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。
作为进一步改进,该方法还包含以下步骤:
在接收到来自部署对象辖下量测点的时间序列数据之前,在内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据 缓存,在索引区中保存各量测点对应的数据片的位置;或者
在初次收到一量测点数据时,在内存文件数据区中为该量测点分配一数据片进行数据缓存,在索引区中保存该量测点对应的数据片的位置。
作为进一步改进,该方法还包含以下步骤:
为每个部署对象组的内部组?#26800;?#21508;量测点分配唯一对应一本地标识,该本地标识为连续的序列;
索引区中以本地标识为顺序,?#26469;?#20445;存每个量测点在该存储文件中存储位置的索引;
根据该数据所属量测点的本地标识?#19994;?#35813;量测点对应的存储位置索引的步骤中,根据量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件?#26800;?#23384;储位置。
作为进一步改进,待存储的量测点数据包含:数据值、质量码、和时间戳;
数据片包含页面头和页面体,将量测点数据存储在数据片的步骤中,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片?#26800;?#27493;骤之后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面?#20998;小?
作为进一步改进,对内存文件进?#26800;?#20108;级无损压缩的步骤中,以数据片为单位分别进行无损压缩,得到压缩后的各数据块;
将压缩后的数据块存储到关系型数据库?#26800;?#27493;骤中,在关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结 束时间或相对于起始时间的时间跨度、数据块长度、?#36879;?#21387;缩后的数据块。
作为进一步改进,将量测点的数据存储在该索引指?#38236;?#25968;据片或新分配的数据片的步骤之后,还包含以下步骤:
提取该数据片的统计数据,统计数据至少包含以下之一:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和;
将压缩后的数据块存储到关系型数据库?#26800;?#27493;骤中,还在关系型数据库中保存该数据块对应的数据片的统计数据。
作为进一步改进,该方法还包含以下步骤:在部署对象新增量测点时,优先将新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组,对应一新存储文件。
本发明实施方式与现有技术相比,主要区别及其效果在于:根据各部署对象所包含的量测点数量,对各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;对各部署对象组进行组内划分,以预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;在内存中为每个部署对象组?#26800;?#27599;个内部组分配一个用于缓存的内存文件;在收到来自一部署对象辖下量测点的时间序列数据时,对该 数据进?#26800;?#19968;级有损压缩,并根据该量测点所属的部署对象组和内部组,?#19994;?#35813;量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;在内存文件写满或达到预设的时间限制时,对内存文件进?#26800;?#20108;级无损压缩,将压缩后的数据块存储到关系型数据库中。通过部署对象组和内部组的划分,能够快速?#19994;?#27599;个量测点所对应的缓存文件,从而提高了量测点数据缓存的效率;通过将内存中自定义格式文件存储与硬盘上关系型数据库存储相结合,使得在实现快速缓存的同时,提高了后期数据查询速度;通过在将数据存储到关系型数据库之前,先进行分块的第二级无损压缩,使得在提高了压缩效率、节约存储空间的同时,为数据库后期的数据查询提供了便利。
通过为每个部署对象组的内部组?#26800;?#21508;量测点分配一连续序列的本地标识,并且在索引区中以该本地标识为顺序,?#26469;?#20445;存每个量测点在内存文件中存储位置的索引的方式,使得在进行数据缓存时,能够根据量测点本地标识快速定位每个量测点在内存文件?#26800;?#23384;储位置,从而进一步提高了量测点数据缓存的效率。
按需为量测点分配数据片进行数据存储,每次分配的数据片很小,一般只有4K左右,在当前数据片存储满后再分配新的数据片,使得每个量测点对应的存储空间与其对应的数据量成正比,有效利用了内存存储空间,不会造成存储空间的浪?#36873;?
在将数据存储到关系型数据库之前,对内存文件进?#26800;?#20108;级无损压缩时,以数据片为单位分别进行无损压缩,使得在用户进行数据查询时,可?#28304;?#20851;系型数据库中直接检索到符合查询条件的数据块,将压缩的数据块直接传输到客户端 进行解压读取,而无需先进行解压再判断是否符合查询条件,从而提高了数据读取速度。
附图说明
图1是本发明一较佳实施方式?#26800;?#19968;种多源时间序列数据压缩存储方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详?#35813;?#36848;。
本发明一较佳实施方式涉及一种多源时间序列数据压缩存储方法,多源时间序列数据来自不同部署对象的不同量测点,该方法的具体流程图如图1所示。
步骤101中,根据各部署对象所包含的量测点数量,对各部署对象分组。本步骤中,将所包含量测点数量总和小于预设值的两个或两个以上部署对象分为一组,将其余的每个部署对象分别分为一组。
举例而言,预设值为20000,部署对象1有量测点10000个,部署对象2有量测点9000个,部署对象3有量测点6000个,部署对象4有量测点7000个,部署对象5有量测点5000个,部署对象6有量测点30000个,部署对象7有量测点18000个……,就可以把部署对象1和部署对象2分为一组,即部署对象组1;部署对象3、部署对象4和部署对象5分为一组,即部署对象 组2;部署对象6为一组,即部署对象组3;部署对象7为一组,即部署对象组4;……
步骤102中,对各部署对象组进行组内划分。本步骤中,以预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组。
针对步骤101?#26800;?#20363;子,部署对象组1中共有19000个量测点,没有达到预设值20000个,故部署对象组1只能划分一个内部组,即部署对象组1-内部组1;同样,部署对象组2和部署对象组4也只能划分一个内部组,即部署对象组2-内部组1和部署对象组4-内部组1;部署对象组3中有30000个量测点,超过了预设值20000个,但少于40000个,故部署对象组3划分两个内部组,其中前20000个为一个内部组,即部署对象组3-内部组1,后10000个为一个内部组,即部署对象组3-内部组2。……
步骤103中,为每个部署对象组的内部组?#26800;?#21508;量测点分配唯一对应一本地标识。本步骤中,为每个部署对象组的内部组?#26800;?#21508;量测点分配的本地标识为连续的;各量测点标识由部署对象组标识、内部组标识和本地标?#24230;?#37096;分构成,例如,部署对象组1的内部组1中有20000个量测点,则这20000个量测点的标识?#26469;?#20026;:部署对象组1-内部组1-1,部署对象组1-内部组1-2,……,部署对象组1-内部组1-20000。
需要进一步说明的是,在部署对象新增量测点时,优先将新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组。
步骤104中,在内存中为每个部署对象组?#26800;?#27599;个内部组分配一个用于缓存的内存文件,并采用内存镜像文件来进行临时持久化处理,设?#27599;?#32531;存与镜像文件共用内存区。
需要进一步说明的是,各部署对象组中各内部组对应的内存文件的名?#28006;?#21253;含该部署对象组?#36879;?#20869;部组标识;内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,索引区中保存每个量测点在该内存文件中存储位置的索引,数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。
针对步骤103,若部署对象中新增量测点时划分了新的内部组,则新的内部组对应新的内存文件。
步骤105中,在内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据缓存。本步骤中,由于每个数据片的大小只有4K,所以即使部分量测点在一定时间内没有存入数据,也不会造成内存空间的浪?#36873;?
步骤106中,在索引区中保存各量测点对应的数据片的位置。本步骤中,索引区中以本地标识为顺序,?#26469;?#20445;存每个量测点在该存储文件中存储位置的索引。
针对步骤103?#26800;?#20363;子,量测点:部署对象组1-内部组1-1,部署对象组1-内部组1-2,……,部署对象组1-内部组1-20000在该存储文件索引区?#26800;?#32034;引?#26469;?#20026;:第一个8?#32440;冢?#21363;0至8?#32440;冢?#31532;二个8?#32440;冢?#21363;9至16?#32440;冢?#31532;20000个8?#32440;冢?#21363;159993至160000?#32440;冢?
在具体实施过程中,也可以在初次收到一量测点数据时,在内存文件数据区中为该量测点分配一数据片进行数据缓存,在索引区中保存该量测点对应的数据片的位置。
步骤107中,收到来自一部署对象辖下量测点的时间序列数据。该数据包含:数据值、质量码、和时间戳。
步骤108中,对该数据进?#26800;?#19968;级有损压缩。
步骤109中,根据该量测点所属的部署对象组和内部组,?#19994;?#35813;量测点对应的内存文件。
通过这种方式,使得在数据存储过程中能够快速?#19994;?#23545;应的存储文件对数据进行存储,从而提高了数据存储效率。
步骤110中,根据该数据所属量测点的本地标识?#19994;?#35813;量测点对应的存储位置索引。本步骤中,根据量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件?#26800;?#23384;储位置。
针对步骤106?#26800;?#20363;子,本地标识为部署对象组1-内部组1-n(1≤n≤20000)的量测点索引开始位置为:索引区?#26800;赱(n-1)×8+1]个?#32440;凇1热紓?#26412;地标识为部署对象组1-内部组1-30的量测点,其索引在索引区?#26800;?#24320;始位置为:第[(30-1)×8+1]=233个?#32440;凇?
通过这种方式,使得能够快速定位量测点在存储文件?#26800;?#23384;储位置,从而进一步提高了数据存储效率。
步骤111中,将该压缩后的时间序列数据缓存到该内存文件中,并采用 内存镜像的方式进行持久化处理。通过设?#27599;?#32531;存与镜像文件共用内存区,既简化缓存管理,又满足实时数据库对数据灾难?#25351;?#30340;设计需要,?#24067;?#39038;系统的存储性能要求。
需要进一步说明的是,如果步骤110中量测点索引表?#38236;?#21069;未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将量测点数据存储在该新分配的数据片中;反之,则将量测点的数据存储在索引指?#38236;?#25968;据片的相应位置;如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。
本实施方式中,数据片包含页面头和页面体,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片中后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面?#20998;校?#32780;后,提取该数据片的统计数据,统计数据可以包含:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和?#21462;?
由于缓存的时间序列数据具有不稳定性,本实施方式对这些数据采用内存镜像的方式进行持久化处理。
步骤112中,判断内存文件是否写满或达到预设的时间限制。如果是,进入步骤113,如果不是,则进入步骤110。由于数据压缩率与数据量大小有一定关系,即在一定量?#27573;?#20869;,压缩率顺着数据量的增大而迅速增大,超 过一定?#27573;?#21518;,压缩率增大不明显。考虑到实时数据库系统整体的性能需求,本实施方式中数据块的大小控制在512K-2M,数据块时间跨度控制在30?#31181;?#24038;右。
步骤113中,将内存文件拷入压缩区。
举例而言,步骤112中,内存文件对应的存储空间为1M,预设的时间限制为30?#31181;櫻?#21017;当内存文件已写入1M数据时,或内存文件虽然没有写入1M数据,但从该内存文件上次拷入压缩区已达到30?#31181;?#30340;时间限制,就会将该内存文件拷入压缩区。
通过这种方式,可以提高数据压缩存储过程?#26800;?#21387;缩效率,从而又可以进一步提高数据存储效率,并且有效地节?#21152;?#30424;容?#20426;?
步骤114中,以数据片为单位,对压缩区内的数据进?#26800;?#20108;级无损压缩。
需要进一步说明的是,每个数据片的大小只有4K,拷入压缩区的内存文件中可能包含几百个数据片,第二级无损压缩以每个数据片为单位分别进行LZW压缩,得到压缩后的各数据块,即该内存文件中有多少个数据片,就会压缩成多少个数据块,压缩后各数据块信息的基本表如表1所示。
字段数据类型说明IDUINT测点编码,ID+begintime为联合主键begintimeTimestamp块起始时间timespanUINT相对于起始时间的时间跨度lengthUINT数据块长度chunkBLOB数据压缩块
表1——数据块基本表
通过这种方式,每个存储在数据库?#26800;?#21387;缩块对应一个量测点的一个时间段的数据,使得用户读取数据时,可以根据查询条件,如量测点标识、以及待查询的时间段,直接?#19994;?#31526;合条件的数据块,从而将压缩的数据块直接传输到客户?#31169;?#34892;解压读取,而无需先进行解压再判断是否符合查询条件,从而提高了数据读取速度。
步骤115中,将压缩后的数据块存储到关系型数据库中。本步骤中,在关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结束时间或相对于起始时间的时间跨度、数据块长度、?#36879;?#21387;缩后的数据块、以及该数据块对应的数据片的统计数据,该统计数据信息具体如表2所示。
字段数据类型说明IDUINT测点编码,ID+begintime为联合主键begintimeTimestamp块起始时间timespanUINT相对于起始时间的时间跨度maxValuedouble区间最大值maxTimeTimestamp最大值时间minValuedouble区间最小值minTimeTimestamp最小值时间avgValuedouble区间平均值totalValuedouble区间总和
表2——数据块统计表
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和?#27573;А?/p>

关于本文
本文标题:一种多源时间序列数据压缩存储方法.pdf
链接地址:http://www.pqiex.tw/p-6115668.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

[email protected] 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备17046363号-1 
 


收起
展开
平码五不中公式规律 老时时彩杀号 彩立方彩票安卓 广州股票配资 另版赌彩情探横财富 椒江区农村什么赚钱 澳洲幸运10开奖走势 英超积分榜 做手绘能赚钱吗 手机赢钱棋牌游戏排行 通比牛牛5188游戏大厅下载