时序数据库的数据存储方法、读取方法及装置制造方法及图纸

技术编号:27210752 阅读:21 留言:0更新日期:2021-01-31 12:46
本申请提供了一种时序数据库的数据存储方法、读取方法及装置。该时序数据库的数据存储方法包括:获取待存储的第一目标数据以及所述第一目标数据的时间戳;根据所述时间戳定位用于存储所述第一目标数据的目标段文件,所述目标数据的时间戳位于所述目标段文件的时间戳范围内;将所述目标数据写入所述目标段文件内,并基于所述目标数据形成一个不稳定文件;当所述目标段文件内的不稳定文件的计量参数大于或等于第一阈值时,将目标段文件内的所有文件进行压缩,得到目标稳定文件。本申请实施例可以提高时序数据的存储效率。例可以提高时序数据的存储效率。例可以提高时序数据的存储效率。

【技术实现步骤摘要】
时序数据库的数据存储方法、读取方法及装置


[0001]本申请涉及时序数据库
,具体而言,涉及一种时序数据库的数据存储方法、读取方法及装置。

技术介绍

[0002]现有技术中,时序数据库的时序数据的存储方式通常都是基于LSM-Tree(Log Structured Merge Tree)数据结构。时序数据在磁盘上的组织方式为分级存储,分为Level0至LevelN,下一级的数据大小通常是上一级的10倍。从从不可变内存表持久化到磁盘的文件,即形成Level0层SSTable文件(Sorted String Table文件),SSTable文件内容通常是存储Key Value(键值对)型数据,并且是按Key值进行排序的。当Level0的文件个数或者数据量达到指定大小时,则会对将Level0的SSTable文件和Level1的有Key重叠的SSTable文件进行合并压缩,然后,删除旧的Level0,Level1的SSTable文件,形成新的Leve1的SSTable文件。当Leve1的SSTable文件大小达到指定大小,和上面类似的思路,会继续和Leve2的文件进行合并压缩,以此类推,直到LeveN层。每一次不同层之间的合并压缩都将对磁盘I/O以及设备的CPU产生较大的压力,导致存储效率较低。
[0003]针对上述问题,目前尚未有有效的技术解决方案。

技术实现思路

