[发明专利]一种适用于时序数据库的列式压缩存储和检索方法在审
申请号: | 202210082231.6 | 申请日: | 2022-01-24 |
公开(公告)号: | CN114416745A | 公开(公告)日: | 2022-04-29 |
发明(设计)人: | 邹月明;饶上荣 | 申请(专利权)人: | 北京顺实科技有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2453 |
代理公司: | 上海尚象专利代理有限公司 31335 | 代理人: | 郑婷 |
地址: | 100089 北京市海淀区丰慧中*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 适用于 时序 数据库 压缩 存储 检索 方法 | ||
1.一种时序数据库的存储方法,其特征在于,包括以下步骤:
(1)构建数据库;
(2)将数据库内部进行划分并获得多个表;
(3)在表中构造文件,根据表的类型为文件进行命名,并为文件配置硬盘;
(4)将获取的列数据压缩后存储在列块中,且列数据在压缩过程中进行对齐操作,将表中的所有列块都同时往一个或者多个文件写入,若当前文件写满后,使用新文件,并为文件附上序号;
(5)列块在储存组织过程中,将其存储信息生成表信息,并压缩后储存在相对应的表块文件中。
2.根据权利要求1所述的一种时序数据库的存储方法,其特征在于,列块由一系列子压缩块组成,每个子压缩块包括子压缩块的长度和数据。
3.根据权利要求2所述的一种时序数据库的存储方法,其特征在于,列数据的压缩方式包括以下步骤:
①将最新的数据写入列数据块缓存buffer中的空余内存;
②该buffer写满后,压缩最新写入的数据,这些新数据占用的内存被复用,将压缩后的数据放到这些新数据的开始位置,重复step①;
③持续这个过程,直到buffer写满,然后落盘buffer,将数据存储在文件中;
④之后复用这个buffer,重复step①。
4.根据权利要求3所述的一种时序数据库的存储方法,其特征在于,在对列块数据落盘时,对列块数据进行对齐操作。
5.根据权利要求4所述的一种时序数据库的存储方法,其特征在于,对齐操作为:当主键列块列块落盘时,其它列也压缩当前数据,并放入到对应的列子压缩块。
6.根据权利要求5所述的一种时序数据库的存储方法,其特征在于,输入数据的保存步骤如下:
(1)外部输入一行数据,系统将这行数据插入到各列;
(2)系统为每列设置一个buffer,压缩存储,并落盘至文件中;
(3)落盘后,可以将该列块转移到历史数据链表里,作为列块历史数据,根据LRU算法,淘汰过期数据;
(4)当主键列换块了,需要保存列对齐信息;
(5)将上述的块落盘信息和列对齐信息形成表块信息保存起来,其中表块信息也按照分块压缩保存的方式落盘。
7.一种时序数据库的检索方法,其特征在于,包括以下步骤:
(1)用户输入查询语句,开始数据检索;
(2)确定数据的时间范围,如果涉及到的数据未解压,则解压数据;如果数据不在内存中,则需要加载历史数据;
(3)加载历史数据时,根据上下文找到该列位置,并从磁盘加载该列块,根据列对齐信息找到具体的子压缩块,从这个子压缩块开始解压数据,并保存在历史数据里面;
(4)执行检索。
8.根据权利要求7所述的一种时序数据库的检索方法,其特征在于,上述步骤(3)还包括以下步骤:
当加载历史列块数据时,将不在检索范围内的子压缩块数据仍然以压缩方式保存在内存块数据结构里面备用。
9.根据权利要求7所述的一种时序数据库的检索方法,其特征在于,还包括以下步骤:
当检索时,若当前数据缓存和压缩缓存本身没有在压缩数据模块里面复用,那么对应内存之后可以提交到检索模块里面复用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京顺实科技有限公司,未经北京顺实科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210082231.6/1.html,转载请声明来源钻瓜专利网。