CN111966727A - 基于Spark和Hive的分布式OLAP即席查询方法 - Google Patents

基于Spark和Hive的分布式OLAP即席查询方法 Download PDF

Info

Publication number
CN111966727A
CN111966727A CN202010808594.4A CN202010808594A CN111966727A CN 111966727 A CN111966727 A CN 111966727A CN 202010808594 A CN202010808594 A CN 202010808594A CN 111966727 A CN111966727 A CN 111966727A
Authority
CN
China
Prior art keywords
query
olap
execution
keyword
verification
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010808594.4A
Other languages
English (en)
Inventor
刘启涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Haizhi Wangju Information Technology Co ltd
Original Assignee
Beijing Haizhi Wangju Information Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Haizhi Wangju Information Technology Co ltd filed Critical Beijing Haizhi Wangju Information Technology Co ltd
Priority to CN202010808594.4A priority Critical patent/CN111966727A/zh
Publication of CN111966727A publication Critical patent/CN111966727A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/283Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了基于Spark和Hive的分布式OLAP即席查询方法,包括如下步骤:1、由OLAP Query开始,可以是任一种方式触发OLAP Query,是引擎执行的第一个阶段;2、在Query获取Query Keyword后,会进行关键词的Validator,即验证检测;3、验证后如果验证结果通过则进行后续Cache操作;4、进行Router路由匹配;5、进行SQL Rewrite;6、本阶段执行引擎会进行执行,并得到相应的结果。本专利的优点在于,不仅支持海量数据,还可以支撑海量数据下任意维度和时间跨度的高效统计查询,提供一个灵活多维度的组合型查询工具,对应不同维度的业务分析。

Description

基于Spark和Hive的分布式OLAP即席查询方法
技术领域
本发明涉及大数据多维分析引擎技术领域,尤其涉及基于Spark和Hive的分布式OLAP即席查询方法。
背景技术
近年来随着技术发展,企业对于各种报表的查询分析系统需求愈发高涨,传统的分析系统大多基于MySQL等关系型数据库搭建,性能难以满足日益增长海量数据查询分析。由于大数据技术平台高速发展完善,实时的核心业务数据逐步应用在大数据平台。OLAP即联机分析处理,OLAP的核心是分析,侧重于分析决策,分析的数据量级很大。OLAP实现的技术难点和基于Hadoop生态大数据平台完全匹配,以Spark进行分布式实时计算、以Hive进行数据查询,解决海量数据的分析查询的技术难点。
发明内容
为实现上述目的,本发明提供如下技术方案:
基于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,支持各种不同类型的数据库,例如MySQL和Oracle;
6、本阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
本专利的优点在于,与现有技术相比,本发明解决了海量数据级别的查询分析,不再只是基于传统单一的关系型数据为底层存储和计算,依托于Hadoop大数据平台,将查询分析的计算和存储解耦合,使用Spark进行高效分布式计算、使用Hive依托于HDFS进行海量数据存储,不仅支持海量数据,还可以支撑海量数据下任意维度和时间跨度的高效统计查询,提供一个灵活多维度的组合型查询工具,对应不同维度的业务分析。
附图说明
图1为本发明的方法流程图
图2为根据本发明一个实施例的OLAP任意多维分析实现---跨执行引擎框架图
图3为根据本发明一个实施例的OLAP任意多维分析引擎实现---基于Calcite的SQL Rebuild流程图
图4为根据本发明一个实施例的OLAP任意多维分析引擎实现---基于ANTLR的SQL语法增强图
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本专利包括七个步骤:
1、图1是整个OLAP引擎的执行流程,由OLAP Query开始,可以是任一种方式触发OLAP Query,是引擎执行的第一个阶段。
2、在Query获取Query Keyword后,会进行关键词的Validator(验证检测),进行关键词正确性、安全性的验证,避免恶意Query。
3、验证后如果验证结果通过则进行后续Cache操作,反之则取消本次查询,Cache操作可以提高后续重复Query的效率。
4、不同的关键词和Query Router会对应不同的查询结果,因此需要进行Router路由匹配。
5、路由匹配成功后,会进行SQL Rewrite,本阶段会将HQL转换为通用格式,然后再转向各种SQL,支持各种不同类型的数据库,例如MySQL和Oracle。
6、第六阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
看似与传统的并不太大差别,是因为在引擎流程这块是相对较为固定的,每一步都是必须步骤,其中区别在于,SQL的优化、转化、提取以及执行引擎的区别,OLAP任意多维分析查询技术复杂度要远远高于传统引擎。
图2为本发明一个实施例的OLAP任意多维分析实现---跨执行引擎框架图。跨执行引擎最外层是统一查询接口层,最外层查询需要定义一种查询规范,对应的关键词匹配对应的Router,方便用户使用,方便后续维护,本设计遵循Restful设计风格。
在接口层下是查询优化层,查询优化由自主进行开发,根据个人企业的不同需求对相应的Query进行优化,以达到查询的目的,也可以配置通用优化规则,同时可以继承自第三方平台的优化规则,这样可以实现不同角度的优化,实现不同的需求。集自定义、特殊需求、第三方平台多个优化策略,实现查询优化。
在第三层是执行引擎层,也是OLAP任意维度分析查询的重点所在,底层实现是依托于Hadoop大数据生态,以HDFS作为分布式海量数据的存储,使用Spark代替MapReduce作为分布式计算引擎,以Hive作为数据查询。Spark和Hive都可以完美兼容Hadoop生态,以分布式为核心,将复杂海量的分析查询进行简单化。同时也支持MaxCompute ADS和JDBC MPP/MySQL。
图2是一种框架模式,该框架可以满足不同的需求,可自定义、可继承第三方,以低耦合、高适用为核心理念,贯穿实现OLAP任意维度即席分析查询。
图3为根据本发明一个优选实施例的OLAP任意多维分析引擎实现---基于Calcite的SQL Rebuild流程图。Calcite是一款SQL解析工具,可以将各种SQL语句解析称成抽象语法术AST,之后通过操作AST可以将SQL中SQL中所要表达的算法和关系体现在具体的代码中。图3即为Calcite在SQL查询优化的具体应用,以任一SQL为例,首先通过Calcite进行语法树的解析,获取到AST,再根据SQL Rebuild重新进行SQL同源转化,可以支持不同的数据库,如MySQL和Oracle等。
图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即可。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。

