Presto概念
Presto是一个开源的分布式的SQL查询引擎,数据量支持GB到PB,主要用于处理秒级查询的场景。虽然Presto可以解析SQL,但它不是一个标准的数据库,不是MySQL、Oracle的替代品。
主要包括下面几个组件:
- Server Types
Presto服务器有两种类型:协调器(Coordinator)和工作器(Worker)。以下部分说明了两者之间的区别。 - Coordinator
Presto协调器是负责解析语句,计划查询和管理Presto工作程序节点(Worker)的服务器。它是Presto的“大脑”,也是连接客户端(client)以提交执行语句的节点。每一个Presto协调器都伴随这一个或者多个Presto Worker。出于开发或测试目的,可以将Presto的单个实例配置为执行这两个角色。
协调器跟踪每个Worker上的活动并协调查询(query)的执行。协调器创建涉及一系列阶段的查询的逻辑模型,然后将其转换为在Presto Worker群集上运行的一系列关联任务(task)。
协调员使用REST API与工作人员和客户进行通信。 - Worker
Presto worker负责执行任务和处理数据。worker节点从连接器(connectors)获取数据并相互交换中间数据。coordinator 负责从worker那里获取结果,并将最终结果返回给客户端(Client)。
当Presto worker进程启动时,它将自己通告给协调器(coordinator)中的发现服务器(discovery server ),这使Presto协调器(coordinator)可以使用它来执行任务。
Worker使用REST API与其他worker和Presto Coordinator进行通信。