一种基于时间节点的时序数据存储方法技术

技术编号:19009191 阅读:61 留言:0更新日期:2018-09-22 09:03
本发明专利技术公开了一种基于时间节点的时序数据存储方法,包括以下步骤:1)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。本发明专利技术通过研究时序数据存储技术,依据面向对象的软件思想,将海量历史数据按照采样对象和采样指标的不同,分为不同的条目,并采用文件存储方式将海量历史数据按照一个文件存储一个条目的数据方式进行存储,该方法具备存取速度快、压缩率高、容易备份和迁移的特点。

A storage method of time series data based on time node

The invention discloses a timing data storage method based on a time node, which comprises the following steps: 1) dividing massive historical data into different items according to different sampling objects and sampling indexes; 2) storing the data of each item into a file by file storage, in which the data of each item is stored for a fixed time; Interval storage, and in the creation of storage files at the same time pre-allocation of data storage space; 3) the use of storage mapping to read and write the data in the file, where the data start and stop position is calculated according to the data start and stop time. The invention divides the massive historical data into different items according to the different sampling objects and sampling indexes according to the object-oriented software idea, and stores the massive historical data in the way of storing one item in one file by the file storage method. It has the characteristics of fast access speed, high compression rate, easy backup and migration.

【技术实现步骤摘要】
一种基于时间节点的时序数据存储方法
本专利技术涉及数据管理
,具体涉及一种基于时间节点的时序数据存储方法。
技术介绍
历史数据是带有时间标志的模拟量或者数字量,这些数据原始出处多是前端设备采集到的诸如环境温度、湿度、压力值等数据量。历史数据具有如下特征:1、海量数据。在工程应用中,设备的使用周期很长,一般是三到五年,并且随着应用的拓展,设备的数量还会进一步增加。设备长年运行,持续采集数据,数据被处理后成为历史数据。以12字节代表一个浮点数据记录,则100000个浮点数据在采集周期为1秒的情况下,一天产生的数据量为4GB,一年的数据量则为TB级别。2、数据存储格式简单。尽管实际应用环境中数据量的意义纷繁复杂,但是在历史数据存储结构内部都只是存储字节上的区别,除了时间戳上的连续性,历史数据不存在关系数据那样的形式多样的关系连接。3、时间特性差异明显。虽然数据存储的格式相对简单,但是由于加入了时间的特性,对于时间的处理是必须考虑的一个关键点。现场采集的数据点所上传的数据周期会依据不同使用情况而相差很大。数据存储时需要处理好不同点之间的时间差异。因为历史数据的这些特点,传统关系型数据库很难适应这种海量数据场景。目前可以用来存储海量历史数据的berkeleyDB等数据库是使用单一的数据库文件来存储数据,数据库文件随数据量的增加而变大,难以对特定数据备份和迁移。
技术实现思路
为了解决现有技术的不足,本专利技术提供了一种基于时间节点的时序数据存储方法,本专利技术通过研究时序数据存储技术,依据面向对象的软件思想,将海量历史数据按照采样对象和采样指标的不同,分为不同的条目,并采用文件存储方式将海量历史数据按照一个文件存储一个条目的数据方式进行存储,该方法具备存取速度快、压缩率高、容易备份和迁移的特点。为了实现上述目的,本专利技术的技术方案如下:一种基于时间节点的时序数据存储方法,包括以下步骤:1)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定的时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。进一步的,所述步骤2)中,每个条目对应一个唯一ID,每个文件采用对应条目ID进行命名。进一步的,所述步骤2)中,每个所述文件都包括文件头和数据区,其中所述文件头包括总记录数、记录时间间隔、数据类型、基准值、步进值和最后记录时间;所述数据区中,一个数据记录使用4个字节来存储,其内容根据数据品质的不同而有所不同。进一步的,所述总记录数为该条目的最大数据个数;所述记录时间间隔为相邻两个记录的时间差;所述数据类型包括模拟值和离散值;所述基准值和步进值用于同值偏移量一起组成条目的实际值;所述最后记录时间为最后一条记录中值的实际时间。进一步的,所述步骤3)包括获取原始数据流程和写入数据流程;所述获取原始数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法映射数据文件;读取数据;所述写入数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法映射数据文件;写入数据。进一步的,所述读取数据包括直接读取原始数据和使用聚集操作读取数据。进一步的,所述直接读取原始数据的实现包括以下步骤:3-1-1)根据数据时间,计算开始点数据的索引;3-1-2)根据开始点数据的索引计算要映射的数据在文件中的偏移量,并将偏移量调整为内存分页大小的整数倍;3-1-3)将调整后的偏移量的值作为映射区的起始地址,映射数据文件,每次映射的大小为内存分页大小;3-1-4)依次对映射区中的每一个数据进行分析,具体方法如下:(1)令p=映射区的起始地址;(2)分析p地址存储的数据:如果p不在映射区内,将p作为映射区的起始地址,跳转至步骤3-1-3);如果p指示的数据时间>结束时间,跳入步骤3-1-5);如果p指示的数据点无值或该数据点周期校验错误,进入步骤(3);否则解析p指示的数据值、品质及时间后,进入步骤(3);(3)令p=p+4,跳入步骤(2);3-1-5)取消存储映射。进一步的,所述使用聚集操作读取数据的实现包括以下步骤:3-2-1)根据数据时间,计算开始点数据的索引;3-2-2)根据开始点数据的索引计算要映射的数据在文件中的偏移量,并将偏移量调整为内存分页大小的整数倍;3-2-3)将调整后的偏移量的值作为映射区的起始地址,映射数据文件,每次映射的大小为内存分页大小;3-2-4)依次对映射区中的每一个数据进行分析,具体方法如下:(1)令p=映射区的起始地址;(2)分析p地址存储的数据:如果p不在映射区内,将p作为映射区的起始地址,跳转至步骤3-2-3);如果p指示的数据时间>结束时间,跳入步骤3-2-5);如果p指示的数据点无值或该数据点周期校验错误,进入步骤(3);否则解析p指示的数据值、品质及时间后,进入步骤(3);(3)令p=p+4(字节),跳入步骤(2);3-2-5)遍历解析到的数据,并调用聚集函数进行计算,得到计算结果;3-2-6)取消存储映射。进一步的,所述写入数据采用数据插入接口函数实现,所述数据插入接口函数的实现包括以下步骤:3-3-1)将要写入的数据按时间排序;3-3-2)根据第一个数据时间创建映射区,映射数据文件;3-3-3)对每一个要写入的数据:如果数据索引不在映射区内,重新映射数据区;如果数据索引在映射区内,编码数据,写入;3-3-4)同步文件,取消存储映射。进一步的,采用时序数据存储方法存储的数据文件通过直接复制进行文件备份,通过修改服务配置中数据库文件的存放地址来实现数据库的迁移。与现有技术相比,本专利技术的有益效果是:(1)压缩率高该方法存储海量数据,预先分配存储空间防止产生磁盘碎片,对数据进行优化,比其他数据库系统具有更高的存储密度。(2)管理简单该方法在数据存储方式上采用每个数据对象一个数据库文件,可以方面的实现数据备份和迁移,方便数据的管理。(3)性能高效该方法通过存储映射方式对数据文件进行读写,比传统的先连接数据库、再查找表格遍历记录、最后返回查询结果的过程更加简单,从而提高访问效率。附图说明构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。图1为时序数据存储方法数据存储的某一种情况;图2为时序数据存储方法数据读取的流程图;图3为时序数据存储方法数据写入的流程图;图4为插入数据界面显示图;图5为直接读取历史数据界面显示图;图6为调用聚集函数读取历史数据界面显示图。具体实施方式下面结合附图与具体实施例对本专利技术做进一步的说明。应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属
的普通技术人员通常理解的相同含义。需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包本文档来自技高网
...
一种基于时间节点的时序数据存储方法

