【技术实现步骤摘要】
本专利技术涉及数据存储计算领域,特别涉及一种分布式数据存储架构及数据存储方法和数据查询方法。
技术介绍
传统的行式数据库,是按照行存储的。行式存储一般用在关系数据库中,其优势在于处理OLTP型业务。而列式数据库恰恰相反,列式数据库的数据是按照列存储,每一列单独存放,数据访问某些列时,只需要访问查询涉及的列,大大降低了系统的数据传输量。而且,由于数据类型一致,数据特征相似,极大方便压缩,提到了压缩率。行式数据库擅长随机读和更新操作,列式数据库则更擅长大批量数据量查询。而行列混合存储兼顾了行存储和列存储的优点。行列存储中一个重要的问题,就是如何索引数据,以达到数据快速定位。以及如何在有索引情况下,降低内存使用量。现有技术技术一方案:CN201310296167数据库系统的行列混合存储方法。这个方法是行列混合存储是以表为单位。也就是说,一个表要么整个表都是行存储,要么整个表都是列存储。该方法在数据库系统的存储层分别设立一个行存储引擎和一个列存储引擎,然后由访问接口层将两者封装起来,对列表进行元组物化,对行表进行投影,向查询引擎提供统一的数据访问接口,从而隐藏存储差别,实现查询处理的统一化。行列混合存储查询流程。根据创建表时的存储模型,在查询语句的解析阶段,获取表的存储模式;结合查询分析的相关信息生成<文件ID,存储模式,属性列表,选择条件列表>四个访问参数。执行引擎在访问数据时将访问参数传给存储引擎,存储引擎根据参数选择适当的方法读取数据并作选择、投影处理后返回数据。现有技术技术一方案缺点:由于一个表要么是整个表都是行存储,要么整个表都是列存储。已 ...
【技术保护点】
一种分布式数据存储架构,其特征在于,包括:主控节点:用于建立数据存储单元Block到所在的物理机器的映射关系、统计全局负载情况以及生成数据存储单元Block的ID;数据导入管理器:用于对外部数据进行缓冲,将外部数据按照数据值排序,生成索引Groupkey和数据,然后生成数据存储单元Block存储索引Groupkey和数据,最后导入数据存储单元Block到存储节点;存储节点:存储数据存储单元Block,对查询者提供查询功能;存储节点包括子元数据管理器、数据存储单元Block、数据读取器模块;子元数据管理器:用于维护存储节点内部由数据库名、表名、列名唯一确定的列到数据存储单元Block的映射、维护数据存储单元Block的生命周期;数据存储单元Block:用于存储索引Groupkey和数据;数据读取器模块:用于按照存储的索引Groupkey提供范围查询和等值查询接口,为外部提供了数据访问,具有指向真实数据的指针。
【技术特征摘要】
1.一种分布式数据存储架构,其特征在于,包括:主控节点:用于建立数据存储单元Block到所在的物理机器的映射关系、统计全局负载情况以及生成数据存储单元Block的ID;数据导入管理器:用于对外部数据进行缓冲,将外部数据按照数据值排序,生成索引Groupkey和数据,然后生成数据存储单元Block存储索引Groupkey和数据,最后导入数据存储单元Block到存储节点;存储节点:存储数据存储单元Block,对查询者提供查询功能;存储节点包括子元数据管理器、数据存储单元Block、数据读取器模块;子元数据管理器:用于维护存储节点内部由数据库名、表名、列名唯一确定的列到数据存储单元Block的映射、维护数据存储单元Block的生命周期;数据存储单元Block:用于存储索引Groupkey和数据;数据读取器模块:用于按照存储的索引Groupkey提供范围查询和等值查询接口,为外部提供了数据访问,具有指向真实数据的指针。2.根据权利要求1所述的一种分布式数据存储架构,其特征在于:所述主控节点的元数据组织为由数据库名、表名、列名唯一确定的列以及每个存储节点存储的数据中包含的列的列值范围到存储节点的地址的映射,主控节点的元数据组织的结构为:<数据库名、表名字,列名、列值范围、存储节点的地址>。3.根据权利要求1所述的一种分布式数据存储架构,其特征在于:存储节点的元数据组织为由数据库名、表名、列名唯一确定的列到数据存储单元Block的映射,存储节点的元数据组织的结构为:<数据库名、表名字、列名、列值范围、数据存储单元Block的ID>。4.根据权利要求1所述的一种分布式数据存储架构,其特征在于:数据存储单元Block存储数据的方式为:以索引Groupkey加数据的方式存储在数据存储单元Block当中,一个数据存储单元Block包含一张表的若干列或全部的列,每张表的所有的列都会在数据存储单元Block中存储,在数据导入管理器生成这个数据存储单元Block的时候,生成这个数据存储单元Block对应的元数据,在存储节点存储数据存储单元的时候,记录元数据到子元数据管理器;数据存储单元Block的头部结构分为定长结构和变长两个部分:定长部分包括:block_id、begin_rowid、rows;block_id:表示数据存储单元block的编号,由数据导入管理器生成,全局唯一:每个数据存储单元Block对应着一个全局唯一的block_id;begin_rowid:指明了这个数据存储单元Block中所存储的数据的起始的rowid;rows:表明这个数据存储单元Block中一共有多少行的数据;变长部分包括column_offset;column_offset:column_offset为一个数组,第i个值表示这个数据存储单元Block中的第i个列的物理位置相对于数据存储单元Block起始头部的偏移量,i为自然数。5.根据权利要求4所述的一种分布式数据存储架构,其特征在于:所述column_offset的内部逻辑结构包括column_type部分和其余约定部分,column_type是头部信息,其余约定部分是根据column_type部分由使用人员根据具体的需求具体约定。6.根据权利要求5所述的一种分布式数据存储架构...
【专利技术属性】
技术研发人员:段翰聪,闵革勇,张建,钟红霞,詹文翰,
申请(专利权)人:电子科技大学,
类型:发明
国别省市:四川;51
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。