Apache Presto - 架构

Presto的架构几乎与经典的MPP(大规模并行处理)DBMS架构相似.下图说明了Presto的体系结构.

Presto Architecture

上图由不同的组件组成.下表详细描述了每个组件.

S.No组件&说明
1.

客户端

客户端(Presto CLI)将SQL语句提交给协调员以获取结果.

2.

协调员

协调员是主守护进程.协调器最初解析SQL查询,然后分析和计划查询执行.调度程序执行管道执行,将工作分配给最近的节点并监视进度.

3.

连接器

存储插件称为连接器. Hive,HBase,MySQL,Cassandra等等都充当了连接器;否则你也可以实现一个自定义的.连接器为查询提供元数据和数据.协调器使用连接器来获取用于构建查询计划的元数据.

4.

工人

协调员将任务分配给工作节点.工作人员从连接器获取实际数据.最后,工作节点将结果传递给客户端.

Presto  - 工作流程

Presto是一个在节点集群上运行的分布式系统. Presto的分布式查询引擎针对交互式分析进行了优化,并支持标准ANSI SQL,包括复杂查询,聚合,连接和窗口功能. Presto架构简单易用. Presto客户端(CLI)将SQL语句提交给主守护程序协调器.

调度程序通过执行管道连接.调度程序将工作分配给最接近数据的节点并监视进度.协调器将任务分配给多个工作节点,最后工作节点将结果传递回客户端.客户端从输出过程中提取数据.可扩展性是关键设计.可插拔连接器(如Hive,HBase,MySQL等)为查询提供元数据和数据. Presto采用"简单存储抽象"设计,可以轻松地针对这些不同类型的数据源提供SQL查询功能.

执行模型

Presto支持自定义查询和执行引擎,其运算符旨在支持SQL语义.除了改进的调度之外,所有处理都在内存中,并在不同阶段之间跨网络流水线化.这可以避免不必要的I/O延迟开销.