Claims (1)

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)、本阶段执行引擎会进行执行,并得到相应的结果,整个执行结束。
CN202010808594.4A 2020-08-12 2020-08-12 基于Spark和Hive的分布式OLAP即席查询方法 Pending CN111966727A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010808594.4A CN111966727A (zh) 2020-08-12 2020-08-12 基于Spark和Hive的分布式OLAP即席查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010808594.4A CN111966727A (zh) 2020-08-12 2020-08-12 基于Spark和Hive的分布式OLAP即席查询方法

Publications (1)

Publication Number Publication Date
CN111966727A true CN111966727A (zh) 2020-11-20

Family

ID=73365426

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010808594.4A Pending CN111966727A (zh) 2020-08-12 2020-08-12 基于Spark和Hive的分布式OLAP即席查询方法

Country Status (1)

Country Link
CN (1) CN111966727A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407587A (zh) * 2021-07-19 2021-09-17 北京百度网讯科技有限公司 用于联机分析处理引擎的数据处理方法、装置、设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183378A (zh) * 2006-11-14 2008-05-21 国际商业机器公司 用于在查询时间清洗基于序列的数据的方法和系统
CN102918531A (zh) * 2010-05-28 2013-02-06 甲骨文国际公司 用于为商业智能服务器使用的数据提供多语言支持的系统和方法
CN105205085A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种海量数据的多维分析方法及装置
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN107704608A (zh) * 2017-10-17 2018-02-16 北京览群智数据科技有限责任公司 一种olap多维分析和数据挖掘系统
CN108536823A (zh) * 2018-04-10 2018-09-14 北京工业大学 一种物联网感知大数据的缓存设计和查询方法
CN108763573A (zh) * 2018-06-06 2018-11-06 众安信息技术服务有限公司 一种基于机器学习的olap引擎路由方法及系统
CN109241049A (zh) * 2018-07-04 2019-01-18 杭州数云信息技术有限公司 一种olap架构
CN109344186A (zh) * 2018-08-23 2019-02-15 成都四方伟业软件股份有限公司 一种bi系统多源数据库跨源跨库融合系统和融合方法
CN110162515A (zh) * 2019-04-30 2019-08-23 中国科学院深圳先进技术研究院 一种解耦合的弹性数据仓库架构
CN111427911A (zh) * 2020-03-25 2020-07-17 平安医疗健康管理股份有限公司 数据查询方法、装置、计算机设备和存储介质

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101183378A (zh) * 2006-11-14 2008-05-21 国际商业机器公司 用于在查询时间清洗基于序列的数据的方法和系统
CN102918531A (zh) * 2010-05-28 2013-02-06 甲骨文国际公司 用于为商业智能服务器使用的数据提供多语言支持的系统和方法
CN105205085A (zh) * 2014-06-30 2015-12-30 中兴通讯股份有限公司 一种海量数据的多维分析方法及装置
CN106934062A (zh) * 2017-03-28 2017-07-07 广东工业大学 一种查询elasticsearch的实现方法及系统
CN107704608A (zh) * 2017-10-17 2018-02-16 北京览群智数据科技有限责任公司 一种olap多维分析和数据挖掘系统
CN108536823A (zh) * 2018-04-10 2018-09-14 北京工业大学 一种物联网感知大数据的缓存设计和查询方法
CN108763573A (zh) * 2018-06-06 2018-11-06 众安信息技术服务有限公司 一种基于机器学习的olap引擎路由方法及系统
CN109241049A (zh) * 2018-07-04 2019-01-18 杭州数云信息技术有限公司 一种olap架构
CN109344186A (zh) * 2018-08-23 2019-02-15 成都四方伟业软件股份有限公司 一种bi系统多源数据库跨源跨库融合系统和融合方法
CN110162515A (zh) * 2019-04-30 2019-08-23 中国科学院深圳先进技术研究院 一种解耦合的弹性数据仓库架构
CN111427911A (zh) * 2020-03-25 2020-07-17 平安医疗健康管理股份有限公司 数据查询方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113407587A (zh) * 2021-07-19 2021-09-17 北京百度网讯科技有限公司 用于联机分析处理引擎的数据处理方法、装置、设备
CN113407587B (zh) * 2021-07-19 2023-10-27 北京百度网讯科技有限公司 用于联机分析处理引擎的数据处理方法、装置、设备

