基于列存储的智能双引擎分析系统及方法技术方案

技术编号:10606701 阅读:149 留言:0更新日期:2014-11-05 17:20
本发明专利技术公开了一种基于列存储的智能双引擎分析系统及方法,涉及智慧城市和大数据处理领域,该系统包括HBase存储单元、客户端和智能SQL路由单元,该系统在用户侧实现智能SQL路由单元;该系统采用HBase存储单元作为底层数据的存储单元,并在HBase存储单元上建立实时查询引擎和批量分析引擎,该系统针对的数据是结构化的关系型数据。本发明专利技术既能满足实时性的简单查询,又能有效提高分析大规模数据的性能,满足用户对大规模数据的统计分析要求。

【技术实现步骤摘要】
基于列存储的智能双引擎分析系统及方法
本专利技术涉及智慧城市和大数据处理领域,具体是涉及一种基于列存储的智能双引擎分析系统及方法。
技术介绍
随着移动互联网、智能终端、物联网、云计算以及智慧城市的普及,人们逐渐的进入了“大数据”时代。大数据是规模非常巨大和复杂的数据集,数据量达到PB、EB或ZB的级别后,传统数据库的管理工具处理起来面临很多问题,例如获取、存储、检索和分析等。在传统的关系数据库中,一般采用索引和全表扫描的方式来处理查询、分析,索引具有快速定位,对于简单查询高效快速的特点,但是对于一些复杂的统计分析,或者数据挖掘类的应用则一般采取全表扫描的方式。大数据引发了一些问题,如对数据库高并发读写要求、对海量数据的高效率存储和访问需求、对数据库高可扩展性和高可用性的需求,在大数据的环境下,数据量是以前传统关系数据库的成千上百倍,传统的关系数据库的一些技术显得力不从心。Hadoop是由ApacheSoftwareFoundation(阿帕奇软件基金会)维护的一个能够对大量数据进行分布式处理的软件框架,Hadoop带来了廉价的处理大数据的能力。Hadoop是一个庞大的生态系统,为处理大数据提供了各种工具和平台。HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统)被设计成适合运行在通用服务器上的分布式文件系统。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS是hadoop生态系统的基础。HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价的服务器上搭建起大规模结构化存储集群。HBase可提供类似结构化的存储,在基于主键和范围的查询下,性能优越。Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL(StructuredQueryLanguage,结构化查询语言)查询功能,它可以将SQL语句转换为MapReduce(映射化简)并行任务进行运行。其优点是学习成本低,并可以通过类SQL语句快速实现简单的MapReduce并行统计,不必开发专门的MapReduce并行应用,十分适合数据仓库的统计分析。当前,针对大数据的应用,Hadoop现在成为大数据处理的标准工具,而在Hadoop中,都采用Mapreduce来进行数据的批量分析,它将SQL的分解为并行任务在HDFS上进行执行。当数据量大时,对于一些大规模的统计分析任务,MapReduce比传统的关系数据库有更好的扩展性和分析性能。但是,MapReduce不能区分业务场景,无论是多么简单的查询,MapReduce都会将其转化为扫描全表的并行处理任务,因此在某些定位查找、检索等场景下,MapReduce就显得过于笨重,耗时而且耗费资源。由于文件没有进行结构化的组织,而MapReduce本身非常耗时,因此,在Hadoop环境下,传统的Hive在性能上仍无法满足用户对大规模数据的查询和统计分析需求。
技术实现思路
本专利技术的目的是为了克服上述
技术介绍
的不足,提供一种基于列存储的智能双引擎分析系统及方法,既能满足实时性的简单查询,又能有效提高分析大规模数据的性能,满足用户对大规模数据的统计分析要求。本专利技术提供一种基于列存储的智能双引擎分析系统,包括HBase存储单元、客户端、智能结构化查询语言SQL路由单元,该系统在用户侧实现智能SQL路由单元;该系统采用HBase存储单元作为底层数据的存储单元,并在HBase存储单元上建立实时查询引擎和批量分析引擎,该系统针对的数据是结构化的关系型数据;所述HBase存储单元用于:实现对数据的底层存储,在存储数据时,将数据的主键自动映射到HBase的主键上,如果用户的数据还有其他列带有索引,那么通过单独的HBase表来生成二级索引表,二级索引表的主键对应用户表的索引列;所述客户端用于:接收用户输入的SQL语句,然后将用户输入的SQL语句发送给智能SQL路由单元;所述智能SQL路由单元用于:对用户输入的SQL语句进行解析,并进行分析和判断,根据分析的结果将SQL路由到实时查询引擎或者批量分析引擎,进行分析和查询;所述实时查询引擎用于:将使用索引的简单查询转化为HBase的主键查询操作或范围查询操作,通过HBase的主键和索引对数据进行检索、查询和分析;所述批量分析引擎是Hive在HBase存储单元上的实现,对于复杂的统计和分析,实时查询引擎无法完成,批量分析引擎将复杂的统计和分析转化为映射化简MapReduce的并行任务,然后由MapReduce任务在HBase存储单元的底层存储文件HFile上直接进行并行分析和处理。在上述技术方案的基础上,所述批量分析引擎包括编译器、执行器和元数据管理模块,编译器用于将SQL语句转化为MapReduce任务;执行器用于执行MapReduce任务,MapReduce任务直接在HBase的底层存储文件HFile上进行;元数据管理模块用于管理HBase存储单元存储的数据表,进行数据表的建立、删除和修改操作。本专利技术还提供一种适用于上述系统的基于列存储的智能双引擎分析方法,包括以下步骤:S1、用户在客户端输入SQL语句,客户端将用户输入的SQL语句发送到智能SQL路由单元,智能SQL路由单元在用户侧截获用户输入的SQL语句;S2、智能SQL路由单元分析用户输入的SQL语句的类型,判断用户输入的SQL语句是数据定义语句,还是数据操作语句,如果用户输入的SQL语句是数据定义语句,则转到步骤S3;如果用户输入的SQL语句是数据操作语句,则转到步骤S4;S3、如果用户输入的SQL语句是数据定义语句,智能SQL路由单元将该SQL语句路由到批量分析引擎,批量分析引擎的元数据管理模块根据数据定义语句的要求进行表的建立、删除和修改操作;S4、如果用户输入的SQL语句是数据操作语句,判断该SQL语句是否为选择select语句,如果是select语句,则转到步骤S5;如果不是select语句,则转到步骤S7;S5、如果select语句的查询条件是单列或双列,并且其中任意一列建有索引,则转到步骤S6;否则,转到步骤S7;S6、智能SQL路由单元将该SQL语句路由到实时查询引擎进行查询:实时查询引擎根据用户的SQL语句找出对应的主键列或索引列,如果是主键列,则直接在HBase存储单元的表里,用HBase存储单元的编程接口进行快速查找;如果是索引列,则在索引表里利用HBase存储单元的编程接口进行快速查找,找到主键位置,然后再从主键表中进行查找;S7、智能SQL路由单元将该SQL语句路由到批量分析引擎进行进行并行的查找和分析:批量分析引擎先进行一个刷新操作,将HBase存储单元缓存在内存中的数据,刷新到磁盘中,HBase存储单元在磁盘中保存文件的格式是以HFile格式来保存的;然后对HBase存储单元的底层存储文件进行分割操作,分割后形成一个个的文件块;再将文件块作为MapReduce的并行输入,进行并行的查找和分析。与现有技术相比,本专利技术的优点如下:(1)本专利技术提出基于列存储的智能双引擎分析系统,将数据存储在HBase上本文档来自技高网
...
基于列存储的智能双引擎分析系统及方法

