CN108563711A - 一种基于时间节点的时序数据存储方法 - Google Patents
一种基于时间节点的时序数据存储方法 Download PDFInfo
- Publication number
- CN108563711A CN108563711A CN201810264221.8A CN201810264221A CN108563711A CN 108563711 A CN108563711 A CN 108563711A CN 201810264221 A CN201810264221 A CN 201810264221A CN 108563711 A CN108563711 A CN 108563711A
- Authority
- CN
- China
- Prior art keywords
- data
- time
- file
- value
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于时间节点的时序数据存储方法,包括以下步骤:1)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。本发明通过研究时序数据存储技术,依据面向对象的软件思想,将海量历史数据按照采样对象和采样指标的不同,分为不同的条目,并采用文件存储方式将海量历史数据按照一个文件存储一个条目的数据方式进行存储,该方法具备存取速度快、压缩率高、容易备份和迁移的特点。
Description
技术领域
本发明涉及数据管理技术领域,具体涉及一种基于时间节点的时序数据存储方法。
背景技术
历史数据是带有时间标志的模拟量或者数字量,这些数据原始出处多是前端设备采集到的诸如环境温度、湿度、压力值等数据量。历史数据具有如下特征:
1、海量数据。
在工程应用中,设备的使用周期很长,一般是三到五年,并且随着应用的拓展,设备的数量还会进一步增加。设备长年运行,持续采集数据,数据被处理后成为历史数据。以12字节代表一个浮点数据记录,则100000个浮点数据在采集周期为1秒的情况下,一天产生的数据量为4GB,一年的数据量则为TB级别。
2、数据存储格式简单。
尽管实际应用环境中数据量的意义纷繁复杂,但是在历史数据存储结构内部都只是存储字节上的区别,除了时间戳上的连续性,历史数据不存在关系数据那样的形式多样的关系连接。
3、时间特性差异明显。
虽然数据存储的格式相对简单,但是由于加入了时间的特性,对于时间的处理是必须考虑的一个关键点。现场采集的数据点所上传的数据周期会依据不同使用情况而相差很大。数据存储时需要处理好不同点之间的时间差异。
因为历史数据的这些特点,传统关系型数据库很难适应这种海量数据场景。
目前可以用来存储海量历史数据的berkeley DB等数据库是使用单一的数据库文件来存储数据,数据库文件随数据量的增加而变大,难以对特定数据备份和迁移。
发明内容
为了解决现有技术的不足,本发明提供了一种基于时间节点的时序数据存储方法,本发明通过研究时序数据存储技术,依据面向对象的软件思想,将海量历史数据按照采样对象和采样指标的不同,分为不同的条目,并采用文件存储方式将海量历史数据按照一个文件存储一个条目的数据方式进行存储,该方法具备存取速度快、压缩率高、容易备份和迁移的特点。
为了实现上述目的,本发明的技术方案如下:
一种基于时间节点的时序数据存储方法,包括以下步骤:
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)将海量历史数据按照采样对象和采样指标的不同,分为不同条目;
2)将每个条目的数据采用文件存储方式存储为一个文件,其中每个条目的数据以固定的时间间隔依次存储,且在创建存储文件的同时预先分配数据存储空间;
3)采用存储映射方式对文件中的数据进行读取和写入,其中数据起止位置根据数据起止时间进行计算。
所述步骤2)中,每个条目对应一个唯一ID,每个文件采用对应条目ID进行命名。
所述步骤2)中,每个所述文件都包括文件头和数据区,其中所述文件头包括总记录数、记录时间间隔、数据类型、基准值、步进值和最后记录时间。
具体实施中,文件格式如表1所示:
表1
表1中,所述总记录数指示该条目的最大数据个数。
所述记录时间间隔是指相邻两个记录的时间差,即采样间隔,具体的数据时间间隔可根据要求配置。
具体实施中,值的位置索引从0开始,如:时间间隔为1分钟,第0个值的时间为2011年1月1日0时0分,则第1个值的时间为2011年1月1日0时1分,第2个值的时间为2011年1月1日0时2分,依次类推。(第0个值的时间为2011年1月1日0时0分是假设值,第一个值的具体时间要根据记录数推算);
实际上,本发明遵循以下计算公式:
值的位置索引=值的实际时间%总时间区间/记录时间间隔。
时间修正量=值的实际时间%总时间区间%记录时间间隔*256/记录时间间隔。
总时间区间=(总记录数-1)*记录时间间隔。
其中,%是求余符号,*代表乘法符号,/为除法符号。
从公式可以看出,数据存储的时候是通过求余来计算存储位置的,也就是说数据存储是循环的。可能出现如图1所示的存储情况。
所述数据类型表示条目数据值的类型,其中1为模拟值,2为离散值;
所述基准值和步进值用于同值偏移量一起组成条目的实际值,要求步进值不能小于基准值的1/65535,具体换算公式如下:
实际值=基准值+值偏移量*步进值
其中基准值取最小值,值偏移量为无符号定点数;
且当数据类型为离散值时,不使用基准值和步进值这两项,即值偏移量为实际值;
所述最后记录时间是指最后一条记录中值的实际时间。
所述数据区中,一个数据记录使用4个字节来存储,其内容根据数据品质的不同而有所不同,具体如下所示:
一个品质好的数据记录包含一个t(8位)、一个v(22位)、一个q(1位)和一个c(1位);
一个品质一般的数据记录包含一个t(8位)、一个v(18位)、一个q(5位)和一个c(1位);
一个品质坏的数据记录包含一个t(8位)、一个v(17位)、一个q(6位)和一个c(1位);
其中,t是时间偏移量;v是值偏移量;q是品质;c是周期较验位。
根据字节顺序的不同,数据记录中v,q,c的位置会有所不同。
在小端字节顺序的系统中,数据记录的布局如下(vL表示v的低16位,vH表示v的高数据位,根据不同的数据品质,vH可能为1位、2位或6位):
t | vL | c | q | vH |
在大端字节顺序的系统中,数据记录的布局如下(vH表示v的高16位,vL表示v的低数据位,根据不同的数据品质,vL可能为1位、2位或6位):
t | vH | vL | q | c |
具体实施中,不同数据品质对应的q取值和v的位数表2所示。
表2
如图2和图3所示,所述步骤3)包括获取原始数据流程和写入数据流程;
所述获取原始数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法mmap映射数据文件;读取数据;
其中mmap的参数flags=MAP_SHARED,参数prot=PROT_READ;
所述写入数据流程包括:根据数据的起止时间计算数据起止位置;采用内存映射文件方法mmap映射数据文件;写入数据;
其中mmap的参数flags=MAP_SHARED。
所述读取数据包括直接读取原始数据和使用聚集操作读取数据。
如图2所示,所述直接读取原始数据的实现包括以下步骤:
3-1-1)根据数据时间,计算开始点数据的索引,标记为start_index;
3-1-2)根据开始点数据的索引计算要映射的数据在文件中的偏移量,标记为offset,所述偏移量的计算公式为:offset=512+start_index*4,
并将偏移量offset通过getpagesize()函数调整为内存分页大小的整数倍,比如offset=7字节,内存分页大小为3字节,则将offset调整为6字节;
3-1-3)将调整后的偏移量的值作为映射区的起始地址start_addr,映射数据文件,每次映射的大小为内存分页大小;
3-1-4)依次对映射区中的每一个数据进行分析,具体方法如下:
(1)令p=start_addr;
(2)分析p地址存储的数据:
如果p不在映射区内,将p作为映射区的起始地址,即令start_addr=p,跳转至步骤3-1-3),;
如果p指示的数据时间>结束时间,跳入步骤3-1-5);
如果p指示的数据点无值或该数据点周期校验错误,进入步骤(3);
否则解析p指示的数据值、品质及时间后,进入步骤(3);
(3)令p=p+4,跳入步骤(2);
3-1-5)取消存储映射。
所述使用聚集操作读取数据的实现包括以下步骤:
3-2-1)根据数据时间,计算开始点数据的索引,标记为start_index;
3-2-2)根据开始点数据的索引计算要映射的数据在文件中的偏移量,标记为offset,所述偏移量的计算公式为:offset=512+start_index*4,
并将偏移量offset通过getpagesize()函数调整为内存分页大小的整数倍,比如offset=7字节,内存分页大小为3字节,则将offset调整为6字节;
3-2-3)将调整后的偏移量的值作为映射区的起始地址start_addr,映射数据文件,每次映射的大小为内存分页大小;
3-2-4)依次对映射区中的每一个数据进行分析,具体方法如下:
(1)令p=start_addr;
(2)分析p地址存储的数据:
如果p不在映射区内,将p作为映射区的起始地址,即令start_addr=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-3-1)将要写入的数据按时间排序;
3-3-2)根据第一个数据时间创建映射区,映射数据文件;
3-3-3)对每一个要写入的数据:
如果数据索引不在映射区内,重新映射数据区;
如果数据索引在映射区内,编码数据,写入;
3-3-4)同步文件,取消存储映射。
采用时序数据存储方法存储的数据文件通过直接复制进行文件备份,通过修改服务配置中数据库文件的存放地址来实现数据库的迁移。
因为数据存储在许多的文件当中,每个文件都不会很大(例如每分钟一个数据,每个数据4个字节,3年的数据约3M大小),且每个数据文件之间是互相独立的,备份这个数据文件时,不会影响其他的数据文件使用。另外因为时序数据的特点,数据只会写入,不会修改,数据之间也没有依赖关系,因此可以在服务开启的情况下,直接复制数据文件来完成备份。备份好的数据文件放到相应目录下,然后修改服务配置中数据库文件的存放地址,修改成前面放置数据文件的目录,重启服务,即可实现数据库的迁移操作。
实施例一,利用CORBA技术实现对数据文件的读取和写入,包括:
1)安装历史数据服务程序,建立数据文件1,1,1,1(1,1,1,1是数据文件的名字也是条目的ID);
2)打开历史数据客户端,在insert选项卡中输入历史数据的Item(数据文件的名字也是条目的ID)、time(时间)、value(值)和Quality(品质),点击insert,插入历史数据,如图4所示;
3)在Read选项卡中,输入Item(数据文件的名字也是条目的ID)、start(起始时间)和end(结束时间),点击read,可以看到刚才插入的数据,如图5所示;
4)在Read_process选项卡中,输入Item(数据文件的名字也是条目的ID)、start(起始时间)、end(结束时间)、Process id(聚集函数,此处选择的是求最大值)和Sampleinterval(采样间隔),点击read,可以看到刚才插入的数据,没有插入数据的时间点值为0,如图6所示。因为这个采样间隔(这里是60秒内)内只有这一个值,因此求得的最大值和插入的数据一样,其他采样间隔因为没有数据,求得的最大值为0。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
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)依次对映射区中的每一个数据进行分析,具体方法如下:
(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)取消存储映射。
8.如权利要求6所述的一种基于时间节点的时序数据存储方法,其特征在于,所述使用聚集操作读取数据的实现包括以下步骤:
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)取消存储映射。
9.如权利要求5所述的一种基于时间节点的时序数据存储方法,其特征在于,所述写入数据采用数据插入接口函数实现,所述数据插入接口函数的实现包括以下步骤:
3-3-1)将要写入的数据按时间排序;
3-3-2)根据第一个数据时间创建映射区,映射数据文件;
3-3-3)对每一个要写入的数据:
如果数据索引不在映射区内,重新映射数据区;
如果数据索引在映射区内,编码数据,写入;
3-3-4)同步文件,取消存储映射。
10.如权利要求1所述的一种基于时间节点的时序数据存储方法,其特征在于,采用时序数据存储方法存储的数据文件通过直接复制进行文件备份,通过修改服务配置中数据库文件的存放地址来实现数据库的迁移。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264221.8A CN108563711B (zh) | 2018-03-28 | 2018-03-28 | 一种基于时间节点的时序数据存储方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810264221.8A CN108563711B (zh) | 2018-03-28 | 2018-03-28 | 一种基于时间节点的时序数据存储方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108563711A true CN108563711A (zh) | 2018-09-21 |
CN108563711B CN108563711B (zh) | 2021-02-09 |
Family
ID=63533053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810264221.8A Active CN108563711B (zh) | 2018-03-28 | 2018-03-28 | 一种基于时间节点的时序数据存储方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108563711B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209347A (zh) * | 2019-04-04 | 2019-09-06 | 特斯联(北京)科技有限公司 | 一种可追溯的数据存储方法 |
CN111046038A (zh) * | 2019-11-22 | 2020-04-21 | 厦门科灿信息技术有限公司 | 时序数据存储的方法及终端设备 |
CN111127700A (zh) * | 2019-12-13 | 2020-05-08 | 苏州智加科技有限公司 | 一种自动驾驶汽车的系统指标监控系统 |
CN111552687A (zh) * | 2020-03-10 | 2020-08-18 | 远景智能国际私人投资有限公司 | 时序数据的存储方法、查询方法、装置、设备及存储介质 |
CN111796775A (zh) * | 2020-07-07 | 2020-10-20 | 威胜集团有限公司 | 智能电表数据存储方法及装置 |
CN112214493A (zh) * | 2020-10-20 | 2021-01-12 | 北京九思易自动化软件有限公司 | 一种历史记录存储方法、装置、电子设备以及存储介质 |
CN112650756A (zh) * | 2020-12-29 | 2021-04-13 | 成都科来网络技术有限公司 | 一种基于时序数据的时间投影的索引方法及系统 |
CN112947326A (zh) * | 2021-01-28 | 2021-06-11 | 深圳市科陆电子科技股份有限公司 | 模糊柔性台区供电质量数据处理方法、装置及存储介质 |
CN113918578A (zh) * | 2020-07-10 | 2022-01-11 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
WO2022126551A1 (zh) * | 2020-12-17 | 2022-06-23 | 北京涛思数据科技有限公司 | 一种时序数据的存储方法 |
CN114661722A (zh) * | 2022-03-23 | 2022-06-24 | 天津同阳科技发展有限公司 | 数据存储方法、数据索引方法及装置 |
CN115827573A (zh) * | 2023-02-16 | 2023-03-21 | 麒麟软件有限公司 | 基于Linux的key-value形数据存储和使用方法 |
CN116795831A (zh) * | 2022-12-26 | 2023-09-22 | 慧之安信息技术股份有限公司 | 一种时序数据条目的数量维护方法及系统 |
CN117725096A (zh) * | 2024-02-07 | 2024-03-19 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储和查询方法、装置、设备及介质 |
CN113918578B (zh) * | 2020-07-10 | 2024-05-24 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040213093A1 (en) * | 2003-02-15 | 2004-10-28 | Seo Kang Soo | Recording medium having data structure for managing reproduction duration of still pictures recorded thereon and recording and reproducing methods and apparatuses |
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
CN102890722A (zh) * | 2012-10-25 | 2013-01-23 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
CN106844555A (zh) * | 2016-12-30 | 2017-06-13 | 江苏瑞中数据股份有限公司 | 一种用于电网wams系统的时序数据存储方法 |
-
2018
- 2018-03-28 CN CN201810264221.8A patent/CN108563711B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040213093A1 (en) * | 2003-02-15 | 2004-10-28 | Seo Kang Soo | Recording medium having data structure for managing reproduction duration of still pictures recorded thereon and recording and reproducing methods and apparatuses |
CN102043795A (zh) * | 2009-10-13 | 2011-05-04 | 上海新华控制技术(集团)有限公司 | 过程控制历史数据文件结构的建立方法和数据读写方法 |
CN102890722A (zh) * | 2012-10-25 | 2013-01-23 | 国家电网公司 | 应用于时序历史数据库的索引方法 |
CN106844555A (zh) * | 2016-12-30 | 2017-06-13 | 江苏瑞中数据股份有限公司 | 一种用于电网wams系统的时序数据存储方法 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209347B (zh) * | 2019-04-04 | 2020-08-11 | 特斯联(北京)科技有限公司 | 一种可追溯的数据存储方法 |
CN110209347A (zh) * | 2019-04-04 | 2019-09-06 | 特斯联(北京)科技有限公司 | 一种可追溯的数据存储方法 |
CN111046038B (zh) * | 2019-11-22 | 2023-02-28 | 厦门科灿信息技术有限公司 | 时序数据存储的方法及终端设备 |
CN111046038A (zh) * | 2019-11-22 | 2020-04-21 | 厦门科灿信息技术有限公司 | 时序数据存储的方法及终端设备 |
CN111127700A (zh) * | 2019-12-13 | 2020-05-08 | 苏州智加科技有限公司 | 一种自动驾驶汽车的系统指标监控系统 |
CN111552687A (zh) * | 2020-03-10 | 2020-08-18 | 远景智能国际私人投资有限公司 | 时序数据的存储方法、查询方法、装置、设备及存储介质 |
CN111552687B (zh) * | 2020-03-10 | 2023-08-04 | 远景智能国际私人投资有限公司 | 时序数据的存储方法、查询方法、装置、设备及存储介质 |
CN111796775A (zh) * | 2020-07-07 | 2020-10-20 | 威胜集团有限公司 | 智能电表数据存储方法及装置 |
CN113918578B (zh) * | 2020-07-10 | 2024-05-24 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
CN113918578A (zh) * | 2020-07-10 | 2022-01-11 | 成都秦川物联网科技股份有限公司 | 一种物联网智能燃气表掉电数据补齐存储方法 |
CN112214493A (zh) * | 2020-10-20 | 2021-01-12 | 北京九思易自动化软件有限公司 | 一种历史记录存储方法、装置、电子设备以及存储介质 |
WO2022126551A1 (zh) * | 2020-12-17 | 2022-06-23 | 北京涛思数据科技有限公司 | 一种时序数据的存储方法 |
CN112650756B (zh) * | 2020-12-29 | 2023-05-02 | 科来网络技术股份有限公司 | 一种基于时序数据的时间投影的索引方法及系统 |
CN112650756A (zh) * | 2020-12-29 | 2021-04-13 | 成都科来网络技术有限公司 | 一种基于时序数据的时间投影的索引方法及系统 |
CN112947326B (zh) * | 2021-01-28 | 2022-09-06 | 深圳市科陆电子科技股份有限公司 | 模糊柔性台区供电质量数据处理方法、装置及存储介质 |
CN112947326A (zh) * | 2021-01-28 | 2021-06-11 | 深圳市科陆电子科技股份有限公司 | 模糊柔性台区供电质量数据处理方法、装置及存储介质 |
CN114661722A (zh) * | 2022-03-23 | 2022-06-24 | 天津同阳科技发展有限公司 | 数据存储方法、数据索引方法及装置 |
CN116795831A (zh) * | 2022-12-26 | 2023-09-22 | 慧之安信息技术股份有限公司 | 一种时序数据条目的数量维护方法及系统 |
CN115827573A (zh) * | 2023-02-16 | 2023-03-21 | 麒麟软件有限公司 | 基于Linux的key-value形数据存储和使用方法 |
CN117725096A (zh) * | 2024-02-07 | 2024-03-19 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储和查询方法、装置、设备及介质 |
CN117725096B (zh) * | 2024-02-07 | 2024-05-03 | 北京四维纵横数据技术有限公司 | 关系型数据库的数据存储和查询方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108563711B (zh) | 2021-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108563711A (zh) | 一种基于时间节点的时序数据存储方法 | |
US6654772B1 (en) | Multi-volume extent based file system | |
US6895418B1 (en) | Versatile indirection in an extent based file system | |
US8099421B2 (en) | File system, and method for storing and searching for file by the same | |
CN105608088A (zh) | 一种基于配置文件的数据库自动创建与数据动态记录方法 | |
US7058664B1 (en) | Method and system for data recovery | |
CN107766374B (zh) | 一种海量小文件存储读取的优化方法和系统 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN108399050B (zh) | 一种数据处理方法及装置 | |
CN101983376A (zh) | 访问装置、信息记录装置、信息记录系统、文件管理方法和程序 | |
CN102169460A (zh) | 变长数据管理方法及装置 | |
CN104021210B (zh) | 以GeoJSON格式半结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN104008209B (zh) | 以GeoJSON格式结构化方式存储地理数据的MongoDB集群的地理数据读写方法 | |
CN108363791A (zh) | 一种数据库的数据同步方法和装置 | |
CN110175206A (zh) | 用于多数据库分离的智能分析业务方法、系统及介质 | |
US20150234841A1 (en) | System and Method for an Efficient Database Storage Model Based on Sparse Files | |
CN101303667B (zh) | 建立磁盘空簇表及查找磁盘空簇的方法和装置 | |
CN117473117A (zh) | 一种视频循环存储方法、系统及计算机 | |
CN106933974B (zh) | 一种视频文件索引信息的构建和查询方法及装置 | |
CN110879812B (zh) | 一种电商平台中基于spark的数据同步方法 | |
CN111522820A (zh) | 数据存储结构、存储检索方法、系统、设备及存储介质 | |
CN111309677A (zh) | 一种分布式文件系统的文件管理方法及装置 | |
CN105549912A (zh) | 同时包含多种类操作系统的服务器集群的存储方法 | |
CN105302912B (zh) | 一种数据存储方法及设备 | |
CN107861956B (zh) | 一种卡口过车数据记录的查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A time-series data storage method based on time nodes Effective date of registration: 20220705 Granted publication date: 20210209 Pledgee: Qilu bank Limited by Share Ltd. Ji'nan Huaiyin branch Pledgor: SHANDONG ZHAOYUAN INFORMATION TECHNOLOGY CO.,LTD. Registration number: Y2022980009829 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |