Presto进行查询调度分析
发布时间
阅读量:
阅读量
文章结构概述
- 提交查询请求
- 制定查询执行方案并激活调度机制
- 查询的调度流程
- Stage调度策略
-
- 构建Stage调度器
- 源数据Stage的调度方式
- 具备可扩展性的分布式写入Stage调度机制
- 输入皆为远程数据源的Fixed/Single Stage调度方式
- 输入包含本地数据源的Fixed Stage调度方式
Presto将接收到的查询请求拆解为多个具有树状结构层级关系的Stage,这实际上意味着将整个SQL处理流程划分为若干个具备特定功能的执行阶段。在完成对查询请求的解析并生成各个执行阶段之后,系统会将这些阶段分配至不同的计算节点进行处理,该分配过程是基于Stage展开的,并且不同类型的Stage采用各自的调度策略。每一个执行阶段还会被进一步细分为多个Task,查询调度的核心任务即是将这些Task分配至Worker节点上,通过并发协作的方式共同完成整个查询任务。
提交查询
首先简要了解从用户提交查询到实际执行的完整流程。Presto通过Rest接口QueuedStatementResource.postStatement接收查询请求,该接口仅将查询任务添加至一个映射队列`Map<QueryId, Query> queries = new ConcurrentH
全部评论 (0)
还没有任何评论哟~
