一种基于大数据的联机分析处理系统和方法技术方案

技术编号:14509868 阅读:6 留言:0更新日期:2017-02-01 02:28
本发明专利技术公开了一种基于大数据的联机分析处理系统和方法,该系统能够在Hadoop环境下针对不同规模级别数据集进行快速多维查询分析。通过查询规划评估选择的查询计划包括支持Hive的MDX查询和基于Hbase预计算缓存机制的多维查询。实现可扩展集群节点上支持Hive数据仓库的MDX查询,基于Hbase预计算缓存机制的多维查询优化,满足不同规模级别数据集的低延迟多维查询需求,解决了单一数据源背景下不同OLAP数据组织模型的OLAP多维查询。针对大规模数据集上的Hive多维查询性能优化问题,提出一种构建基于Hbase缓存的分段逐层降维聚合算法。该算法把解决大规模数据多维查询计算的MOLAP带入了大数据OLAP系统中,极大增强了大数据背景下,不同规模级别数据多维查询的可扩展性和高效性。

一种基于大数据的联机分析处理系统和方法

【技术实现步骤摘要】

本专利技术涉及一种大数据的Hadoop(一个开发和运行处理大数据的软件平台)环境下的分析处理方法,尤其涉及一种基于大数据的联机分析处理系统和方法。
技术介绍
近年来,随着OLAP(联机分析处理)技术的不断发展,OLAP系统产品层出不穷,但是大多数都是基于关系型数据库的ROLAP(关系数据库联机分析处理)系统或者单一的MOLAP(多维数据库联机分析处理)系统。虽然,单节点内存扩展性和面向列的内存数据库技术的不断增强提升了ROLAP系统的查询性能。但是,企业级应用产生的TB到PB级数据规模已经突破传统OLAP所能支持的最大查询限度。传统的ROLAP系统架构存在的缺陷主要有以下三个方面:1、传统ROLAP系统的MDX(是一种支持多维对象与数据定义和操作的查询语言)查询受到特定数据库的限制、无法完成可扩展集群节点上支持Hive(基于Hadoop的一个数据仓库工具)数据仓库的MDX查询,所述传统ROLAP系统架构在扩展性方面成为制约多维查询分析性能的瓶颈因素。2、在MDX查询中,传统ROLAP系统缺乏一定的灵活性。当符合某一特定的分析主题发生变化时,需要同时将针对该主题定义和设计的多维模型需要重新调整,当面对大规模数据处理时传统ROLAP系统缺乏灵活性势必会造成分析模型的改变。3、传统ROLAP是通过基于内存的聚集缓存层中设计聚集表来提高多维查询效率。所以,其只涉及到低纬度的小规模数据多维查询,而在内存中完成聚合计算的性能会受到大规模、高纬度数据量查询需求的制约。同时当面对大规模数据处理时,ROLAP过多的连接操作使得查询处理性能受到制约。
技术实现思路
本专利技术的目的在于克服现有技术的不足,提供一种基于大数据的联机分析处理系统和方法,该系统满足不同规模级别数据集多维查询要求,提出的OLAP查询优化的算法和缓存策略极大地降低海量数据下多维查询中的查询延迟问题。根据OLAP系统中多维数据模型的构建方法和合适的缓存策略对查询性能的影响,以及大量实时运算而产生的响应和处理时间延迟问题,提出了一种基于Hbase(一个分布式的面向列的开源数据库)缓存的特殊OLAP算法的多维查询解决方案。本专利技术的目的是通过以下技术方案来实现的:一种基于大数据的联机分析处理系统,该系统包括用户接口模块、查询规划模块、MDX查询解释模块、HQL查询解释模块、元数据管理模块、MDX聚集缓存模块、基于Hbase的Cube构建缓存模块和数据存储模块;所述的HQL为一种针对Hadoop的一个数据仓库工具Hive的查询语言;所述的用户接口模块接受来自用户针对不同规模数据集上的MDX和HQL查询请求,供查询规划模块调用;所述的MDX查询解释模块负责对MDX进行解释和执行查询处理,完成整个解释和查询计算,实现读取维度成员值和单元格值的联机分析处理即OLAP数据访问功能;所述的HQL查询解释模块负责HQL查询请求解释,形成相应的查询解释语法树,对查询解释语法树所有节点进行相应的执行规则定义,并生成针对一个查询请求相应的查询模型;根据查询模型判断是否存在请求对应的形式化Cube多维模型,Cube即多维立方体;如果存在与查询匹配的Cube,该模块会遍历和选择以键值对形式保存在Hbase中的Cube进行查询,如果Cube不存在,则基于Hbase的Cube构建缓存会向数据存储模块发送细节数据请求,进行Cube构建;所述的查询规划模块进行查询计划分析、执行处理;所述的元数据管理模块负责对维度表数据、Cube元数据和Cube中间结果这些元数据信息进行规范管理;所述的MDX聚集缓存模块定义多个由内存中一组计算值构成的单元格值,主要负责为查询解释模块逐条或者批量地提供单元格值;所述的基于Hbase的Cube构建缓存模块负责大规模数据集上的Hive多维查询性能优化,通过遍历子Cube生成树来创建一个完全Cube,将预先计算完成Cube的计算结果保存到Hbase当中,以备离线处理所需查询调用从而达到加快查询速度的目的;所述的数据存储模块负责为MDX查询解释的单元格值计算提供维度的成员和细节数据,将事实表、维度表和单元格值这些数据分布式存储在不同的可扩展集群节点上。所述的查询规划模块包括权限控制器、查询监听器、查询分析器和查询计划分配器;所述的权限控制器主要针对不同的用户进行Cube操作的权限设置;所述的查询监听器主要接受来自多个客户端的多用户查询请求;所述的查询分析器根据数据规模、实时性要求、存储空间大小和多表连接操作这些指标作为查询评估函数的参数,进行查询评估计算;所述的查询计划分配器选择查询分析器的计算结果相应的查询计划。所述的MDX查询解释模块包括创建单元格请求模块、成员读取器对象模块、Schema读取器对象模块和OLAP计算器模块;所述的Schema为一个多维数据库,包含一个逻辑模型;所述的创建单元格请求模块主要根据当前的一组维度成员上下文环境创建单元格请求,单元格请求中包含所有必要的从聚集缓存层中获取单元格的值的信息;所述的成员读取器对象模块实现对维度成员的读取;所述的Schema读取器对象模块实现调用各个维度成员读取器对象;所述的OLAP计算器实现调用OLAP的Schema读取器对象。所述的元数据管理模块包括定义模块和Hive表元数据获取模块;所述的定义模块实现对MDX查询解释中执行MDX语句所需的多维数据模型映射文件和HQL多维查询中的维度表数据进行定义;所述的Hive表元数据获取模块在建立形式化Cube时,从Hive获取Hive表的元数据。所述的基于Hbase的Cube构建缓存模块包括形式化定义模块、多维Cube构建模块、Cube计算结果物理化模块和物理化结果存储模块;所述的形式化定义模块对基于Hbase缓存的Cube模型中包括Cube维度、子Cube维度数目、针对聚合计算前后的子Cube数目计算方法,以及包含两个计算任务实体的子Cube值的计算方法的数据模型的形式化定义;所述的多维Cube构建模块主要通过Hbase缓存的分段逐层降维聚合算法构建形式化多维Cube;所述的Cube计算结果物理化模块主要通过Cube数目进行HTable的Region分割策略创建HTable,将创建的HTable转换成Hfile文件,完成Cube计算结果的物理化过程;所述的HTable为Hbase中的一张大的逻辑表Table被划分成的一个或者多个分表,所述的Region为Hbase中的一张大的逻辑表Table被划分成的一个或多个分区,所述的Hfile为Hbase中<Key,Value>键值数据的存储格式;所述的物理化结果存储模块主要把物理化结果保存到Hbase中,并进行压缩存储处理,以备离线处理所需查询调用。所述的数据存储模块包括计算模块和存储模块;所述的计算模块主要通过调用相应的缓存模块从Hive数据存储模块读取测试数据,完成聚集计算和Cube预计算;所述的存储模块将预计算的缓存值分别保存在存储模块的Hive和Hbase中。所述的一种基于大数据的联机分析处理系统的处理方法,其特征在于:所述的方法具体实现步骤如下:S11、接受来自用户接口层的MDX和HQL查询请求;S12、通过查询规划模块进行查询计划分析、执行处理;S13、若选择第一查询计划的MDX查询解释模块执行本文档来自技高网...

