CN107544964A - 一种用于时序数据库的数据块存储方法 - Google Patents

一种用于时序数据库的数据块存储方法 Download PDF

Info

Publication number
CN107544964A
CN107544964A CN201610463626.5A CN201610463626A CN107544964A CN 107544964 A CN107544964 A CN 107544964A CN 201610463626 A CN201610463626 A CN 201610463626A CN 107544964 A CN107544964 A CN 107544964A
Authority
CN
China
Prior art keywords
data
data block
file
time series
chained list
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.)
Pending
Application number
CN201610463626.5A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201610463626.5A priority Critical patent/CN107544964A/zh
Publication of CN107544964A publication Critical patent/CN107544964A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种用于时序数据库的数据块存储方法,如图2,使用大块连续的内存记录时序数据,然后在大块内存的写入文件中,这样极大地提高了时序数据库的吞吐量。由于更新数据和实时数据查询这些频繁的操作,而操作的是大块连续的内存,其处理效率也较为理想,能够满足大型时序数据的处理要求。在保存时序数据时,先保存索引,再保存实际数据块,如图3。在索引文件中每个数据库的记录都是按时间增加的,所以在查找时可以直接使用二分法的方法查找指定时间数据库,历史数据查找高效。

Description

一种用于时序数据库的数据块存储方法
技术领域
本发明涉及时序数据存储领域,可用于GPS、环境温度、湿度、风向、PM2.5等带时间标签数据的存储。
背景技术
时序数据库广泛应用于各个领域,例如GPS、环境温度、湿度、风向、PM2.5等带时间标签的数据。同时,时序数据库有很多类型,例如PTimeDb、蜂鸟数据库、inflluxdb时序数据库等。其中,PTimeDb是唯一在相关行业中有商业应用的时序数据库,具有较高的吞吐量和并发效率。但是,这些时序数据库存在着不同的缺点,例如没有明确适应的时序数据类型、并发量不够、吞吐量不够、查询效率不能满足某些应用等。
针对GPS类型的时序数据库,要求有很高的插入效率与实时查询效率。例如,100万量车每秒提交GPS数据,这样就需要100万每秒的插入效率,而一天就需要存储860亿个GPS数据;如果前端有10万个用户就需要10万次每秒的查询效率,一天需要执行86亿次查询。GPS数据的查询很多需要区域查询,如果使用上文提到的数据库均很难满足要求。如果使用数据块的存储方法,先将数据在内存中组织成块,等大块内存都用完后将数据写入文件中,能够有效地解决大量数据的插入与查询问题。
发明内容
本发明提供一种用于时序数据库的数据块存储方法,以解决时序数据写入与查询的问题。
具体步骤如下:
S1:如图1,分配一大块内存,按一个记录的大小分为N块,然后将这N块内存按照链表的方式按顺序组织起来,该链表称为空闲链表。
S2:如图2,使用映射表的方式记录ID、起始位置和结束位置的关系。
S3:接收数据更新,首先判断在映射表中是否有当前ID。没有转到S4,否则转到S7。
S4:判断空闲链表是否为空;不为空转到S5,为空转到S6。
S5:从空闲链表中取出头结点,并将数据写入当前结点。在映射表中增加记录ID,起始位置和末尾位置都为该结点位置。转S3继续更新数据,转S10进行数据查询。
S6:如图3,将整块数据写入文件,在索引文件中追加前数据块的起始时间、结束时间、数据块在文件中的位置和数据块大小;再重新按链表的方式按顺序组织N块内存,清空映射表。转S3则继续处理当前接收的数据。
S7:判断空闲链表是否为空,不为空转到S8,为空转到S9。
S8:从空闲链表中取出头结点,并将数据写入当前结点。更新映射表中对应ID的结束位置为该结点位置。转S3继续更新数据,转S10进行数据查询。
S9:将整块数据写入文件,在索引文件中追加记录当前数据块的起始时间和结束时间。转S3继续处理当前接收的数据。
S10:接收查询请求,判断查询请求中有没有指定时间。有认为查询历史数据,转到S11;否则查询实时数据,转到S13。
S11:打开索引文件,在索引文件中找到指定时间的数据块信息。
S12:在数据文件中读取指定的数据块到内存中。
S13:初始化结果集R。判断是否有指定条件,若没有指定,则将当前内存中的数据赋值到结果集R中,转到S15;若有指定条件,则转到S14。
S14:根据条件1,查询当前内存中的记录,并将结果记录在R中。条件2及以上条件在R中查找,并将查询到的数据重新写入R中。
S15:将结果集R返回。
附图说明
图1 是 数据块的内存组织关系。
图2 是 映射表与数据块组织的关系。
图3 是 历史数据块的存储方式。
具体实施方式
运动中的车辆包含ID、实时GPS和实时速度信息,以下结合运动中的车辆信息对本发明作进一步详细说明,但不作为对本发明的限定。
包括步骤如下:
S1:如图1,分配一个100MB的内存,一个记录需要100字节,将这100MB内存分为N个100字节的内存块,然后将这N个内存块按照链表的方式按顺序组织起来,该链表称为空闲链表。
S2:如图2,使用哈希映射表的方式记录ID、起始位置和结束位置的关系。
S3:接收数据更新,首先判断在哈希映射表中是否有当前ID。没有转到S4,否则转到S7。
S4:判断空闲链表是否为空,不为空转到S5,为空转到S6。
S5:从空闲链表中取出头结点,并将接收的ID、GPS和速度信息写入当前结点。在哈希映射表中增加记录当前ID,起始位置和末尾位置都为该结点的内存地址。转S3继续更新数据,转S10进行数据查询。
S6:如图3,将整块数据写入记录文件,在索引文件中追加前数据块的起始时间、结束时间、数据块在文件中的位置和数据块大小。重新按链表的方式按顺序组织N块内存,清空映射表。转S3继续处理当前接收的数据。
S7:判断空闲链表是否为空,不为空转到S8,为空转到S9。
S8:从空闲链表中取出头结点,并将数据写入当前结点。更新映射表中对于ID的结束位置为该结点位置。转S3继续更新数据,转S10进行数据查询。
S9:将整块数据写入文件,在索引文件中追加记录当前数据块的起始时间和结束时间。转S3继续处理当前接收的数据。
S10:接收查询请求,判断查询请求中有没有指定时间。有认为查询历史数据转到S11;否则查询实时数据,转到S13。
S11:打开索引文件,在索引文件中找到指定时间的数据块信息。
S12:在数据文件中读取指定的数据块到内存中。
S13:初始化结果集R。判断是否有指定条件,若没有指定,则将当前内存中的数据赋值到结果集R中,转到S15;若有指定条件,则转到S14。
S14:根据条件1,查询当前内存中的记录,并将结果记录在R中。条件2及以上条件在R中查找,并将查询到的数据重新写入R中。
S15:将结果集R返回。
上述说明示出并描述了本发明的若干优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

Claims (11)

1.一种用于时序数据库的数据块存储方法,其特征在于包括,
如图1,分配一大块内存,按一个记录的大小分为N块,然后将这N块内存按照链表的方式按顺序组织起来,该链表称为空闲链表。
2.如图2,使用映射表的方式记录ID、起始位置和结束位置的关系。
3.接收数据更新,首先判断在映射表中是否有当前ID。
4.从空闲链表中取出头结点,并将数据写入当前结点;在映射表中增加记录ID、起始位置和末尾位置都为该结点位置。
5.如图3,将整块数据写入文件,在索引文件中追加前数据块的起始时间、结束时间、数据块在文件中的位置和数据块大小,再重新按链表的方式按顺序组织N块内存,清空映射表。
6.接收查询请求,判断查询请求中有没有指定时间,有认为查询历史数据,转到7;否则查询实时数据,转到9。
7.打开索引文件,在索引文件中找到指定时间的数据块信息。
8.在数据文件中读取指定的数据块到内存中。
9.初始化结果集R,判断是否有指定条件;若没有指定,则将当前内存中的数据赋值到结果集R中,转到11;若有指定条件,则转到10。
10.根据条件1,查询当前内存中的记录,并将结果记录在R中;条件2及以上条件在R中查找,并将查询到的数据重新写入R中。
11.将结果集R返回。
CN201610463626.5A 2016-06-24 2016-06-24 一种用于时序数据库的数据块存储方法 Pending CN107544964A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610463626.5A CN107544964A (zh) 2016-06-24 2016-06-24 一种用于时序数据库的数据块存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610463626.5A CN107544964A (zh) 2016-06-24 2016-06-24 一种用于时序数据库的数据块存储方法

Publications (1)

Publication Number Publication Date
CN107544964A true CN107544964A (zh) 2018-01-05

Family

ID=60960956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610463626.5A Pending CN107544964A (zh) 2016-06-24 2016-06-24 一种用于时序数据库的数据块存储方法

Country Status (1)