Similar Documents

Publication Publication Date Title
Das et al. Falcon: Scaling up hands-off crowdsourced entity matching to build cloud services
Gurajada et al. TriAD: a distributed shared-nothing RDF engine based on asynchronous message passing
WO2021083239A1 (zh) 一种进行图数据查询的方法、装置、设备及存储介质
US8943059B2 (en) Systems and methods for merging source records in accordance with survivorship rules
CN103064875B (zh) 一种服务化空间数据分布式查询方法
CN105955999B (zh) 一种大规模RDF图的ThetaJoin查询处理方法
US20090319501A1 (en) Translation of streaming queries into sql queries
US8554760B2 (en) System and method for optimizing queries
CN102915365A (zh) 基于Hadoop的分布式搜索引擎构建方法
Dal Bianco et al. A fast approach for parallel deduplication on multicore processors
CN112860727B (zh) 基于大数据查询引擎的数据查询方法、装置、设备及介质
CN112015741A (zh) 一种海量数据的分库分表存储方法与装置
CN117093599A (zh) 面向异构数据源的统一sql查询方法
Yang et al. Mining web access sequence with improved apriori algorithm
Efthymiou et al. Benchmarking blocking algorithms for web entities
Zhang et al. Oceanrt: Real-time analytics over large temporal data
CN111881160A (zh) 一种基于关系代数的等价展开方法的分布式查询优化方法
CN111966727A (zh) 基于Spark和Hive的分布式OLAP即席查询方法
Lai et al. {GLogS}: Interactive graph pattern matching query at large scale
Braganholo et al. A survey on xml fragmentation
Gillani et al. Continuous graph pattern matching over knowledge graph streams
Nahshon et al. Incorporating information extraction in the relational database model
Tao et al. Range aggregation with set selection
CN103092881A (zh) 内联网搜索方法和装置、搜索引擎及终端设备
Li et al. ROVEC: Runtime Optimization of Vectorized Expression Evaluation for Column Store

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20201120