【技术保护点】
一种基于大数据的联机分析处理系统,其特征在于:该系统包括用户接口模块、查询规划模块、MDX查询解释模块、HQL查询解释模块、元数据管理模块、MDX聚集缓存模块、基于Hbase的Cube构建缓存模块和数据存储模块;所述的用户接口模块接受来自用户针对不同规模数据集上的MDX和HQL查询请求,供查询规划模块调用;所述的MDX查询解释模块负责对MDX进行解释和执行查询处理,完成整个解释和查询计算,实现读取维度成员值和单元格值的联机分析处理即OLAP数据访问功能;所述的HQL查询解释模块负责HQL查询请求解释,形成相应的查询解释语法树,对查询解释语法树所有节点进行相应的执行规则定义,并生成针对一个查询请求相应的查询模型;根据查询模型判断是否存在请求对应的形式化Cube多维模型;如果存在与查询匹配的Cube,该模块会遍历和选择以键值对形式保存在Hbase中的Cube进行查询,如果Cube不存在,则基于Hbase的Cube构建缓存会向数据存储模块发送细节数据请求,进行Cube构建;所述的查询规划模块进行查询计划分析、执行处理;所述的元数据管理模块负责对维度表数据、Cube元数据和Cube中间结果这些元数据信息进行规范管理;所述的MDX聚集缓存模块定义多个由内存中一组计算值构成的单元格值,主要负责为查询解释模块逐条或者批量地提供单元格值;所述的基于Hbase的Cube构建缓存模块负责大规模数据集上的Hive多维查询性能优化,通过遍历子Cube生成树来创建一个完全Cube,将预先计算完成Cube的计算结果保存到Hbase当中,以备离线处理所需查询调用从而达到加快查询速度的目的;所述的数据存储模块负责为MDX查询解释的单元格值计算提供维度的成员和细节数据,将事实表、维度表和单元格值这些数据分布式存储在不同的可扩展集群节点上。...