[0004]本申请实施例的目的在于提供一种时序数据库的数据存储方法、读取方法及装置,可以提高时序数据的存储效率。
[0005]第一方面,本申请实施例提供了一种时序数据库的数据存储方法,所述时序数据库包括设置有至少一个用于存储目标数据的段文件,不同段文件的时间戳范围没有交集,每一段文件内的目标数据的时间戳均位于对应段文件的时间戳范围内;所述方法包括:
[0006]获取待存储的第一目标数据以及所述第一目标数据的时间戳;
[0007]根据所述时间戳定位用于存储所述第一目标数据的目标段文件,所述目标数据的时间戳位于所述目标段文件的时间戳范围内;
[0008]将所述目标数据写入所述目标段文件内,并基于所述目标数据形成一个不稳定文件;
[0009]当所述目标段文件内的不稳定文件的计量参数大于或等于第一阈值时,将目标段文件内的所有文件进行压缩,得到目标稳定文件。
[0010]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述将目标段文件内的所有文件进行压缩,得到目标稳定文件,包括:
[0011]若所述目标段文件内存在稳定文件,则将所述稳定文件以及所有不稳定文件进行压缩,得到目标稳定文件;
[0012]若所述目标段文件内不存在稳定文件,则将所有不稳定文件进行压缩,得到目标稳定文件。
[0013]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述计量参数为所述目标段文件内的不稳定文件的数量或所有不稳定文件的数据量。
[0014]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述获取待存储的第一目标数据,包括:
[0015]将待存储的第一目标数据写入预存日志文件,所述写入预存日志文件用于在第一目标数据未写入所述目标段文件之前暂存所述第一目标数据,并在所述第一目标数据写入所述目标段文件之后删除所述第一目标数据;
[0016]将所述第一目标数据从所述预存日志文件写入预设内存区域。
[0017]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述时序数据库还包括索引关系表,所述索引关系表用于将每一时间戳映射至对应的段文件;
[0018]所述根据所述时间戳定位用于存储所述第一目标数据的目标段文件,包括:根据所述时间戳查询所述索引关系表,以定位用于存储所述第一目标数据的目标段文件。
[0019]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述至少一个段文件包括至少一个第一段文件以及一个第二段文件;所述第一段文件内的数据量大于或者等于第一预设值,所述第二段文件内的数据量小于第一预设值;
[0020]所述第一段文件的时间戳范围为其内存储的目标数据的最小时间戳至最大时间戳;所述第二段文件的时间戳范围为预设时间戳至正无穷,所述预设时间戳为所述第一段文件中最大的一个时间戳与预设时间值的和。
[0021]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述将目标段文件内的所有文件进行压缩,得到目标稳定文件之后,还包括:
[0022]判断所述目标段文件在写入所述第一目标数据之前为第一段文件或第二目标段文件;
[0023]若所述目标段文件为第二段文件,则判断在写入所述第一目标数据之后,所述目标段文件的数据量是否大于或等于第一预设值;
[0024]若大于或等于第一预设值,则判断所述目标段文件的数据量是否小于第二预设值;
[0025]若小于第二预设值,则对所述目标段文件对的时间戳范围进更新使得所述目标段文件转换为第一段文件,并建立新的第二段文件。
[0026]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述判断所述目标段文件在写入所述第一目标数据之前为第一段文件或第二目标段文件之后,还包括:
[0027]若所述目标段文件为第一段文件,则判断在写入所述第一目标数据之后,所述目标段文件的数据量是否大于或等于第二预设值;
[0028]若大于或等于第二预设值,则将所述目标段文件切分设置形成至少两个第一段文件。
[0029]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述判断所述目标段文件的数据量是否小于第二预设值之后,还包括:
[0030]若不小于第二预设值,则将所述目标段文件切分设置形成至少两个第一段文件,并建立新的第二段文件。
[0031]可选地,在本申请实施例所述的时序数据库的数据存储方法中,所述方法还包括:
[0032]在将所述目标段文件转换为一个第一段文件或者切分设置为至少两个第一段文件之后,或者建立新的第二段文件之后,对索引关系表进行更新。
[0033]第二方面,本申请实施例还提供了一种时序数据库的数据读取方法,所述时序数据库包括设置有至少一个用于存储目标数据的段文件,不同段文件设置有不同的时间戳范围,每一段文件内的目标数据的时间戳均位于对应段文件的时间戳范围内;所述方法包括:
[0034]获取数据读取请求,所述数据读取请求携带有待读取的第一目标数据的时间戳;
[0035]根据所述时间戳定位用于存储所述第一目标数据的目标段文件,所述第一目标数据的时间戳位于所述目标段文件的时间戳范围内;
[0036]根据所述时间戳从所述目标段文件读取所述第一目标数据。
[0037]可选地,在本申请实施例所述的时序数据库的数据读取方法中,所述时序数据库还包括索引关系表,所述索引关系表用于将每一时间戳映射至对应的段文件;
[0038]所述根据所述时间戳定位用于存储所述第一目标数据的目标本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种时序数据库的数据存储方法,其特征在于,所述时序数据库包括设置有至少一个用于存储目标数据的段文件,不同段文件的时间戳范围没有交集,每一段文件内的目标数据的时间戳均位于对应段文件的时间戳范围内;所述方法包括:获取待存储的第一目标数据以及所述第一目标数据的时间戳;根据所述时间戳定位用于存储所述第一目标数据的目标段文件,所述目标数据的时间戳位于所述目标段文件的时间戳范围内;将所述目标数据写入所述目标段文件内,并基于所述目标数据形成一个不稳定文件;当所述目标段文件内的不稳定文件的计量参数大于或等于第一阈值时,将目标段文件内的所有文件进行压缩,得到目标稳定文件。2.根据权利要求1所述的时序数据库的数据存储方法,其特征在于,所述将目标段文件内的所有文件进行压缩,得到目标稳定文件,包括:若所述目标段文件内存在稳定文件,则将所述稳定文件以及所有不稳定文件进行压缩,得到目标稳定文件;若所述目标段文件内不存在稳定文件,则将所有不稳定文件进行压缩,得到目标稳定文件。3.根据权利要求1所述的时序数据库的数据存储方法,其特征在于,所述计量参数为所述目标段文件内的不稳定文件的数量或所有不稳定文件的数据量。4.根据权利要求1所述的时序数据库的数据存储方法,其特征在于,所述获取待存储的第一目标数据,包括:将待存储的第一目标数据写入预存日志文件,所述写入预存日志文件用于在第一目标数据未写入所述目标段文件之前暂存所述第一目标数据,并在所述第一目标数据写入所述目标段文件之后删除所述第一目标数据;将所述第一目标数据从所述预存日志文件写入预设内存区域。5.根据权利要求1所述的时序数据库的数据存储方法,其特征在于,所述时序数据库还包括索引关系表,所述索引关系表用于将每一时间戳映射至对应的段文件;所述根据所述时间戳定位用于存储所述第一目标数据的目标段文件,包括:根据所述时间戳查询所述索引关系表,以定位用于存储所述第一目标数据的目标段文件。6.根据权利要求1所述的时序数据库的数据存储方法,其特征在于,所述至少一个段文件包括至少一个第一段文件以及一个第二段文件;所述第一段文件内的数据量大于或者等于第一预设值,所述第二段文件内的数据量小于第一预设值;所述第一段文件的时间戳范围为其内存储的目标数据的最小时间戳至最大时间戳;所述第二段文件的时间戳范围为预设时间戳至正无穷,所述预设时间戳为所述第一段文件中最大的一个时间戳与预设时间值的和。7.根据权利要求6所述的时序数据库的数据存储方法,其特征在于,所述将目标段文件内的所有文件进行压缩,得到目标稳定文件之后,还包括:判断所述目标段文件在写入所述第一目标数据之前为第一段文件或第二目标段文件;若所述目标段文件为第二段文件,则判断在写入所述第一目标数据之后,所述目标段文件的数据量是否大于或等于第一预设值;若大于或等于第一预设值,则判断所述目标段文件的数据量是否小于第二预设值;
若小于第二预设值,则对所述目标段文件对的时间戳范围进更新使得所述目标段文件转换为第一段文件,并建立新的第二段文件。8.根据权利要求7所述的时序数据库的数据存储方法,其特征在于,所述判断所述目标段文件在写入所述第一目标数据之前为第一段文件或第二目标段文件之后,还包括:若所述目标段文件为第一段文件,则判断在写入所述第一...

【专利技术属性】
技术研发人员:李南平黄志龙孙春廖强曹峰
申请(专利权)人:成都佳华物链云科技有限公司
类型:发明
国别省市:

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

1