【技术保护点】
1.一种基于时间节点的时序数据存储方法,其特征在于,包括以下步骤:1)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定的时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。

【技术特征摘要】
1.一种基于时间节点的时序数据存储方法,其特征在于,包括以下步骤:1)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定的时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。2.如权利要求1所述的一种基于时间节点的时序数据存储方法,其特征在于,所述步骤2)中,每个条目对应一个唯一ID,每个文件采用对应条目ID进行命名。3.如权利要求1所述的一种基于时间节点的时序数据存储方法,其特征在于,所述步骤2)中,每个所述文件都包括文件头和数据区,其中所述文件头包括总记录数、记录时间间隔、数据类型、基准值、步进值和最后记录时间;所述数据区中,一个数据记录使用4个字节来存储,其内容根据数据品质的不同而有所不同。4.如权利要求3所述的一种基于时间节点的时序数据存储方法,其特征在于,所述总记录数为该条目的最大数据个数;所述记录时间间隔为相邻两个记录的时间差;所述数据类型包括模拟值和离散值;所述基准值和步进值用于同值偏移量一起组成条目的实际值;所述最后记录时间为最后一条记录中值的实际时间。5.如权利要求1所述的一种基于时间节点的时序数据存储方法,其特征在于,所述步骤3)包括获取原始数据流程和写入数据流程;所述获取原始数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法映射数据文件;读取数据;所述写入数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法映射数据文件;写入数据。6.如权利要求5所述的一种基于时间节点的时序数据存储方法,其特征在于,所述读取数据包括直接读取原始数据和使用聚集操作读取数据。7.如权利要求6所述的一种基于时间节点的时序数据存储方法,其特征在于,所述直接读取原始数据的实现包括以下步骤:3-1-1)根据数据时间,计算开始点数据的索引;3-1-2)根据开始点数据的索引计算要映射的数据在文件中的偏移量,并将偏移量调整为内存分页大小的整数倍;3-1-3)将调整后的偏移量的值作为映射区的起始地址,映射数据文件,每次映射的大小为内存分页大小;3-1-4...

【专利技术属性】
技术研发人员:刁学立张斌夏孝君雷英红
申请(专利权)人:山东昭元信息科技有限公司
类型:发明
国别省市:山东,37

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

1