基于Spark和Hive的分布式OLAP即席查询方法[发明专利]

(19)中华人民共和国国家知识产权局
(12)发明专利申请
(10)申请公布号 (43)申请公布日 (21)申请号 202010808594.4
(22)申请日 2020.08.12
(71)申请人 北京海致网聚信息技术有限公司
地址 100083 北京市海淀区学院路甲5号2
幢平房B-1011
(72)发明人 刘启涛 
(51)Int.Cl.
G06F  16/2458(2019.01)
G06F  16/28(2019.01)
(54)发明名称基于Spark和Hive的分布式OLAP即席查询方法(57)摘要本发明公开了基于Spark和Hive的分布式OLAP即席查询方法,包括如下步骤:1、由OLAP  Query开始,可以是任一种方式触发OLAP  Query,是引擎执行的第一个阶段;2、在Query获取Query  Keyword后,会进行关键词的Validator,即
验证检测;3、验证后如果验证结果通过则进行后续Cache操作;4、进行Router路由匹配;5、进行SQL  Rewrite;6、本阶段执行引擎会进行执行,并得到相应的结果。本专利的优点在于,不仅支持海量数据,还可以支撑海量数据下任意维度和时间跨度的高效统计查询,提供一个灵活多维度的组合型查询工具,
对应不同维度的业务分析。权利要求书1页  说明书3页  附图2页CN 111966727 A 2020.11.20
C N  111966727
A
1.基于Spark和Hive的分布式OLAP即席查询方法,其特征在于,包括如下步骤:
1)、由OLAP  Query开始,可以是任一种方式触发OLAP  Query,是引擎执行的第一个阶段;
2)、在Query获取Query  Keyword后,会进行关键词的Validator,即验证检测,进行关键词正确性、安全性的验证,避免恶意Query;
3)、验证后如果验证结果通过则进行后续Cache操作,反之则取消本次查询,Cache操作可以提高后续重复Query的效率;
4)、不同的关键词和Query  Router会对应不同的查询结果,因此需要进行Router路由匹配;
5)、路由匹配成功后,会进行SQL  Rewrite,本阶段会将HQL转换为通用格式,然后再转向各种SQL,支持各种不同类型的数据库;
6)、本阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
权 利 要 求 书1/1页CN 111966727 A
基于Spark和Hive的分布式OLAP即席查询方法
技术领域
[0001]本发明涉及大数据多维分析引擎技术领域,尤其涉及基于Spark和Hive的分布式OLAP即席查询方法。
背景技术
[0002]近年来随着技术发展,企业对于各种报表的查询分析系统需求愈发高涨,传统的分析系统大多基于MySQL等关系型数据库搭建,性能难以满足日益增长海量数据查询分析。由于大数据技术平台高速发
展完善,实时的核心业务数据逐步应用在大数据平台。OLAP即联机分析处理,OLAP的核心是分析,侧重于分析决策,分析的数据量级很大。OLAP实现的技术难点和基于Hadoop生态大数据平台完全匹配,以Spark进行分布式实时计算、以Hive进行数据查询,解决海量数据的分析查询的技术难点。
发明内容
[0003]为实现上述目的,本发明提供如下技术方案:
[0004]基于Spark和Hive的分布式OLAP即席查询方法,包括如下步骤:
[0005]1、由OLAP Query开始,可以是任一种方式触发OLAP Query,是引擎执行的第一个阶段;
[0006]2、在Query获取Query Keyword后,会进行关键词的Validator,即验证检测,进行关键词正确性、安全性的验证,避免恶意Query;
[0007]3、验证后如果验证结果通过则进行后续Cache操作,反之则取消本次查询,Cache 操作可以提高后续重复Query的效率;
[0008]4、不同的关键词和Query Router会对应不同的查询结果,因此需要进行Router路由匹配;
[0009]5、路由匹配成功后,会进行SQL Rewrite,本阶段会将HQL转换为通用格式,然后再转向各种SQL,支持各种不同类型的数据库,例如MySQL和Oracle;
[0010]6、本阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
[0011]本专利的优点在于,与现有技术相比,本发明解决了海量数据级别的查询分析,不再只是基于传统单一的关系型数据为底层存储和计算,依托于Hadoop大数据平台,将查询分析的计算和存储解耦合,使用Spark进行高效分布式计算、使用Hive依托于HDFS进行海量数据存储,不仅支持海量数据,还可以支撑海量数据下任意维度和时间跨度的高效统计查询,提供一个灵活多维度的组合型查询工具,对应不同维度的业务分析。
附图说明
[0012]图1为本发明的方法流程图
[0013]图2为根据本发明一个实施例的OLAP任意多维分析实现---跨执行引擎框架图[0014]图3为根据本发明一个实施例的OLAP任意多维分析引擎实现---基于Calcite的
SQL Rebuild流程图
[0015]图4为根据本发明一个实施例的OLAP任意多维分析引擎实现---基于ANTLR的SQL 语法增强图
具体实施方式
[0016]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0017]如图1所示,本专利包括七个步骤:
[0018]1、图1是整个OLAP引擎的执行流程,由OLAP Query开始,可以是任一种方式触发OLAP Query,是引擎执行的第一个阶段。
[0019]2、在Query获取Query Keyword后,会进行关键词的Validator(验证检测),进行关键词正确性、安全性的验证,避免恶意Query。
[0020]3、验证后如果验证结果通过则进行后续Cache操作,反之则取消本次查询,Cache 操作可以提高后续重复Query的效率。
[0021]4、不同的关键词和Query Router会对应不同的查询结果,因此需要进行Router路由匹配。
[0022]5、路由匹配成功后,会进行SQL Rewrite,本阶段会将HQL转换为通用格式,然后再转向各种SQL,支持各种不同类型的数据库,例如MySQL和Oracle。
[0023]6、第六阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
[0024]看似与传统的并不太大差别,是因为在引擎流程这块是相对较为固定的,每一步都是必须步骤,其中区别在于,SQL的优化、转化、提取以及执行引擎的区别,OLAP任意多维分析查询技术复杂度要远远高于传统引擎。
[0025]图2为本发明一个实施例的OLAP任意多维分析实现---跨执行引擎框架图。跨执行引擎最外层是统一查询接口层,最外层查询需要定义一种查询规范,对应的关键词匹配对应的Router,方便用户使用,方便后续维护,本设计遵循Restful设计风格。
[0026]在接口层下是查询优化层,查询优化由自主进行开发,根据个人企业的不同需求对相应的Query进行优化,以达到查询的目的,也可以配置通用优化规则,同时可以继承自第三方平台的优化规则,这样可以实现不同角度的优化,实现不同的需求。集自定义、特殊需求、第三方平台多个优化策略,实现查询优化。
[0027]在第三层是执行引擎层,也是OLAP任意维度分析查询的重点所在,底层实现是依托于Hadoop大数据生态,以HDFS作为分布式海量数据的存储,使用Spark代替MapReduce作为分布式计算引擎,以Hive作为数据查询。Spark和Hive都可以完美兼容Hadoop生态,以分布式为核心,将复杂海量的分析查询进行简单化。同时也支持MaxCompute ADS和JDBC MPP/ MySQL。
[0028]图2是一种框架模式,该框架可以满足不同的需求,可自定义、可继承第三方,以低耦合、高适用为核心理念,贯穿实现OLAP任意维度即席分析查询。
[0029]图3为根据本发明一个优选实施例的OLAP任意多维分析引擎实现---基于Calcite
的SQL Rebuild流程图。Calcite是一款SQL解析工具,可以将各种SQL语句解析称成抽象语法术AST,之后通过操作AST可以将SQL中SQL中所要表达的算法和关系体现在具体的代码中。图3即为Calcite在SQL查询优化的具体应用,以任一SQL为例,首先通过Calcite进行语法树的解析,获取到AST,再根据SQL Rebuild重新进行SQL同源转化,可以支持不同的数据库,如MySQL和Oracle等。
[0030]图4示出根据本发明一个优选实施例的OLAP任意多维分析引擎实现---基于ANTLR 的SQL语法增强图。ANTLR是指可以根据输入自动生成语法树并可视化的显示出来的开源语法分析器,包含词法分析器(Lexer)、语法分析器(Parser)、树分析器(tree parser)。图4同样属于OLAP即席查询系统的一个具体应用,支持SQL建模、业务算子、自定义建模。以图4所示内容为例,使用临时表,聚合函数后输出最终表,‘消费记录表’命名为C,C中的消费额按大区聚合sum计算后命名为‘大区聚合消费额’,将‘大区聚合消费额’和‘大区’组成临时表zone_sum;将‘消费记录表’命名为D,D中的消费额按城市聚合sum计算后命名为‘城市聚合消费额’,将‘城市聚合消费额’和‘城市’组成临时表city_sum;将zone_sum和city_sum和‘消费记录表’聚合后,将‘日期’、‘城市’、‘大区’、‘消费额’、‘城市聚合消费额’、‘大区聚合消费额’组成临时表final_output,输出final_output即可。
[0031]尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

本文发布于:2024-09-23 17:11:43,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/415498.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:查询   进行   数据
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议