Presto 0.300 介绍与选型指南
开源分布式 SQL 查询引擎 PrestoDB 0.300(2026-10-05 发布)介绍与选型:MPP 架构与 SPI 连接器模型、PrestoDB 与 PrestoSQL/Trino 的分叉史(2012 Facebook 诞生→2018 分叉→2020-12 更名 Trino)与现状差异、快速上手路径,及与 Trino v484/ClickHouse 26.9/Doris 4.1.5/StarRocks 4.1.6 的量化选型对比。认知篇,官方来源溯源,查询日期 2026-10-19。
Presto 0.300 介绍与选型指南
目标:基于官方仓库 Release、官方文档与项目官网,讲清开源分布式 SQL 查询引擎 PrestoDB(本专栏对象,下文简称 Presto)的定位、架构、连接器模型,厘清 PrestoDB 与 PrestoSQL/Trino 的分叉史与现状差异,并给出与 Trino、ClickHouse、Apache Doris、StarRocks 的量化选型对比。本文为认知篇,全部论断基于官方来源联网溯源(查询日期 2026-10-19),不做本地安装实测。
一、信息基准
本章明确本文的信息基准:版本、维护方、许可与发行形态,并列出可核对的官方来源,便于读者验证时效。
- 查询日期:2026-10-19(本文所有版本号、星标数、提交频率均在该日联网核验)。
- 基准版本:Presto 0.300,prestodb/presto 仓库最新稳定 Release,发布于 2026-10-05(版本依据:GitHub Releases Atom 流与 Release 标签页,tag 注释为 "[maven-release-plugin] copy for tag 0.300");上一个 minor 为 0.299(2026-08-28)。
- 维护方:Presto 社区与 Presto Foundation(Linux Foundation 旗下项目),Meta/Facebook 系企业持续投入。
- 许可:仓库 LICENSE 文件核验为 Apache License 2.0(来源:https://github.com/prestodb/presto/blob/master/LICENSE ,查询日期 2026-10-19)。
- 发行形态:官方发布 Server 二进制 tarball(Maven Central 分发)、源码构建;CLI 与 JDBC 驱动独立发布。
- 版本依据(来源清单):
- GitHub Releases(版本与日期):https://github.com/prestodb/presto/releases
- Releases Atom 流(发布时间戳):https://github.com/prestodb/presto/releases.atom
- 官方文档站(架构/部署/连接器):https://prestodb.io/docs/current/
- 官网首页:https://prestodb.io/
二、软件概述
2.1 项目定位与版本
Presto 是一款开源的分布式 SQL 查询引擎(MPP 架构),2012 年诞生于 Facebook 数据基础设施团队,为海量 Hadoop 数据仓库上的低延迟交互式分析而生。它本身不存储数据:通过连接器(Connector)以联邦方式直连 Hive、对象存储表格式、关系数据库、Kafka 等数据源,用一条标准 ANSI SQL 完成跨源查询与联邦 JOIN,是"查询下压到数据所在地"的典型代表。当前最新稳定版为 0.300(2026-10-05 发布),版本节奏约 6–10 周一个 minor(0.298 于 2026-06-12、0.299 于 2026-08-28、0.300 于 2026-10-05,来源:Releases Atom 流,查询日期 2026-10-19)。
2.2 血脉厘清:PrestoDB 与 PrestoSQL/Trino
这是 Presto 选型绕不开的一段历史,关键节点均有官方文字可查(来源:Trino 创始人 2020-12-27 官方博文 https://trino.io/blog/2020/12/27/announcing-trino.html ,查询日期 2026-10-19):
- 2012 年:Dain Sundstrom、David Phillips、Martin Traverso 与 Eric Hwang 在 Facebook 创建 Presto,2013 年开源。
- 2018 年:原创始人因社区治理分歧离开 Facebook,另行启动 PrestoSQL 分叉;2019 年 1 月成立 Presto Software Foundation 独立运营。
- 2019 年 9 月:Facebook 在 Linux Foundation 设立 Presto Foundation 并持有 Presto 商标,prestodb/presto 仓库归入该基金会。
- 2020 年 12 月 27 日:因商标问题,PrestoSQL 正式更名为 Trino(trinodb/trino)。
因此今天市场上的"Presto"有两个血脉:PrestoDB(prestodb/presto,Presto Foundation/Linux Foundation,本专栏对象)与 Trino(trinodb/trino,原创始人社区)。两者同源但已长期独立演进,连接器目录、SQL 特性、插件生态互不兼容升级。
三、核心架构
本章拆解 Presto 的逻辑架构。理解"协调者—工作者—连接器"三层分工,是容量规划与连接器配置的前提。
- Coordinator(协调者):解析 SQL、生成与调度执行计划、管理集群元数据与资源;生产环境单点部署(可配高可用),是集群的"大脑"。
- Worker(工作者):执行实际的数据扫描、交换(exchange)与算子计算,任务以阶段(stage)- 交换(exchange)- 分片(split)的流水线并行展开,MPP 式把单查询切到多节点并行。
- Connector(连接器)与 Catalog:连接器是 Presto 的可插拔数据源适配层(Java SPI),每个 catalog 目录配置对应一个连接器实例;同一查询可用
catalog.schema.table三段式跨源联邦访问(如 Hive、Iceberg、MySQL、Kafka 等,目录以官方连接器文档为准:https://prestodb.io/docs/current/ )。
💡 技术拓展:交互式分析引擎的架构形态主要有三类——
形态 原理/特点 代表 MPP 无存储查询引擎 存算分离,直连外部数据源联邦查询 Presto、Trino、Presto(AWS Athena 底座) 自带存储的 OLAP 列存库 数据导入内部列存格式,检索极快 ClickHouse 一体化 OLAP(存储+计算+MySQL 协议) 明细+聚合模型,高并发报表 Apache Doris、StarRocks Presto 属第一类:不接管存储、强于联邦与 ad-hoc,弱于超高并发点查。
四、关键特性
以下特性依据官方文档站与仓库说明归纳(查询日期 2026-10-19):
- 联邦多源查询:一套 SQL 跨关系库、数据湖表格式与消息系统 JOIN,数据不搬迁。
- ANSI SQL 能力:支持窗口函数、CTE、复杂 JOIN 等 ANSI 语法,生态兼容 Hive SQL 的主体子集。
- 可插拔连接器模型:catalog 即数据源,新增数据源不改集群本身;社区连接器覆盖主流数据库与数据湖格式。
- 资源治理:基于资源组(resource group)的队列与并发管控,按请求来源划分算力。
- 开放生态适配:JDBC 驱动与 REST 状态接口,便于接入 BI 工具与调度系统。
- 运维简明:单 Coordinator + 多 Worker 的静态拓扑,配置集中在
etc/目录(node.properties / jvm.config / config.properties / catalog/)。
五、快速上手
以下为官方文档上手路径的转述(认知篇,不做本地实测;具体以 https://prestodb.io/docs/current/ 为准,查询日期 2026-10-19):
- 获取发行包:从官方下载页(https://prestodb.io/download.html )或 Maven Central 获取 0.300 Server tarball 与 presto-cli。
- 创建 etc 配置:安装目录下手工创建
etc/,写node.properties(节点标识与数据目录)、jvm.config(JVM 参数)、config.properties(coordinator=true 或 worker 角色与 HTTP 端口)、log.properties(日志级别)。 - 配置数据源 catalog:在
etc/catalog/下按连接器类型落配置文件(如 jmx.properties、mysql.properties、hive.properties),每文件即一个 catalog。 - 启动与验证:
bin/launcher start拉起进程,浏览器访问 Coordinator 的 HTTP 端口查看集群与查询页面;用 presto-cli 连接执行SHOW CATALOGS验证连接器加载。 - 跑通第一条联邦查询:对已配置的 catalog 执行三段式查询,跨 catalog JOIN 验证联邦能力。
💡 说明:0.29x 起官方要求 JDK 17 运行环境;
etc/各文件的逐项参数说明与集群实测,见本专栏 《Presto 0.299 配置文件详解》。
六、适用场景与限制
适用场景:
- 数据湖/数仓上的交互式 ad-hoc 分析:分析师用 SQL 直查 Hive/Iceberg 等表格式,无需先导数;
- 联邦查询:业务库、数据湖、消息系统跨源关联的一次性探查与对账;
- BI 报表下钻的中低并发查询层:JDBC 接入 BI 工具,扫外部存储;
- ETL/ELT 的轻量批处理:SQL 化的加工链路,替代部分 Hive 作业。
限制与注意:
- 不适合高并发点查/在线交易场景(无本地索引存储,延迟与并发上限不及 ClickHouse/Doris/StarRocks);
- 长跑大作业稳定性依赖资源组调优,多租户混跑需严格队列隔离;
- 血脉选型要先定:一旦选定 PrestoDB 或 Trino,连接器与插件生态不互相兼容,后续切换有迁移成本;
- 版本线以 0.x 命名,minor 间偶有 breaking change,升级前须读 Release Notes。
七、同类选型对比
量化数据(GitHub 指标经 shields.io 徽章接口实查,最新版本经各自 Releases/官方页面实查,查询日期 2026-10-19):
| 软件 | 许可 | Stars | Forks | 近 12 个月提交 | 最新稳定版 | 兼容矩阵要点 |
|---|---|---|---|---|---|---|
| Presto(PrestoDB)0.300 | Apache-2.0 | 17k | 5.5k | 1.3k | 0.300(2026-10-05) | JDK 17;Maven Central tarball;连接器目录官方维护 |
| Trino v484 | Apache-2.0 | 13k | 3.8k | 4.7k | v484 | 官方文档要求 JDK 25(8/11/17/21/24 不可用);社区演进最快,连接器最丰富 |
| ClickHouse 26.9 | Apache-2.0 | 50k | 9.1k | 112k | 26.9.21.9-stable(2026-10-17) | 自带列存引擎与复制;SQL 方言自成体系 |
| Apache Doris 4.1.5 | Apache-2.0 | 16k | 4k | 1.6k | 4.1.5 | MySQL 协议兼容;自带存储,明细/聚合模型 |
| StarRocks 4.1.6 | Apache-2.0 | 12k | 2.6k | 5.3k | 4.1.6 | MySQL 协议兼容;自带存储,主打湖仓一体加速 |
数据来源:shields.io GitHub 徽章接口(stars/forks/commit-activity)与各项目 Releases(Presto/Trino/StarRocks 为 GitHub Releases;ClickHouse 版本取 GitHub Releases Atom;Doris 官方 Release 记录),查询日期 2026-10-19。
关键差异与选型建议:
- PrestoDB vs Trino:同为 MPP 联邦引擎。Trino(原创始人社区)近 12 个月提交量(4.7k)约为 PrestoDB(1.3k)的 3.6 倍,特性与连接器演进更快;PrestoDB 背靠 Linux Foundation 的 Presto Foundation,与 Meta 系数据湖栈及 AWS Athena 血缘一致性更强。存量大集群迁移成本高,新集群倾向社区活跃度更高的 Trino,但需接受高版本 JDK 与生态差异。
- 联邦查询 vs 自带存储:数据已在数据湖/外部库且不想搬迁 → PrestoDB/Trino;追求极致单表检索性能与高并发 → ClickHouse;要 MySQL 协议接入、运维门槛低的一体化 OLAP → Doris/StarRocks。
- 并发与延迟:点查与高频报表(数百 QPS 以上)选自带存储的 ClickHouse/Doris/StarRocks;长查询联邦分析与湖上 ad-hoc 选 PrestoDB/Trino。
八、参考链接
- GitHub 仓库与 Releases:https://github.com/prestodb/presto
- 官方文档站:https://prestodb.io/docs/current/
- 官网下载页:https://prestodb.io/download.html
- Trino 更名公告(分叉史一手材料):https://trino.io/blog/2020/12/27/announcing-trino.html
- Trino 仓库:https://github.com/trinodb/trino
- ClickHouse:https://github.com/ClickHouse/ClickHouse
- Apache Doris:https://github.com/apache/doris
- StarRocks:https://github.com/StarRocks/starrocks
- 本专栏配置实测:《Presto 0.299 配置文件详解》