一种基于列存储的大数据并行处理系统及方法

文档序号:6520976阅读:234来源:国知局
一种基于列存储的大数据并行处理系统及方法
【专利摘要】一种基于列存储的大数据并行处理系统及方法,涉及大数据处理领域,包括客户端、主控节点和多个数据节点,所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。本发明适合大规模数据量的环境,提供更完善的结构化关系数据模型的SQL接口。
【专利说明】一种基于列存储的大数据并行处理系统及方法
【技术领域】
[0001]本发明涉及大数据处理领域,具体来讲是一种基于列存储的大数据并行处理系统及方法。
【背景技术】
[0002]随着移动互联网、智能终端、物联网、云计算以及智慧城市的普及,人们逐渐的进入了 “大数据”时代。大数据是规模非常巨大和复杂的数据集,数据量达到PB、EB或ZB的级别后,传统数据库管理工具处理起来面临很多问题,比如说获取、存储、检索和分析等。大数据引发了一些问题,如对数据库高并发读写要求、对海量数据的高效率存储和访问需求、对数据库高可扩展性和高可用性的需求,传统数据库以及数据仓库技术显得力不从心。
[0003]Hadoop是一个能够对大量数据进行分布式处理的开源软件框架,Hadoop带来了廉价的处理大数据的能力。Hadoop是一个庞大的生态系统,为处理大数据提供了各种工具和平台。在Hadoop生态系统中Hive扮演数据仓库的角色,Hive的核心是将结构化查询语言接口转化为MapReduce任务,直接对Hadoop分布式文件系统上的保存的文件进行分析,由于文件没有进行结构化的组织,而MapReduce本身非常耗时,因此Hive在性能上通常无法满足用户需求。
[0004]HBase是一个高可靠性、高性能、可伸缩的、面向列存储的分布式数据库系统,具有非常好的查询性能和扩展性。HBase以表的形式存储数据,表由行和列族组成,每个列族(column family)又有若干列组成;HBase中可以有任意多个表,这由用户决定,如表1所示,为一个HBase表,包括行主键(row key)和列族I,列族I中具有列I和列2。
[0005]表1
[0006]
【权利要求】
1.一种基于列存储的大数据并行处理系统,包括客户端、主控节点和多个数据节点,其特征在于:所述主控节点包括HBase主控制器和SQL主引擎,HBase主控制器负责管理和维护所述数据节点,SQL主引擎负责SQL语句的解析并将SQL语句继续向数据节点进行分发;每个所述数据节点包括HBase分区节点和SQL从引擎,HBase分区节点负责每个数据节点上数据的存储和管理,SQL从引擎负责SQL在该数据节点的解析和执行,主控节点和数据节点均包括HBase表,还分别包括SQL表。
2.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述SQL主引擎和SQL从引擎组成并行SQL查询引擎,SQL主引擎和SQL从引擎之间的通信由其内部会话完成。
3.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述客户端通过主控节点通信来访问系统数据。
4.如权利要求1所述的基于列存储的大数据并行处理系统,其特征在于:所述HBase表中的元素是SQL表中元素的映射,其中SQL表的名称不做任何变换映射为HBase表的名称,SQL表中非主键的列映射为HBase中列族中的列,SQL表中的主键列映射为HBase中的行主键。
5.一种基于权利要求1所述系统的基于列存储的大数据并行处理方法,其特征在于,包括如下步骤 : 51.客户端发送一个SQL语句给主控节点; 52.主控节点解析所述SQL语句,判断所述SQL语句是数据定义类型的语句还是数据操作类型的语句,若是数据定义类型的语句,进入S3,若是数据操作类型的语句,进入S4 ; 53.主控节点对SQL语句解析后,修改元数据信息并存放在列存储的元数据表内;并将SQL语句映射到HBase表,并完成与SQL语句相应的操作;最后,主控节点通知各数据节点重新获取元数据信息; 54.主控节点根据SQL语句的解析结果判断涉及的范围,若涉及索引的查找,则确定索引表的范围;若涉及主表的查找,确定主表的范围;根据所涉及表的确定的范围,得出该SQL语句所涉及分区名字列表以及这些分区对应的分区节点的名字列表,将该SQL语句及分区名字列表逐个发送到对应的分区节点,进入S5 ; 55.每个数据节点收到该SQL语句及分区名字列表,为SQL语句所涉及的每个分区启动一个线程,每个线程进行SQL语句解析以及对应的查询和计算,执行完成后汇总结果,将结果返回至主控节点; 56.所述主控节点对所有数据节点的结果进行合并操作,合并的结果返回给客户端。
6.如权利要求5所述的基于列存储的大数据并行处理方法,其特征在于:所述数据定义类型语句涉及创建表、创建索引、删除表、删除索引或修改表的处理;所述数据操作类型语句涉及数据插入、数据删除、数据查询的处理。
7.如权利要求5所述的基于列存储的大数据并行处理方法,其特征在于:所述S3中,将SQL语句映射到HBase表,映射规则为:所述HBase表中的元素是SQL表中元素的映射,其中SQL表的名称不做任何变换映射为HBase表的名称,SQL表中非主键的列映射为HBase中列族中的列,SQL表中的主键列映射为HBase中的行主键。
8.如权利要求5所述的基于列存储的大数据并行处理方法,其特征在于:所述确定索引表的范围在HBase里表现为主表的主键的一个范围,或者是索引表的主键的范围:〈开始值,结束值〉;根据这个范围计算出该SQL语句的操作是在哪个分区节点的分区上,计算结果是一系列分区节点的名字列表,以及该分区节点上涉及该SQL语句操作的分区。
9.如权利要求8所述的基于列存储的大数据并行处理方法, 其特征在于:所述数据节点将接收到的分区信息记录下来。
【文档编号】G06F17/30GK103646051SQ201310616040
【公开日】2014年3月19日 申请日期:2013年11月27日 优先权日:2013年11月27日
【发明者】郝俊瑞, 向智宇, 高汉松, 唐业祎, 郭嘉, 许德玮, 王静 申请人:武汉邮电科学研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1