当前位置: 首页 > 专利查询>河海大学专利>正文

基于周期对数的二维时序数据存储和查询方法技术

技术编号:9535353 阅读:110 留言:0更新日期:2014-01-03 18:40
本发明专利技术公开了一种基于周期对数的二维时序数据存储和查询方法,主要特点如下:(1)多级目录式结构;(2)将周期取对数作为索引;(3)按起始结束时间进行分块。本发明专利技术能够实现大量数据的分块存储,在使用较小内存的情况下仍能正常工作,并且此结构在两个维度上具有很高的存储和查询效率,为大数据提供了一种新型的快速存储和查询方法。

【技术实现步骤摘要】
基于周期对数的二维时序数据存储和查询方法
本专利技术涉及一种基于周期对数的二维时序数据存储和查询方法,适用于时序数据存储和查询

技术介绍
二维时序数据主要来自于一类按照时间周期返回数据的传感器,这类传感器会被安装在需要实时监测的设备上,比如仪表盘、锅炉等,通过传感器传回监测设备的属性数据,比如某一时刻的温度、锅炉的压力等,系统可以完整的记录下设备的整个运行状况,在设备出现问题时可以通过历史记录进行问题分析和问题定位。当前的应用发展趋势表明,被监测个体的数目正在迅速增长,同时随着技术的进步以及应用的需求,数据回传的周期也越来越短。对于大量二维时序数据,要进行两个维度的快速存储和查询,传统的朴素方法在数据量激增的时候,在某一维度上的查询将进行很多I/O操作,效率非常低。由于时序数据量通常非常之大,为每个数据都建立索引空间很不现实,为此,我们设计一种基于周期对数的二维数据存储方法,建立索引,提高查询效率。
技术实现思路
专利技术目的:针对现有技术中存在的问题,本专利技术提供一种基于周期对数的二维时序数据存储和查询方法,通过设计基于周期对数的数据存储结构,建立索引,实现对时序数据的二个维度的插入与查询功能。为了便于说明,此处说明一下应用背景:有若干个设备,分别按一定周期产生数据。查询某一设备一段时间内的数据称为批量查询,查询某一时间点,一批设备的数据称为断面查询;批量提交和断面提交即为对应的插入操作。技术方案:一种基于周期对数的二维时序数据存储和查询方法,采用分块存储,其主要存储特点如下:(1)采用多级目录结构:最底层为一个数据块,多个数据块构成一个节点,多个节点串成一条链;(2)每条链有个唯一参数t,只存储周期在[2t,2t+1)上的数据;(3)在参数为t的链上的节点有个唯一的参数i,只存储周期在[(i-1)*I*2t+1,i*I*2t+1)上的数据(其中I为常数)。本专利技术采用上述技术方案,具有以下有益效果:通过设计基于周期对数的数据存储结构,建立索引,能够实现大量数据的分块存储,在使用较小内存的情况下仍能正常工作,并且此结构在两个维度上具有很高的存储和查询效率。附图说明图1是数据存储结构图;图2是索引结构图;图3是批量查询算法流程图。具体实施方式下面结合具体实施例,进一步阐明本专利技术,应理解这些实施例仅用于说明本专利技术而不用于限制本专利技术的范围,在阅读了本专利技术之后,本领域技术人员对本专利技术的各种等价形式的修改均落于本申请所附权利要求所限定的范围。基于周期对数的二维时序数据存储和查询方法,主要步骤如下:1、设计数据存储结构我们设计的数据存储结构如图1所示:图中每一个小长方体代表一个数据块,存储数据,S、F代表每个数据块的开始时间和终止时间;每三个叠在一起的长方体代表一个数据块节点(并不代表每个数据块节点只有三个数据块,可以有任意个);每个横排的多个数据块节点为一条数据链,每条链都有不同的时间参数T,同一条链上的时间参数相同,多条链组成一个数据表。设计过程可以从下述的几个方面来说明:(1)数据块的设计数据块的大小:数据块不应太小,否则查询数据量很大时会有很多IO操作,对于PC来说,参考大小为64M。存储时间的限制:因为每个数据块的大小应该是事先固定的,所以每个数据块必须有规定的时间范围。假设时间下界为s,时间上界为f,则数据块存储的是某一设备在时间段[s,f]内的数据。存储设备的限制:每个设备的数据都有固定的时间间隔,在同一个节点中应该尽量避免同时存储两个时间间隔相差很大的设备,否则会导致在某些情况下,对于大周期设备的批量查询,会跨越非常多的文件(块),这是不希望看到的。为了解决这一问题,我们将时间间隔之比小于等于2的设备存储在同一数据块中,而为了使得设备的时间间隔之比小于等于2,我们为每条链(见下)增加了一个时间参数t,使每条链只存储时间周期在[2t,2t+1)内的设备。(2)数据块节点的设计由于数据量很大,一个数据块64M可能不能存储所有满足时间周期在[2t,2t+1)内的设备数据,需要多个数据块来存储,我们将所有时间参数t相同的数据块定义为一个数据块节点。为了保证节点的连续性,引进新的参数i,参数i代表数据块节点处于第几个时间段,引进参数I为数据块宽度,那么,对于数据链上第i个节点存储设备的时间范围为[(i-1)*I*2t+1,i*I*2t+1),在PC上,I的参考值为10240。通过上面的分析,可知每个数据块节点中存储的设备数据的周期都在[2t,2t+1)之间,并且第i个节点存储的是设备在时间段[(i-1)*I*2t+1,i*I*2t+1)内的数据。并且,各个节点中每个数据块的时间参数和时间上下界是相同的。(3)数据链的设计每个数据块节点只存储了设备在时间段[s,f)内的数据,这些数据只是每个设备数据的一部分,所以要存储设备的所有数据就要将具有同一时间参数t而不同时间段的数据块节点组成一条链,定义为一个数据链。每个数据链存储的是设备数据的周期在[2t,2t+1)之间的所有设备的数据,包含时间参数t和链与数据块节点之间的索引关系。(4)整个数据表的设计每条数据链存储的是设备数据的周期在[2t,2t+1)之间的所有设备的数据,所以将具有不同时间参数t的数据链组成一个表,这个表存储了每个设备的所有数据,将这个表定义为数据表。2、设计索引针对上面所描述的数据存储结构,我们设计的索引如图2所示。图中的Table代表整个数据表,Chain代表上面所提到的数据链,一个数据表Table是由若干个数据链组成的。数据链Chain包含两个参数:Node和t,Node代表数据块节点,一个数据链是由若干个数据块节点Node组成的;t代表时间参数,在存储结构的设计中已经提到过,数据块节点的存储对设备的周期有一定的限制,只存储时间周期在[2t,2t+1)内的设备。数据块节点Node包含四个参数:Block、i、t和last,Block代表一个数据块,一个数据块节点是由若干个数据块Block组成的;参数i用于和参数t共同决定数据块存储数据的起始时间和终止时间,第i个节点存储设备的时间范围为[(i-1)*I*2t+1,i*I*2t+1);t和数据块节点中的t含义是相同的;last代表当前活跃的块,在写入数据操作中把新添加的数据存放在活跃块里。数据块Block包含三个参数:Item、cur和filename。Item代表数据块中存储的设备信息,一个数据块中存储着多个设备,所以数据块Block是由若干个Item组成的;cur代表当前数据大小;filename代表所要查询的设备存储的文件名。Item包含三个参数:offset、size和s,offset代表数据的地址偏移量;size代表本块中存储设备个数最大值;s代表本数据块中存储设备的开始时间。3、抽象数据结构描述根据索引的设计,我们可以进一步定义数据的抽象结构,如下:(1)数据表的抽象数据结构定义数据表为Table,其数据类型如下所示:Tablemap<int,Chain>map是STL中提供的关联容器,键-值的集合。在数据表Table中,map<int,Chain>表示可以根据时间参数t找到相应的数据链。(2)数据链的抽象数据结构定义数据链为Chain,其数据类本文档来自技高网...
基于周期对数的二维时序数据存储和查询方法