【技术保护点】
一种基于列存储的智能双引擎分析系统,包括HBase存储单元、客户端、智能结构化查询语言SQL路由单元,该系统在用户侧实现智能SQL路由单元;其特征在于:该系统采用HBase存储单元作为底层数据的存储单元,并在HBase存储单元上建立实时查询引擎和批量分析引擎,该系统针对的数据是结构化的关系型数据;所述HBase存储单元用于:实现对数据的底层存储,在存储数据时,将数据的主键自动映射到HBase的主键上,如果用户的数据还有其他列带有索引,那么通过单独的HBase表来生成二级索引表,二级索引表的主键对应用户表的索引列;所述客户端用于:接收用户输入的SQL语句,然后将用户输入的SQL语句发送给智能SQL路由单元;所述智能SQL路由单元用于:对用户输入的SQL语句进行解析,并进行分析和判断,根据分析的结果将SQL路由到实时查询引擎或者批量分析引擎,进行分析和查询;所述实时查询引擎用于:将使用索引的简单查询转化为HBase的主键查询操作或范围查询操作,通过HBase的主键和索引对数据进行检索、查询和分析;所述批量分析引擎是Hive在HBase存储单元上的实现,对于复杂的统计和分析,实时查询引擎无法完成,批量分析引擎将复杂的统计和分析转化为映射化简MapReduce的并行任务,然后由MapReduce任务在HBase存储单元的底层存储文件HFile上直接进行并行分析和处理。...

【技术特征摘要】
1.一种基于列存储的智能双引擎分析系统,包括HBase存储单元、客户端、智能结构化查询语言SQL路由单元,该系统在用户侧实现智能SQL路由单元;其特征在于:该系统采用HBase存储单元作为底层数据的存储单元,并在HBase存储单元上建立实时查询引擎和批量分析引擎,该系统针对的数据是结构化的关系型数据;所述HBase存储单元用于:实现对数据的底层存储,在存储数据时,将数据的主键自动映射到HBase的主键上,如果用户的数据还有其他列带有索引,那么通过单独的HBase表来生成二级索引表,二级索引表的主键对应用户表的索引列;所述客户端用于:接收用户输入的SQL语句,然后将用户输入的SQL语句发送给智能SQL路由单元;所述智能SQL路由单元用于:对用户输入的SQL语句进行解析,并进行分析和判断,根据分析的结果将SQL路由到实时查询引擎或者批量分析引擎,进行分析和查询;所述实时查询引擎用于:将使用索引的简单查询转化为HBase的主键查询操作或范围查询操作,通过HBase的主键和索引对数据进行检索、查询和分析;所述批量分析引擎是Hive在HBase存储单元上的实现,对于复杂的统计和分析,实时查询引擎无法完成,批量分析引擎将复杂的统计和分析转化为映射化简MapReduce的并行任务,然后由MapReduce任务在HBase存储单元的底层存储文件HFile上直接进行并行分析和处理;所述批量分析引擎包括编译器、执行器和元数据管理模块,编译器用于将SQL语句转化为MapReduce任务;执行器用于执行MapReduce任务,MapReduce任务直接在HBase的底层存储文件HFile上进行;元数据管理模块用于管理HBase存储单元存储的数据表,进行数据表的建立、删除和修改操作。2.适用于权利要求1所述系统的基于列存储的智能双引擎分析方法,其特征在...

【专利技术属性】
技术研发人员:郝俊瑞向智宇许德玮高汉松郭嘉
申请(专利权)人:武汉邮电科学研究院
类型:发明
国别省市:湖北;42

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

1