Trino 分布式查询引擎 专栏导览
专栏定位
本专栏聚焦 Trino(原 Presto SQL)分布式查询引擎的架构设计与查询优化——从 Coordinator/Worker 的 MPP 执行模型,到 Connector SPI 的插件化数据源抽象,再到 CBO(基于代价的优化器)和 Dynamic Filtering 的查询加速。Trino 的核心价值在于联邦查询——用一条 SQL 同时查询 Hive、Iceberg、MySQL、Elasticsearch、Kafka 等异构数据源,无需数据搬迁。
目标读者
- 使用 Trino 做即席查询和联邦查询的数据分析师/数据工程师
- 需要进行 Trino 集群调优和资源管理的 SRE/平台工程师
- 对 MPP 查询引擎和 SQL 优化器设计感兴趣的技术爱好者
专栏目录
| 序号 | 标题 | 核心内容 |
|---|---|---|
| 01 | 01 Trino 全局架构——Coordinator Worker 与 MPP 执行 | Presto 到 Trino 的演进、Coordinator 的查询规划与调度、Worker 的 Pipeline 执行、Connector SPI 的插件化数据源 |
| 02 | 02 查询执行引擎——Stage、Task 与 Pipeline | SQL → 逻辑计划 → 物理计划 → Stage DAG 的转换、Exchange 的数据分发(Hash/Broadcast/Gather)、Pipeline 的算子融合 |
| 03 | 03 Connector 体系——Hive、Iceberg 与联邦查询 | Connector SPI 的三大接口(Metadata/SplitManager/RecordSetProvider)、Hive Connector 的分区裁剪、Iceberg Connector 的时间旅行、跨数据源 JOIN 的执行策略 |
| 04 | 04 内存管理与资源调度 | 内存池(General/Reserved/System)的分级管理、查询内存限制与溢出(Spill to Disk)、Resource Group 的多租户隔离、排队与优先级 |
| 05 | 05 查询优化——CBO、动态过滤与索引下推 | 基于代价的优化器(CBO)与统计信息、动态过滤(Dynamic Filtering)的 Probe/Build 端协作、谓词下推与列裁剪、JOIN 顺序优化 |
| 06 | 06 Trino 运维——集群部署、慢查询分析与调优 | JVM 参数配置(Memory/GC)、Query Plan 的 EXPLAIN ANALYZE 分析、Worker 扩缩容策略、与 Spark SQL/Doris 的选型对比 |
推荐阅读路径
核心原理路径:01 → 02 → 05
Connector 与联邦路径:03
运维调优路径:04 → 06
前置知识
关联专栏
- Hive:TrHive Connector 是最常用的数据源
- Iceberg:Iceberg Connector 支持时间旅行查询
- Doris、ClickHouse:联邦查询 vs 单一 OLAP 引擎的选型
- JVM:Trino 是 Java 应用,JVM 内存管理与 GC 调优影响查询性能