阿川CH
学海无涯,上栽上栽!
Toggle navigation
阿川CH
主页
归档
标签
Presto执行模型
Presto
2018-08-31 19:10:26
0
0
0
cqc
Presto
![](/api/file/getImage?fileId=5ab85e52418f8a54f6000074) 1. Statement就是用户提交的sql。Coordinator会将其生成执行计划,进而生成可以查询的Query 2. Query就是一个查询执行实体,为完成用户sql目标的一系列计算机的操作,其由Stage、Task、Driver、Split、Operator、DataSource组成 3. Presto将一个Query拆成具有层级关系的多个Stage,它是一个逻辑概念,一个Stage会包含1至N个的Task。每个Stage都会有输入和输出,然后将产生结果输出给下游的Stage(除了Single Stage和Source Stage, Single Stage没有下游,其结果是直接输出给Coordinator, Source Stage没有上游,它是从Connector获取数据)。 Presto中的Stage是通过Exchange来连接另一个Stage。Exchange用于完成有上下游关系的Stage之前的数据交换。有两种Exchange: OutputBuffer, 通过其将数据输出给下游的Stage, Exhange Client, 通过其从上游获取数据,但如果当前是一个Source类型的Stage,则是通过Connector获取数据 4. Task是实际运行在Presto各个Worker节点上的,每个Task会处理一个或多个Split,都有对应的输入和输出。一个Task可以被分解为一个或多个的Driver来,每个Driver负责一个Split,从而并行的执行一个Task 5. 一个Driver是作用于一个Split的一系列的Operator的集合,其拥有一个输入和输出 6. Operator代表对一个Split的一种操作,如过滤、转换等。每个Operator均会以Page为最小处理单位分别读取输入数据和产生输出数据,其每次只会读取一个Page对象并产生一个Page对象 7. 一个Split是一个大的数据集的一个小的子集 8. Page是presto中处理的最小数据单元。一个Page对象包含多个Block对象,每个Block是一个字节数组,存储一个字段的若干行。多个Block横切的一行是真实的一行数据。一个Page最大为1MB,最多16*1024行。其结构如下 ![](/api/file/getImage?fileId=5ab85e52418f8a54f6000075) ---------- **图原件** [presto执行模型.eddx](/api/file/getAttach?fileId=5ab85fd5418f8a54f6000078) [Presto Page模型.eddx](/api/file/getAttach?fileId=5ab85fd5418f8a54f6000077)
上一篇:
消息摘要(MessageDigest)、消息认证码(MAC)、签名(Signature)的区别
下一篇:
杀掉指定端口对应进程的脚本
文档导航