[发明专利]一种基于列式存储的时序数据库系统有效
申请号: | 201910554845.8 | 申请日: | 2019-06-25 |
公开(公告)号: | CN110362572B | 公开(公告)日: | 2022-07-01 |
发明(设计)人: | 黄滔;王刚;高杨;刘国庆 | 申请(专利权)人: | 浙江邦盛科技股份有限公司;中车唐山机车车辆有限公司 |
主分类号: | G06F16/22 | 分类号: | G06F16/22;G06F16/2458 |
代理公司: | 杭州求是专利事务所有限公司 33200 | 代理人: | 刘静 |
地址: | 310012 浙江省杭州市西湖*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 存储 时序 数据库 系统 | ||
本发明公开了一种基于列式存储的时序数据库系统,包括SQL解析器:将SQL通过解析转换为抽象语法树;逻辑计划生成器:利用抽象语法树生成逻辑查询计划,逻辑查询计划由关系代数表示;查询优化器:利用数据库的状态信息进行查询计划的优化,输出改写后的查询计划;执行器:以块迭代方式执行查询计划,负责与存储层进行交互,获取用户查询的数据;存储引擎:以行+列的方式存储数据。本发明采用列方式存储数据库中的数据,并基于列存储与rocksdb的结合实现了高速插入数据特性与传统数据库的索引功能,在执行器方面,改进了部分算子以与存储引擎的特性深度结合,同时利用现代处理器的新特性为查询加速。
技术领域
本发明属于数据存储及处理领域,尤其涉及一种基于列式存储的时序数据库系统的设计。
背景技术
目前市面上已有数款时序数据库,如influxDB等,但是该类数据库多使用基于LSMtree的存储方案,如influxDB就使用了LSMtree的变种TSM,LSMtree的优点是写入速度快,但是由于要分层查找,其读数据性能并不理想。
发明内容
考虑到时序数据的特点(多写入多读,但更新删除很少),本发明在传统数据库架构上提出基于列式存储的存储引擎与查询执行器,能够提高数据库系统的查询效率。
本发明的目的是通过以下技术方案来实现的:一种基于列式存储的时序数据库系统,包括:
SQL解析器:将SQL通过解析转换为抽象语法树;
逻辑计划生成器:利用抽象语法树生成逻辑查询计划,逻辑查询计划由关系代数表示;
查询优化器:利用数据库的状态信息(表中数据量,已有索引)进行查询计划的优化,输出改写后的查询计划;
执行器:以块迭代方式执行查询计划,负责与存储层进行交互,获取用户查询的数据;
存储引擎:以行+列的方式存储数据。
进一步地,所述SQL解析器的具体实现方式如下:读取用户输入的文本,根据lexyacc将文本转换为抽象语法树,其中lex负责语法分析,将用户文本转换为对应的标识符,yacc接收上述的标识符进行语义分析,将SQL转换为对应的抽象语法树。
进一步地,该系统还包括元数据管理器,元数据管理器负责存储数据库中的一系列元数据,包括表名到表id的映射、表的列名到列id的映射、每个数据表的数据行数、表中列是否存在索引。
进一步地,所述查询优化器的工作分为两个阶段:
阶段一:替换掉关系代数执行计划中的表名、列名,以表id与表中的列id取代。
阶段二:优先使用带有索引的列。
进一步地,所述存储引擎以行列混合的方式存储所有表的数据;
在每一列中,数据被分为若干个块,每个块包含固定数量的数据以及对应该块的统计信息,每一行分配一个rowid;对每个块中的数据进行压缩;
行存储部分采用rocksdb部分实现,每一行在rocksdb中按照kv方式存储,其中key为(数据库名,表名,主键名,主键值)组成的元组,value为该表主键之外其他列的数据。
进一步地,在存储引擎存储的表中,行存储部分用于存储最近被插入表中的数据库,在行存储部分被插入行超过阈值之后,将该表在行存储中的所有数据按照列方式划分,产出一系列列存储中的数据块,之后将这些数据块写入到磁盘,同时删除行存储部分的数据。
进一步地,存储引擎支持对指定列建立索引,建立索引的列要求该列中不能出现多个相同的数据,构建索引时,数据库将扫描列存储部分该列的所有数据,在rocksdb中对每个数据插入一个kv对,key为(数据库名,表名,列名,数据),value为rowid。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江邦盛科技股份有限公司;中车唐山机车车辆有限公司,未经浙江邦盛科技股份有限公司;中车唐山机车车辆有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910554845.8/2.html,转载请声明来源钻瓜专利网。