Presto查询执行模型
2020-06-18 本文已影响0人
liuzx32
-
Statement语句: 其实就是输入的SQL
-
Query 根据SQL语句生成查询执行计划,进而生成可以执行的查询(Query),一个查询执行由Stage、Task、Driver、Split、Operator和DataSource组成
-
Stage 执行查询阶段 Stage之间是树状的结构 ,RootStage 将结果返回给coordinator ,SourceStage接收coordinator数据 其他stage都有上下游 stage分为四种 single(root)、Fixed、source、coordinator_only(DML or DDL)
-
Exchange 两个stage数据的交换通过Exchange 两种Exchange ;Output Buffer (生产数据的stage通过此传给下游stage)Exchange Client (下游消费);如果stage 是source 直接通过connector 读数据,则改stage通过Operator与connector交互
stage 并不会被执行,只是对执行计划进行管理 -
Task 实际运行在worker上的
-
Driver 一个Driver处理一个split
-
Operator 一个operator代表对一个split的一种操作 operator每次只会读取一个paged对象
-
Split 分片一个分片就是一个大的数据集中的一个小的子集
-
Page presto中处理的最小数据单元 一个page包含多个block对象,每个block对象是个字节数据
一个查询分解为多个stage 每个 stage拆分多个task,每个task处理一个or多个split ,一个task被分解为一个或多个Driver。