Presto/Trino 简介

2025年4月11日 作者 unix2go

Presto(现在称为PrestoDB)和Trino(原PrestoSQL)是同源的开源分布式SQL查询引擎,专为大数据分析而设计。

核心特点

  • 分布式查询引擎:可处理PB级数据,无需完整Hadoop环境
  • 内存计算:数据处理主要在内存中进行,性能优于Hive
  • 多数据源支持:可查询各种数据源(HDFS、S3、MySQL、PostgreSQL、Cassandra等)
  • 标准ANSI SQL:支持大部分SQL功能,包括JOIN、聚合和窗口函数
  • 实时查询:针对交互式分析场景优化,查询延迟低

Presto vs Trino

2019年,Presto因社区分歧分为两个分支:

  • PrestoDB:Facebook(Meta)主导,保留Presto名称
  • Trino:原核心团队创立,曾用名PrestoSQL,2020年改名为Trino

两者功能相似,但开发路线有所不同。Trino更新较为活跃。

相比Hive的优势

  1. 部署简单:无需完整Hadoop生态,可独立运行
  2. 性能更佳:查询速度比Hive快5-10倍
  3. 资源占用少:不依赖MapReduce,启动更快、资源占用更少
  4. 实时查询:适合交互式分析,而非仅批处理
  5. 更现代的架构:模块化设计,易于扩展

适用场景

  • 跨数据源的联合查询
  • 交互式数据分析和BI
  • 数据湖查询
  • 大规模报表生成

常见部署模式

  1. 轻量级部署:仅需Java环境,几台服务器即可
  2. 云平台部署:各大云平台都有托管版本
  3. 与对象存储结合:使用S3/GCS作为存储层
  4. 与Kubernetes集成:容器化部署更灵活

如果你想摆脱Hadoop复杂性但保留SQL数仓能力,Trino是非常值得考虑的选择。