2020-11-21日更:
x信金科,如果大数据部招人,如果你是业务出生/学历不好/公司背景不强,就不要浪费他们的时间了
基本介绍
Presto是FaceBook开源的一个分布式的Sql Engine。
对标的是Impala之类的Mpp引擎。
主打的是实时分析和多数据源支持。
更详细的介绍和同类框架的对于可以参见
这个PPT总结的很好
基本抽象
Stage
Stage: unit of work that does not require shuffling
这是内部分享总结的,仔细品味一下还是很有道理的。
正常的讲,Stage就是查询的执行阶段。
一般分为四种Stage:
- Source Stage: 从数据源读取数据
- Fixed Stage: 进行中间的运算
- Single Stage: 也称为Root Stage,这个是必不可少的,用于最后把数据汇总给Coordinator
- Coordinator_Only:用于执行DDL语句等不需要进行计算的语句
Task
Task是Stage的具体分布式查询计划,由Coordinator进行划分
Task需要通过Http接口发送到具体的Node上去,然后生成对应的本地执行计划
一个Stage可以分解为多个同构的Task
Driver
Task是发送到本地的执行计划
Task被分为多种Driver去并发的执行
Operator
一个Driver内包含多个Operator
真正操作Page数据的是Operator
一个Operator代表一种操作,比如Scan->读取数据, Filter -> 过滤数据
Block和Page
Block是一张表的一个字段对应的队列
Page由Block构成,一个Page包含多个Block,多个Block横切为一行。