【技术特征摘要】
1.一种基于大数据的联机分析处理系统,其特征在于:该系统包括用户接口模块、查询规划模块、MDX查询解释模块、HQL查询解释模块、元数据管理模块、MDX聚集缓存模块、基于Hbase的Cube构建缓存模块和数据存储模块;所述的用户接口模块接受来自用户针对不同规模数据集上的MDX和HQL查询请求,供查询规划模块调用;所述的MDX查询解释模块负责对MDX进行解释和执行查询处理,完成整个解释和查询计算,实现读取维度成员值和单元格值的联机分析处理即OLAP数据访问功能;所述的HQL查询解释模块负责HQL查询请求解释,形成相应的查询解释语法树,对查询解释语法树所有节点进行相应的执行规则定义,并生成针对一个查询请求相应的查询模型;根据查询模型判断是否存在请求对应的形式化Cube多维模型;如果存在与查询匹配的Cube,该模块会遍历和选择以键值对形式保存在Hbase中的Cube进行查询,如果Cube不存在,则基于Hbase的Cube构建缓存会向数据存储模块发送细节数据请求,进行Cube构建;所述的查询规划模块进行查询计划分析、执行处理;所述的元数据管理模块负责对维度表数据、Cube元数据和Cube中间结果这些元数据信息进行规范管理;所述的MDX聚集缓存模块定义多个由内存中一组计算值构成的单元格值,主要负责为查询解释模块逐条或者批量地提供单元格值;所述的基于Hbase的Cube构建缓存模块负责大规模数据集上的Hive多维查询性能优化,通过遍历子Cube生成树来创建一个完全Cube,将预先计算完成Cube的计算结果保存到Hbase当中,以备离线处理所需查询调用从而达到加快查询速度的目的;所述的数据存储模块负责为MDX查询解释的单元格值计算提供维度的成员和细节数据,将事实表、维度表和单元格值这些数据分布式存储在不同的可扩展集群节点上。2.根据权利要求1所述的一种基于大数据的联机分析处理系统,其特征在于:所述的查询规划模块包括权限控制器、查询监听器、查询分析器和查询计划分配器;所述的权限控制器主要针对不同的用户进行Cube操作的权限设置;所述的查询监听器主要接受来自多个客户端的多用户查询请求;所述的查询分析器根据数据规模、实时性要求、存储空间大小和多表连接操作这些指标作为查询评估函数的参数,进行查询评估计算;所述的查询计划分配器选择查询分析器的计算结果相应的查询计划。3.根据权利要求1所述的一种基于大数据的联机分析处理系统,其特征在于:所述的MDX查询解释模块包括创建单元格请求模块、成员读取器对象模块、Schema读取器对象模块和OLAP计算器模块;所述的创建单元格请求模块主要根据当前的一组维度成员上下文环境创建单元格请求,单元格请求中包含所有必要的从聚集缓存层中获取单元格的值的信息;所述的成员读取器对象模块实现对维度成员的读取;所述的Schema读取器对象模块实现调用各个维度成员读取器对象;所述的OLAP计算器实现调用OLAP的Schema读取器对象。4.根据权利要求1所述的一种基于大数据的联机分析处理系统,其特征在于:所述的元数据管理模块包括定义模块和Hive表元数据获取模块;所述的定义模块实现对MDX查询解释中执行MDX语句所需的多维数据模型映射文件和HQL多维查询中的维度表数据进行定义;所述的Hive表元数据获取模块在建立形式化Cube时,从Hive获取Hive表的元数据。5.根据权利要求1所述的一种基于大数据的联机分析处理系统,其特征在于:所述的基于Hbase的Cube构建缓存模块包括形式化定义模块、多维Cube构建模块、Cube计算结果物理化模块和物理化结果存储模块;所述的形式化定义模块对基于Hbase缓存的Cube模型中包括Cube维度、子Cube维度数目、针对聚合计算前后的子Cube数目计算方法,以及包含两个计算任务实体的子Cube值的计算方法的数据模型的形式化定义;所述的多维Cube构建模块主要通过Hbase缓存的分段逐层降维聚合算法构建形式化多维Cube;所述的Cube计算结果物理化模块主要通过Cube数目进行HTable的Region分割策略创建HTable,将创建的HTable转换成Hfile文件,完成Cube计算结果的物理化过程;所述的物理化结果存储模块主要把物理化结果保存到Hbase中,并进行压缩存储处理,以备离线处理所需查询调用。6.根据权利要求1所述的一种基于大数据的联机分析处理系统,其特征在于:所述的数据存储模块包括计算模块和存储模块;所述的计算模块主要通过调用相应的缓存模块从Hive数据存储模块读取测试数据,完成聚集计算和Cube预计算;所述的存储模块将预计算的缓存值分别保存在存储模块的Hive和Hbase中。7.如权利要求1-6中的任意一项所述的一种基于大数据的联机分析处理系统的处理方法,其特征在于:所述的方法具...

【专利技术属性】
技术研发人员:林劼赵艳艳唐源钟德建李年华
申请(专利权)人:电子科技大学
类型:发明
国别省市:四川;51

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

1