CN103914449B - 一种多源时间序列数据压缩存储方法 - Google Patents

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

Info

Publication number
CN103914449B
CN103914449B CN201210591238.7A CN201210591238A CN103914449B CN 103914449 B CN103914449 B CN 103914449B CN 201210591238 A CN201210591238 A CN 201210591238A CN 103914449 B CN103914449 B CN 103914449B
Authority
CN
China
Prior art keywords
data
measuring point
compression
group
storage
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
Application number
CN201210591238.7A
Other languages
English (en)
Other versions
CN103914449A (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.)
Shanghai Left Bank Investment Management Co ltd
Shanghai Kelu Software Co Ltd
Original Assignee
Shanghai Kelu 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 Shanghai Kelu Software Co Ltd filed Critical Shanghai Kelu Software Co Ltd
Priority to CN201210591238.7A priority Critical patent/CN103914449B/zh
Publication of CN103914449A publication Critical patent/CN103914449A/zh
Application granted granted Critical
Publication of CN103914449B publication Critical patent/CN103914449B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24552Database cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computational Linguistics (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

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

Description

一种多源时间序列数据压缩存储方法
技术领域
本发明涉及一种数据压缩存储方法,尤其涉及一种多源时间序列数据压缩存储方法。
背景技术
对于电力、石油和连锁经营等大型企业,其分站或经营场所分布在全国、甚至全球各地,它们的每个分站或经营场所又包含许多的量测点,这些大型企业的数据中心,随时随刻都要对这些量测点产生的数据进行存储,需要的时候,还要从存储的众多数据中读取所需的数据。而这些工业数据有一个共同点:数据量比较大、数据来源比较广泛。通常,工业数据是各个量测点一段连续的量,其存储的数据都带有时间戳。工业数据具有明显的时间特性,其结构可以用VQT(Value、Quality、Timestamp,数据值、质量码、时间戳)来表示。同时工业数据是不断产生的,从而具有海量数据、以及来源广泛的特点。针对这些特点,怎样更快速地对数据进行存储,而且有效地利用存储空间是需要亟待解决的问题。
在实时数据库中,索引策略决定数据库快速定位数据的效率,索引可以提高数据存储和查询的效率。索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容。当表中有大量记录时,若要对表进行查询,第一种搜索信息方式是全表搜索,是将所有记录一一取出,和查询条件进行一一对比,然后返回满足条件的记录,这样做会消耗大量数据库系统时间,并造成大量磁盘I/O操作;第二种就是在表中建立索引,然后在索引中找到符合查询条件的索引值,最后通过保存在索引中的ROWID(相当于页码)快速找到表中对应的记录。
高效的索引不仅取决于索引策略,还取决于数据的存储方式,以及待存储的数据的特性。对于数量大、来源范围广的工业数据,采用通用的存储和索引方式存在以下问题:
由于工业数据是随着时间推移逐渐产生、进行存储的,即不同的数据源(量测点)均是陆续不规律地生成数据;传统的存储方式一般都是预先为每个量测点分配一较大的存储空间,在收到属于该量测点的数据时,将其存到对应空间。然而这种数据存储方式所需预留的存储空间极大,而每个量测点的数据量是不可预测的,在部分量测点没有数据需要存储、或存储数据比较少时,会造成存储空间的很大浪费。并且,在量测点的数量是成千上万、甚至更多的情况下,采用这种存储方式,所需要的索引时间依然较多,需要进一步改进。
为了节省存储空间提高存储效率,现有技术还会通过数据压缩和自定义存储结构的方式来提高存储效率,从而提高系统整体处理速度及性能。对实时数据库而言,数据压缩可以带来两方面的好处:一是,占用硬盘容量减小;二是,系统整体处理速度提高。目前,很多实时数据库的存储方案大多采用二级压缩技术。通常的具体做法是第一级采用有损压缩,如PI中使用的旋转门压缩算法,IH中使用的死区压缩算法;第二级采用无损压缩,针对具体的量测点数据项(VQT),对相邻的数据项之间的值(Value)、质量码(Quality)、时间戳(Timestamp)采用适当降低数据精度以及编码压缩等方法。在实际系统中,这类方法也存在制约因素,如压缩、解压的难度和时间消耗,数据压缩率与数据量大小有一定关系,即在一定量范围内,压缩率顺着数据量的增大而迅速增大,超过一定范围后,压缩率增大不明显。
另外,由于上述方法常结合自定义格式的文件来实现自定义结构的存储,自定义存储结构虽然能够提高存储速度降低存储空间,但其查询速度通常要比传统的关系型数据库慢,在一定程度上限制了数据读取的速度。
发明内容
本发明主要解决的技术问题是提供一种多源时间序列数据压缩存储方法,使得提高了数据压缩存储过程中的缓存效率和压缩效率,从而提高了数据整体存储效率,并且有效地节约了硬盘容量,加快了数据查询速度。
为了解决上述技术问题,本发明提供了一种多源时间序列数据压缩存储方法,多源时间序列数据来自不同部署对象的不同量测点,包含以下步骤:
根据各部署对象所包含的量测点数量,对各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;
对各部署对象组进行组内划分,以预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;
在内存中为每个部署对象组中的每个内部组分配一个用于缓存的内存文件,并进行内存镜像处理;
在收到来自一部署对象辖下量测点的时间序列数据时,对该数据进行第一级有损压缩,并根据该量测点所属的部署对象组和内部组,找到该量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;
在内存文件写满或达到预设的时间限制时,对该内存文件进行第二级无损压缩,将压缩后的数据块存储到关系型数据库中。
作为进一步改进,第二级无损压缩为LZW压缩;和/或内存文件对应的存储空间为512K至2M之间;和/或预设的时间限制为30分钟。
作为进一步改进,内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,索引区中保存每个量测点在该内存文件中存储位置的索引,数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。
作为进一步改进,将压缩后的时间序列数据缓存到内存文件中的步骤中,包含以下子步骤:
根据该数据所属量测点的本地标识找到该量测点对应的存储位置索引,如果该索引表示当前未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将量测点数据存储在该新分配的数据片中;反之,则将量测点的数据存储在该索引指示的数据片的相应位置;
如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。
作为进一步改进,该方法还包含以下步骤:
在接收到来自部署对象辖下量测点的时间序列数据之前,在内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据缓存,在索引区中保存各量测点对应的数据片的位置;或者
在初次收到一量测点数据时,在内存文件数据区中为该量测点分配一数据片进行数据缓存,在索引区中保存该量测点对应的数据片的位置。
作为进一步改进,该方法还包含以下步骤:
为每个部署对象组的内部组中的各量测点分配唯一对应一本地标识,该本地标识为连续的序列;
索引区中以本地标识为顺序,依次保存每个量测点在该存储文件中存储位置的索引;
根据该数据所属量测点的本地标识找到该量测点对应的存储位置索引的步骤中,根据量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件中的存储位置。
作为进一步改进,待存储的量测点数据包含:数据值、质量码、和时间戳;
数据片包含页面头和页面体,将量测点数据存储在数据片的步骤中,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片中的步骤之后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面头中。
作为进一步改进,对内存文件进行第二级无损压缩的步骤中,以数据片为单位分别进行无损压缩,得到压缩后的各数据块;
将压缩后的数据块存储到关系型数据库中的步骤中,在关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结束时间或相对于起始时间的时间跨度、数据块长度、和该压缩后的数据块。
作为进一步改进,将量测点的数据存储在该索引指示的数据片或新分配的数据片的步骤之后,还包含以下步骤:
提取该数据片的统计数据,统计数据至少包含以下之一:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和;
将压缩后的数据块存储到关系型数据库中的步骤中,还在关系型数据库中保存该数据块对应的数据片的统计数据。
作为进一步改进,该方法还包含以下步骤:在部署对象新增量测点时,优先将新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组,对应一新存储文件。
本发明实施方式与现有技术相比,主要区别及其效果在于:根据各部署对象所包含的量测点数量,对各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;对各部署对象组进行组内划分,以预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;在内存中为每个部署对象组中的每个内部组分配一个用于缓存的内存文件;在收到来自一部署对象辖下量测点的时间序列数据时,对该数据进行第一级有损压缩,并根据该量测点所属的部署对象组和内部组,找到该量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;在内存文件写满或达到预设的时间限制时,对内存文件进行第二级无损压缩,将压缩后的数据块存储到关系型数据库中。通过部署对象组和内部组的划分,能够快速找到每个量测点所对应的缓存文件,从而提高了量测点数据缓存的效率;通过将内存中自定义格式文件存储与硬盘上关系型数据库存储相结合,使得在实现快速缓存的同时,提高了后期数据查询速度;通过在将数据存储到关系型数据库之前,先进行分块的第二级无损压缩,使得在提高了压缩效率、节约存储空间的同时,为数据库后期的数据查询提供了便利。
通过为每个部署对象组的内部组中的各量测点分配一连续序列的本地标识,并且在索引区中以该本地标识为顺序,依次保存每个量测点在内存文件中存储位置的索引的方式,使得在进行数据缓存时,能够根据量测点本地标识快速定位每个量测点在内存文件中的存储位置,从而进一步提高了量测点数据缓存的效率。
按需为量测点分配数据片进行数据存储,每次分配的数据片很小,一般只有4K左右,在当前数据片存储满后再分配新的数据片,使得每个量测点对应的存储空间与其对应的数据量成正比,有效利用了内存存储空间,不会造成存储空间的浪费。
在将数据存储到关系型数据库之前,对内存文件进行第二级无损压缩时,以数据片为单位分别进行无损压缩,使得在用户进行数据查询时,可以从关系型数据库中直接检索到符合查询条件的数据块,将压缩的数据块直接传输到客户端进行解压读取,而无需先进行解压再判断是否符合查询条件,从而提高了数据读取速度。
附图说明
图1是本发明一较佳实施方式中的一种多源时间序列数据压缩存储方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明一较佳实施方式涉及一种多源时间序列数据压缩存储方法,多源时间序列数据来自不同部署对象的不同量测点,该方法的具体流程图如图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中的例子,部署对象组1中共有19000个量测点,没有达到预设值20000个,故部署对象组1只能划分一个内部组,即部署对象组1-内部组1;同样,部署对象组2和部署对象组4也只能划分一个内部组,即部署对象组2-内部组1和部署对象组4-内部组1;部署对象组3中有30000个量测点,超过了预设值20000个,但少于40000个,故部署对象组3划分两个内部组,其中前20000个为一个内部组,即部署对象组3-内部组1,后10000个为一个内部组,即部署对象组3-内部组2。……
步骤103中,为每个部署对象组的内部组中的各量测点分配唯一对应一本地标识。本步骤中,为每个部署对象组的内部组中的各量测点分配的本地标识为连续的;各量测点标识由部署对象组标识、内部组标识和本地标识三部分构成,例如,部署对象组1的内部组1中有20000个量测点,则这20000个量测点的标识依次为:部署对象组1-内部组1-1,部署对象组1-内部组1-2,……,部署对象组1-内部组1-20000。
需要进一步说明的是,在部署对象新增量测点时,优先将新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组。
步骤104中,在内存中为每个部署对象组中的每个内部组分配一个用于缓存的内存文件,并采用内存镜像文件来进行临时持久化处理,设置块缓存与镜像文件共用内存区。
需要进一步说明的是,各部署对象组中各内部组对应的内存文件的名称中包含该部署对象组和该内部组标识;内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,索引区中保存每个量测点在该内存文件中存储位置的索引,数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。
针对步骤103,若部署对象中新增量测点时划分了新的内部组,则新的内部组对应新的内存文件。
步骤105中,在内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据缓存。本步骤中,由于每个数据片的大小只有4K,所以即使部分量测点在一定时间内没有存入数据,也不会造成内存空间的浪费。
步骤106中,在索引区中保存各量测点对应的数据片的位置。本步骤中,索引区中以本地标识为顺序,依次保存每个量测点在该存储文件中存储位置的索引。
针对步骤103中的例子,量测点:部署对象组1-内部组1-1,部署对象组1-内部组1-2,……,部署对象组1-内部组1-20000在该存储文件索引区中的索引依次为:第一个8字节(即0至8字节),第二个8字节(即9至16字节),……,第20000个8字节(即159993至160000字节)。
在具体实施过程中,也可以在初次收到一量测点数据时,在内存文件数据区中为该量测点分配一数据片进行数据缓存,在索引区中保存该量测点对应的数据片的位置。
步骤107中,收到来自一部署对象辖下量测点的时间序列数据。该数据包含:数据值、质量码、和时间戳。
步骤108中,对该数据进行第一级有损压缩。
步骤109中,根据该量测点所属的部署对象组和内部组,找到该量测点对应的内存文件。
通过这种方式,使得在数据存储过程中能够快速找到对应的存储文件对数据进行存储,从而提高了数据存储效率。
步骤110中,根据该数据所属量测点的本地标识找到该量测点对应的存储位置索引。本步骤中,根据量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件中的存储位置。
针对步骤106中的例子,本地标识为部署对象组1-内部组1-n(1≤n≤20000)的量测点索引开始位置为:索引区中第[(n-1)×8+1]个字节。比如,本地标识为部署对象组1-内部组1-30的量测点,其索引在索引区中的开始位置为:第[(30-1)×8+1]=233个字节。
通过这种方式,使得能够快速定位量测点在存储文件中的存储位置,从而进一步提高了数据存储效率。
步骤111中,将该压缩后的时间序列数据缓存到该内存文件中,并采用内存镜像的方式进行持久化处理。通过设置块缓存与镜像文件共用内存区,既简化缓存管理,又满足实时数据库对数据灾难恢复的设计需要,也兼顾系统的存储性能要求。
需要进一步说明的是,如果步骤110中量测点索引表示当前未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将量测点数据存储在该新分配的数据片中;反之,则将量测点的数据存储在索引指示的数据片的相应位置;如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。
本实施方式中,数据片包含页面头和页面体,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片中后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面头中;而后,提取该数据片的统计数据,统计数据可以包含:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和等。
由于缓存的时间序列数据具有不稳定性,本实施方式对这些数据采用内存镜像的方式进行持久化处理。
步骤112中,判断内存文件是否写满或达到预设的时间限制。如果是,进入步骤113,如果不是,则进入步骤110。由于数据压缩率与数据量大小有一定关系,即在一定量范围内,压缩率顺着数据量的增大而迅速增大,超过一定范围后,压缩率增大不明显。考虑到实时数据库系统整体的性能需求,本实施方式中数据块的大小控制在512K-2M,数据块时间跨度控制在30分钟左右。
步骤113中,将内存文件拷入压缩区。
举例而言,步骤112中,内存文件对应的存储空间为1M,预设的时间限制为30分钟,则当内存文件已写入1M数据时,或内存文件虽然没有写入1M数据,但从该内存文件上次拷入压缩区已达到30分钟的时间限制,就会将该内存文件拷入压缩区。
通过这种方式,可以提高数据压缩存储过程中的压缩效率,从而又可以进一步提高数据存储效率,并且有效地节约硬盘容量。
步骤114中,以数据片为单位,对压缩区内的数据进行第二级无损压缩。
需要进一步说明的是,每个数据片的大小只有4K,拷入压缩区的内存文件中可能包含几百个数据片,第二级无损压缩以每个数据片为单位分别进行LZW压缩,得到压缩后的各数据块,即该内存文件中有多少个数据片,就会压缩成多少个数据块,压缩后各数据块信息的基本表如表1所示。
字段 数据类型 说明
ID UINT 测点编码,ID+begintime为联合主键
begintime Timestamp 块起始时间
timespan UINT 相对于起始时间的时间跨度
length UINT 数据块长度
chunk BLOB 数据压缩块
表1——数据块基本表
通过这种方式,每个存储在数据库中的压缩块对应一个量测点的一个时间段的数据,使得用户读取数据时,可以根据查询条件,如量测点标识、以及待查询的时间段,直接找到符合条件的数据块,从而将压缩的数据块直接传输到客户端进行解压读取,而无需先进行解压再判断是否符合查询条件,从而提高了数据读取速度。
步骤115中,将压缩后的数据块存储到关系型数据库中。本步骤中,在关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结束时间或相对于起始时间的时间跨度、数据块长度、和该压缩后的数据块、以及该数据块对应的数据片的统计数据,该统计数据信息具体如表2所示。
字段 数据类型 说明
ID UINT 测点编码,ID+begintime为联合主键
begintime Timestamp 块起始时间
timespan UINT 相对于起始时间的时间跨度
maxValue double 区间最大值
maxTime Timestamp 最大值时间
minValue double 区间最小值
minTime Timestamp 最小值时间
avgValue double 区间平均值
totalValue double 区间总和
表2——数据块统计表
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。

Claims (10)

1.一种多源时间序列数据压缩存储方法,所述多源时间序列数据来自不同部署对象的不同量测点,其特征在于,包含以下步骤:
根据各部署对象所包含的量测点数量,对所述各部署对象分组,将所包含量测点数量总和小于预设值的至少两个部署对象分为一组,将其余的每个部署对象分别分为一组;
对各部署对象组进行组内划分,以所述预设值为界限,每达到预设值数量的量测点划分为一内部组,对应一组内标识,其余不足预设值数量的量测点划分为一内部组;
在内存中为每个部署对象组中的每个内部组分配一个用于缓存的内存文件,并进行内存镜像处理;
在收到来自一部署对象辖下量测点的时间序列数据时,对该数据进行第一级有损压缩,并根据该量测点所属的部署对象组和内部组,找到该量测点对应的内存文件,将该压缩后的时间序列数据缓存到该内存文件中;
在所述内存文件写满或达到预设的时间限制时,对该内存文件进行第二级无损压缩,将压缩后的数据块存储到关系型数据库中。
2.根据权利要求1所述的多源时间序列数据压缩存储方法,其特征在于,所述第二级无损压缩为LZW压缩;和/或
所述内存文件对应的存储空间为512K至2M之间;和/或
所述预设的时间限制为30分钟。
3.根据权利要求1所述的多源时间序列数据压缩存储方法,其特征在于,所述内存文件的文件体由固定大小、连续的数据片组成,包含索引区和数据区,所述索引区中保存每个所述量测点在该内存文件中存储位置的索引,所述数据区中各连续的数据片对应不同的量测点,单个数据片保存同一量测点的数据。
4.根据权利要求3所述的多源时间序列数据压缩存储方法,其特征在于,所述将压缩后的时间序列数据缓存到内存文件中的步骤中,包含以下子步骤:
根据该数据所属量测点的本地标识找到该量测点对应的存储位置索引,如果该索引表示当前未在数据区中为该量测点分配数据片、或所分配的数据片已存满,则在所述数据区中为该量测点分配一空白数据片,所分配的数据片与该数据区中已分配的数据片连续,将所述量测点数据存储在该新分配的数据片中;反之,则将所述量测点的数据存储在该索引指示的数据片的相应位置;
如果在存储过程中,当前数据片已存满,则为该量测点新分配一数据片进行存储,所分配的数据片与该数据区中已分配的数据片连续。
5.根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
在接收到来自部署对象辖下量测点的时间序列数据之前,在所述内存文件的数据区中为该内存文件对应的内部组的所有量测点预分配一数据片进行数据缓存,在所述索引区中保存各量测点对应的数据片的位置;或者
在初次收到一量测点数据时,在所述内存文件数据区中为该量测点分配一数据片进行数据缓存,在所述索引区中保存该量测点对应的数据片的位置。
6.根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
为每个部署对象组的内部组中的各量测点分配唯一对应一本地标识,所述本地标识为连续的序列;
所述索引区中以所述本地标识为顺序,依次保存每个所述量测点在该内存文件中存储位置的索引;
所述根据该数据所属量测点的本地标识找到该量测点对应的存储位置索引的步骤中,根据所述量测点的本地标识和单个索引的长度直接定位该量测点对应的索引位置、确定该量测点数据在该内存文件中的存储位置。
7.根据权利要求4所述的多源时间序列数据压缩存储方法,其特征在于,所述待存储的量测点数据包含:数据值、质量码、和时间戳;
所述数据片包含页面头和页面体,所述将量测点数据存储在数据片的步骤中,将量测点数据存储在数据片的页面体中;在将量测点数据存储在数据片中的步骤之后,将该数据片中保存的数据的起始时间和结束时间存储在该数据片的页面头中。
8.根据权利要求7所述的多源时间序列数据压缩存储方法,其特征在于,所述内存文件进行第二级无损压缩的步骤中,以数据片为单位分别进行无损压缩,得到压缩后的各数据块;
所述将压缩后的数据块存储到关系型数据库中的步骤中,在所述关系型数据库中保存该数据块对应的量测点的标识、该数据块中所存储数据的起始时间、结束时间或相对于起始时间的时间跨度、数据块长度、和该压缩后的数据块。
9.根据权利要求8所述的多源时间序列数据压缩存储方法,其特征在于,所述将量测点的数据存储在该索引指示的数据片或新分配的数据片的步骤之后,还包含以下步骤:
提取该数据片的统计数据,所述统计数据至少包含以下之一:该数据片对应的量测点标识、该数据片中保存的数据的起始时间和结束时间、结束时间或相对于起始时间的时间跨度、数据片中保存的最大值、该最大值对应的时间、数据片中保存的最小值、该最小值对应的时间、数据片中保存的平均值、数据片中保存的值总和;
所述将压缩后的数据块存储到关系型数据库中的步骤中,还在所述关系型数据库中保存该数据块对应的数据片的统计数据。
10.根据权利要求1至8中任意一项所述的多源时间序列数据压缩存储方法,其特征在于,还包含以下步骤:
在所述部署对象新增量测点时,优先将所述新增的量测点分配到其所属部署对象组中已有的不足预设值数量的内部组,超出预设值数量的部分量测点,划分为该部署对象组中一新内部组,对应一新内存文件。
CN201210591238.7A 2012-12-29 2012-12-29 一种多源时间序列数据压缩存储方法 Active CN103914449B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210591238.7A CN103914449B (zh) 2012-12-29 2012-12-29 一种多源时间序列数据压缩存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210591238.7A CN103914449B (zh) 2012-12-29 2012-12-29 一种多源时间序列数据压缩存储方法

Publications (2)

Publication Number Publication Date
CN103914449A CN103914449A (zh) 2014-07-09
CN103914449B true CN103914449B (zh) 2017-06-16

Family

ID=51040143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210591238.7A Active CN103914449B (zh) 2012-12-29 2012-12-29 一种多源时间序列数据压缩存储方法

Country Status (1)

Country Link
CN (1) CN103914449B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10095757B2 (en) * 2015-12-07 2018-10-09 Sap Se Multi-representation storage of time series data
CN105653613A (zh) * 2015-12-24 2016-06-08 浙江中控技术股份有限公司 一种应用于智能粮库的数据存储方法及装置
CN106021579B (zh) * 2016-06-01 2019-11-08 南京国电南自维美德自动化有限公司 一种历史数据库的压缩方法
CN106330198A (zh) * 2016-08-26 2017-01-11 无锡挪瑞科技股份有限公司 一种船位信息压缩与还原方法
CN106777378A (zh) * 2017-02-13 2017-05-31 北京小米移动软件有限公司 访问用户数据的方法和装置
CN108334582B (zh) * 2018-01-26 2022-04-05 爱普(福建)科技有限公司 一种实时数据库中历史数据的压缩方法
CN109542059B (zh) * 2018-11-19 2022-04-01 国核自仪系统工程有限公司 历史数据压缩装置和方法
CN109687875B (zh) * 2018-11-20 2023-03-31 成都四方伟业软件股份有限公司 一种时序数据处理方法
CN109597588B (zh) * 2018-12-11 2020-09-04 浙江中智达科技有限公司 一种数据存储方法、数据还原方法及装置
CN110543496B (zh) * 2019-09-06 2022-04-15 中国联合网络通信集团有限公司 用于时序数据库集群的数据处理方法和装置
US11710560B2 (en) * 2019-09-11 2023-07-25 Epro Gmbh Compression of machine health data
CN112506933B (zh) * 2020-12-17 2024-04-12 中国电子产品可靠性与环境试验研究所((工业和信息化部电子第五研究所)(中国赛宝实验室)) 高速率多通道时间序列数据存储方法
CN113194266A (zh) * 2021-04-28 2021-07-30 深圳迪乐普数码科技有限公司 图像序列帧实时渲染方法、装置、计算机设备及存储介质
CN113360498A (zh) * 2021-06-01 2021-09-07 中国农业银行股份有限公司 流数据转存处理方法、装置及服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031609A (ja) * 1996-07-16 1998-02-03 Nec Corp 時系列データベース凍結装置
CN1340255A (zh) * 1999-02-17 2002-03-13 诺基亚移动电话有限公司 实时业务中的标题压缩
CN1463495A (zh) * 2001-03-29 2003-12-24 皇家菲利浦电子有限公司 传送信号的压缩数据的数据流
US7433527B2 (en) * 2004-02-26 2008-10-07 Mitsubishi Denki Kabushiki Kaisha Time series data dimensional compression apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1031609A (ja) * 1996-07-16 1998-02-03 Nec Corp 時系列データベース凍結装置
CN1340255A (zh) * 1999-02-17 2002-03-13 诺基亚移动电话有限公司 实时业务中的标题压缩
CN1463495A (zh) * 2001-03-29 2003-12-24 皇家菲利浦电子有限公司 传送信号的压缩数据的数据流
US7433527B2 (en) * 2004-02-26 2008-10-07 Mitsubishi Denki Kabushiki Kaisha Time series data dimensional compression apparatus

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于EMS时间序列数据的实时全息无损压缩方法研究与应用";黄缙华 等;《开发与应用》;20120930;第25卷(第09期);论文第1-5页 *

Also Published As

Publication number Publication date
CN103914449A (zh) 2014-07-09

Similar Documents

Publication Publication Date Title
CN103914449B (zh) 一种多源时间序列数据压缩存储方法
EP1866776B1 (en) Method for detecting the presence of subblocks in a reduced-redundancy storage system
CN103488709B (zh) 一种索引建立方法及系统、检索方法及系统
CN103366015B (zh) 一种基于Hadoop的OLAP数据存储与查询方法
US8051252B2 (en) Method and apparatus for detecting the presence of subblocks in a reduced-redundancy storage system
CN104348490B (zh) 一种基于效果优选的组合数据压缩方法
CN101923569B (zh) 一种实时数据库的结构类型数据的存储方法
US20120323867A1 (en) Systems and methods for querying column oriented databases
CN105095421A (zh) 一种实时数据库的分布式的存储方法
CN103150260B (zh) 重复数据删除方法和装置
CN104504116B (zh) 一种实时数据库的存储方法
CN103970852A (zh) 一种备份服务器的数据重删方法
CN102402617A (zh) 一种利用分片及稀疏位图的易压缩数据库索引存储系统及其相应的构建、调度和查询处理方法
CN102073712B (zh) 基于动态变化帧的过程数据全息归档和反演方法
US9378214B2 (en) Method and system for hash key memory reduction
CN103152430A (zh) 一种缩减数据占用空间的云存储方法
CN101751475A (zh) 号段记录压缩方法及其装置
CN101482839B (zh) 电子文档增量存储处理方法
CN102904580A (zh) X-bit压缩编码算法
CN110297836B (zh) 基于压缩位图方式的用户标签存储方法和检索方法
CN104133883A (zh) 电话号码归属地数据压缩算法
CN104731716A (zh) 一种数据存储方法
Heaps Storage analysis of a compression coding for document data bases
WO2024021491A1 (zh) 一种数据切片方法、装置和系统
CN107436848A (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
GR01 Patent grant
CP02 Change in the address of a patent holder

Address after: 201203 403d, building 5, No. 3000, Longdong Avenue, Pudong New Area, Shanghai

Patentee after: Shanghai Kelu Software Co.,Ltd.

Address before: 201203 Shanghai city Pudong New Area road 887 Lane 82 Zuchongzhi Building No. two North

Patentee before: Shanghai Kelu Software Co.,Ltd.

CP02 Change in the address of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20231101

Address after: 201203 north, 2nd floor, No.82, Lane 887, Zuchongzhi Road, Pudong New Area, Shanghai

Patentee after: Shanghai Kelu Software Co.,Ltd.

Patentee after: Shanghai Left Bank Investment Management Co.,Ltd.

Address before: 201203 403D 5, 3000 Longdong Avenue, Pudong New Area, Shanghai.

Patentee before: Shanghai Kelu Software Co.,Ltd.

TR01 Transfer of patent right