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.一种基于时间节点的时序数据存储方法,其特征在于,包括以下步骤: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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。