【技术保护点】
一种基于周期对数的二维时序数据存储和查询方法,其特征在于,包括如下步骤:设计数据存储结构;设计索引;对抽象数据结构描述;实现二维数据的批量存储;实现二维数据的批量查询;实现二维数据的断面存储;实现二维数据的断面查询;其中,数据存储结构的设计为,(1)采用多级目录结构:最底层为一个用于存储数据的数据块,多个数据块构成一个节点,多个节点串成一条链;(2)每条链有个唯一参数t,只存储周期在[2t,2t+1)上的数据;在参数为t的链上的节点有个唯一的参数i,只存储周期在[(i?1)*I*2t+1,i*I*2t+1)上的数据,其中I为常数。

【技术特征摘要】
1.一种基于周期对数的二维时序数据存储和查询方法,其特征在于,包括如下步骤:设计数据存储结构;设计索引;对抽象数据结构描述;实现二维数据的批量存储;实现二维数据的批量查询;实现二维数据的断面存储;实现二维数据的断面查询;其中,数据存储结构的设计为,(1)采用多级目录结构:最底层为一个用于存储数据的数据块,多个数据块构成一个节点,多个节点串成一条链;(2)每条链有个唯一参数t,只存储周期在[2t,2t+1)上的数据;t代表时间参数;在参数为t的链上的节点有个唯一的参数i,只存储周期在[(i-1)*I*2t+1,i*I*2t+1)上的数据,其中I为常数,i表示一条链上的第i个节点;设计索引具体为:用Table代表整个数据表,Chain代表数据链,一个数据表Table是由若干个数据链组成的;数据链Chain包含两个参数:Node和t,Node代表数据块节点,一个数据链是由若干个数据块节点Node组成的;t代表时间参数,只存储时间周期在[2t,2t+1)内的设备;数据块节点Node包含四个参数:Block、i、t和last,Block代表一个数据块,一个数据块节点是由若干个数据块Block组成的;参数i用于和参数t共同决定数据块存储数据的起始时间和终止时间,第i个节点存储设备的时间范围为[(i-1)*I*2t+1,i*I*2t+1);t和数据块节点中的t含义是相同的;last代表当前活跃的块,在写入数据操作中把新添加的数据存放在活跃块里;数据块Block包含三个参数:Item、cur和filename,Item代表数据块中存储的设备信息,一个数据块中存储着多个设备,所以数据块Block是由若干个Item组成的;cur代表当前数据大小;filename代表所要查询的设备存储的文件名;...

【专利技术属性】
技术研发人员:裴正倪丹何恋张雪洁周文欢
申请(专利权)人:河海大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1