Country Link
CN (1) CN107544964A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399263A (zh) * 2018-03-15 2018-08-14 北京大众益康科技有限公司 时序数据的存储和查询方法及存储和处理平台
CN108776704A (zh) * 2018-06-12 2018-11-09 东方电子股份有限公司 一种基于回归分析的时序数据索引方法
CN110543496A (zh) * 2019-09-06 2019-12-06 中国联合网络通信集团有限公司 用于时序数据库集群的数据处理方法和装置
CN111857581A (zh) * 2020-07-06 2020-10-30 浙江鸿泉电子科技有限公司 一种数据存储的处理方法及系统
CN112052243A (zh) * 2020-09-08 2020-12-08 贵州乌江水电开发有限责任公司东风发电厂 一种基于数据库技术的连续波形记录方法
CN112181973A (zh) * 2019-07-01 2021-01-05 北京涛思数据科技有限公司 一种时序数据的存储方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122885A (zh) * 2007-09-11 2008-02-13 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置
CN102446184A (zh) * 2010-10-12 2012-05-09 上海可鲁系统软件有限公司 一种基于时间序列的工业数据存储及索引方法
CN102890722A (zh) * 2012-10-25 2013-01-23 国家电网公司 应用于时序历史数据库的索引方法
CN103678172A (zh) * 2013-12-25 2014-03-26 Tcl集团股份有限公司 一种本地数据缓存管理方法及装置
CN104077405A (zh) * 2014-07-08 2014-10-01 国家电网公司 时序类型数据存取方法
CN104156385A (zh) * 2014-06-24 2014-11-19 北京京东尚科信息技术有限公司 一种处理时间序列数据的方法和装置
CN105242882A (zh) * 2015-10-13 2016-01-13 东方网力科技股份有限公司 时序数据的帧存储方法及装置、时序数据查询方法及装置
CN105469173A (zh) * 2014-08-19 2016-04-06 西安慧泽知识产权运营管理有限公司 一种静态内存进行优化管理的方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122885A (zh) * 2007-09-11 2008-02-13 腾讯科技(深圳)有限公司 一种数据缓存处理方法、系统及数据缓存装置
CN102446184A (zh) * 2010-10-12 2012-05-09 上海可鲁系统软件有限公司 一种基于时间序列的工业数据存储及索引方法
CN102890722A (zh) * 2012-10-25 2013-01-23 国家电网公司 应用于时序历史数据库的索引方法
CN103678172A (zh) * 2013-12-25 2014-03-26 Tcl集团股份有限公司 一种本地数据缓存管理方法及装置
CN104156385A (zh) * 2014-06-24 2014-11-19 北京京东尚科信息技术有限公司 一种处理时间序列数据的方法和装置
CN104077405A (zh) * 2014-07-08 2014-10-01 国家电网公司 时序类型数据存取方法
CN105469173A (zh) * 2014-08-19 2016-04-06 西安慧泽知识产权运营管理有限公司 一种静态内存进行优化管理的方法
CN105242882A (zh) * 2015-10-13 2016-01-13 东方网力科技股份有限公司 时序数据的帧存储方法及装置、时序数据查询方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108399263A (zh) * 2018-03-15 2018-08-14 北京大众益康科技有限公司 时序数据的存储和查询方法及存储和处理平台
CN108776704A (zh) * 2018-06-12 2018-11-09 东方电子股份有限公司 一种基于回归分析的时序数据索引方法
CN108776704B (zh) * 2018-06-12 2021-05-11 东方电子股份有限公司 一种基于回归分析的时序数据索引方法
CN112181973A (zh) * 2019-07-01 2021-01-05 北京涛思数据科技有限公司 一种时序数据的存储方法
CN112181973B (zh) * 2019-07-01 2023-05-30 北京涛思数据科技有限公司 一种时序数据的存储方法
CN110543496A (zh) * 2019-09-06 2019-12-06 中国联合网络通信集团有限公司 用于时序数据库集群的数据处理方法和装置
CN111857581A (zh) * 2020-07-06 2020-10-30 浙江鸿泉电子科技有限公司 一种数据存储的处理方法及系统
CN112052243A (zh) * 2020-09-08 2020-12-08 贵州乌江水电开发有限责任公司东风发电厂 一种基于数据库技术的连续波形记录方法
CN112052243B (zh) * 2020-09-08 2021-05-14 贵州乌江水电开发有限责任公司东风发电厂 一种基于数据库技术的连续波形记录方法

Similar Documents

Publication Publication Date Title
CN107544964A (zh) 一种用于时序数据库的数据块存储方法
CN107423422B (zh) 基于网格的空间数据分布式存储及检索方法和系统
CN104346357B (zh) 一种嵌入式终端的文件存取方法及系统
CN102890722B (zh) 应用于时序历史数据库的索引方法
CN102663090B (zh) 元数据查询方法和装置
WO2020041928A1 (zh) 数据存储方法、系统及终端设备
CN103229164B (zh) 数据访问方法和装置
WO2018063585A1 (en) Techniques to manage key-value storage at a memory or storage device
CN103049473A (zh) 一种数据查询方法及装置
US8676788B2 (en) Structured large object (LOB) data
CN104090987A (zh) 一种历史数据存储及索引方法
CN105117355A (zh) 存储器、存储器系统及其数据处理方法
CN110362549A (zh) 日志存储检索方法、电子装置及计算机设备
CN104598519A (zh) 一种基于连续内存的数据库索引系统及处理方法
CN102184229A (zh) 一种海量rfid标签信息的内存数据存储方法
CN103186668A (zh) 基于键值数据库的数据处理方法与装置以及数据存储系统
CN109582598A (zh) 一种基于外部存储实现高效查找哈希表的预处理方法
CN109690522A (zh) 一种基于b+树索引的数据更新方法、装置及存储装置
CN103488727A (zh) 基于周期对数的二维时序数据存储和查询方法
CN104021223A (zh) 一种集群数据库测点的访问方法及装置
CN104615459A (zh) 一种MoCA设备参数配置方法及装置
CN102651674B (zh) 一种反射内存网数据传输方法
CN108717448B (zh) 一种面向键值对存储的范围查询过滤方法和键值对存储系统
CN110109763A (zh) 一种共享内存管理方法及装置
CN102650972A (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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20180105

WD01 Invention patent application deemed withdrawn after publication