大数据技术学习——Hadoop即席查询引擎

举报
slx_share 发表于 2024/04/07 15:53:33 2024/04/07
【摘要】 Hadoop即席查询引擎是构筑在Hive之上的,提供快速SQL查询接口的OLAP引擎。

1       一句话介绍

Hadoop即席查询引擎是构筑在Hive之上的,提供快速SQL查询接口的OLAP引擎。

2       基本概念

  • 即席查询(Ad Hoc):用户以单独SQL语句(不嵌入程序中)灵活地进行自定义查询。即席查询语句通常未经过预先专家优化,但是又要求查询速度快,因此一般采用内存计算或预计算技术方案。
  • Hive:基于HDFS构建的数据仓库,主要提供HQL(类SQL语句)生命周期管理和元数据管理功能。自0版本后,元数据管理功能组件MetaStore可独立部署,与即席查询引擎结合,提供更高效的查询能力。
  • 数据模型:描述数据仓库中事实表和维度表之间的连接关系的模型。以事实表为中心,多张维度表连接到事实表上的数据模型称为星型模型;当存在维度表不直接连接事实表,而是连接维度表时,称为雪花模型,可以看作是星型模型的拓展。

3       Presto

Presto是一个分布式的SQL查询引擎,本身不存储数据,可通过connector适配器抽取多种类型数据源(通常为Hive)的数据到内存中计算。Presto是一个Master-Slave架构,如下图:


  • Coordinator作为master节点,负责接收客户端SQL请求,解析SQL,读取Hive元数据,最终生成执行计划。执行计划由多个Stage构成,Stage包含可并行计算的task任务。
  • Worker:接收Coordinator下发的task任务,读取HDFS上的数据,计算完成后返回给Coordinator聚合。
  • Discovery Server:通常内置于Coordinator中。负责发现可以正常工作的worker节点。

Presto是完全基于内存进行并行计算的,Worker节点内和节点间流水线计算,中间无磁盘IO操作,因此速度极快。

开源组件Impala架构与Presto类似,同样是构建于HadoopMPP计算引擎。Presto支持的数据源类型更丰富。

4       Kylin

Kylin之所以能提供快速的OLAP查询,秘诀是预计算,查询相对固化,因此对即席查询的支持度不如Presto

KylinHive中获取数据,然后通过Build Engine(基于Spark/MR的能力)构建OLAP Cube,并将结果存储到Parquet/HBase中。用户直接查询时,直接从Cube中获取结果。


5       参考

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。