大数据-Presto-浅谈

Presto是什么?

:分布式SQL查询引擎

Presto的特点?

1.基于内存的计算,减少了不必要的I/O操作,提高了查询速度

2.可连接多个数据源(如MySQL,Oracle,Kafka等等),实现多数据源关联查询

Presto的应用场景?

1.加速hive的查询

2.为不具备SQL查询功能的存储工具提供SQL查询

3.构建虚拟的统一数据仓库,实现多数据源关联查询

4.作为数据迁移和ETL工具

5.基于数据快照的实时计算

6.数据平台的临时查询

7.作为BI报表引擎

8.元数据的数据质量校验

9.海量结构化数据与半结构化数据分析

10.海量多维数据聚合

11.不支持多个大表的join关联查询

Presto中的角色及工作流程?

角色:

  • Coordinator,负责接收SQL Query,解析SQL,生成和优化执行计划,生成和调度Task到Worker上。Coordinator将一个完整的Query,拆分成了多个Stage,每个Stage拆分出多个可以并行的Task。
  • Worker,负责执行Coordinator发给它的Task,有部分Task负责到外部存储系统拉取数据,这部分Task会先执行,之后再执行那些负责计算的Task。从上图中可以看到,拉取数据的Task是在右侧两个Worker上执行的,负责计算的Task是在左侧一个Worker上执行的

工作流程:

  • 第一步:接收SQL Query请求
  • 第二步:SQL解析、语义分析(生成AST)
  • 第三步:生成执行计划、优化执行计划
  • 第四步:划分Stage、生成和调度Task
  • 第五步:在Presto Worker上执行Task(有从数据源拉取数据的Task,也有计算为主的Task),生成结果
  • 第六步:分批返回Query结果给客户端

图解:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值