Trino 是一个 开源 的分布式 SQL 查询引擎。目的是能够快速方便地对分布存储在一个或多个异构数据源的大型数据集进行查询.[2] Trino 不仅能够查询储存在不同的存储系统(如 HDFSAmazon S3谷歌云存储 或Microsoft Azure Blob 存储[3])上并按照Apache Hive[4]Iceberg英语Apache Iceberg[5] 格式存储的开源列式存储数据文件格式(如 ORC英语Apache ORCParquet英语Apache Parquet)的数据湖。Trino 还能进行联邦查询,查询不同数据源(如 MySQLPostgreSQLCassandraKafkaMongoDBElasticsearch)中的表。Trino 在 Apache 许可证.[6]下发布。

Trino
Trino UI Version 393
Trino UI Version 393
原作者Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang
当前版本
  • 463(2024年10月23日;稳定版本)[1]
编辑维基数据链接
源代码库Trino Repository
编程语言Java
操作系统跨平台
标准ANSI SQL, JDBC
类型数据仓库
许可协议Apache 许可证 2.0
网站trino.io


历史

2019 年 1 月,Presto 的原始创建者 Martin Traverso、Dain Sundstrom 和 David Phillips 从 Presto 项目创建了一个fork仓库. 他们最初保留了 Presto 这个名字,并使用 PrestoSQL 来区别于原来的 PrestoDB 项目。 同时,他们宣布成立 Presto 软件基金会。 该基金会是一个非营利组织,致力于推动 Presto 开源分布式 SQL 查询引擎的发展。[7][8]

2020 年 12 月,PrestoSQL 更名为 Trino。 作为品牌重塑的一部分,Trino 软件基金会、代码库和所有其他 PrestoSQL 资产都已经按新品牌重命名。[9]

Presto 和 Trino 最初由 Facebook 的 Martin、Dain、David 和 Eric Hwang 设计和开发,旨在能够让数据分析师在 Apache Hadoop 中的大型数据仓库上执行交互式查询。Trino 与 Presto 项目共度前六年的时光。[10][11] 想要了解更多 Trino 早期历史的信息,您可以参考 Presto 历史部分。The Presto History Section. [2023-04-17]. (原始内容存档于2023-05-22). .


架构

 
带有协调节点和工作节点的 Trino 架构概述[12]

Trino 使用 Java 语言编写,它包含了 coordinator(协调节点)和 worker(工作节点)两种类型的节点。[12]

  • 协调节点 负责对客户端提交的查询进行语法解析、语义分析、执行计划生成、执行计划优化以及任务调度。协调器与服务提供者接口进行交互,以获取可用表、表统计信息和执行任务所需的其他信息。[12]
  • 工作节点 负责执行调度程序提供给他们的任务和算子。这些任务处理来自数据源的数据,并返回给协调器,再由协调节点将最终的结果返回给客户端。[12]

Trino 遵循 ANSI SQL[3] s标准,包括以下 : SQL-92, SQL:1999英语SQL:1999, SQL:2003英语SQL:2003, SQL:2008英语SQL:2008, SQL:2011英语SQL:2011, SQL:2016英语SQL:2016.

Trino 是存算分离的架构。[3] 支持被部署在本地或者云端.[13]

Trino 是分布式计算 MPP英语massively parallel 架构。[12] 首先 Trino 会通过运行临时分区操作或者依赖于底层数据存储数据中的现有分区,将任务按分区分配给多个 worker 节点。一旦数据到达 worker 节点,数据会被多个线程上执行的流水线运算符处理。.[12]

更多信息

参考资料

  1. ^ Release 463. 2024年10月23日 [2024年10月27日]. 
  2. ^ Overview — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2022-10-06). 
  3. ^ 3.0 3.1 3.2 Fuller, Matt; Moser, Manfred; Traverso, Martin. Chapter 1. Introducing Trino. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. 2021: 3–17. ISBN 9781098107710. 
  4. ^ Hive connector — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2022-10-06). 
  5. ^ Iceberg connector — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2023-05-21). 
  6. ^ trinodb/trino LICENSE. Trino. 25 August 2022 [25 August 2022]. (原始内容存档于2023-06-09). 
  7. ^ Presto Software Foundation Launches to Advance Presto Open Source Community. PRWeb. [2019-02-01]. (原始内容存档于2020-04-24). 
  8. ^ Presto's New Foundation Signals Growth for the Big Data SQL Engine. The New Stack. 2019-01-31 [2019-02-01]. (原始内容存档于2019-02-01) (美国英语). 
  9. ^ Traverso, Martin; Sundstrom, Dain; Phillips, David. We’re rebranding PrestoSQL as Trino. trino.io. 27 December 2020 [7 September 2021]. (原始内容存档于2023-03-31) (英语). 
  10. ^ Contributors to trinodb/trino. GitHub. [20 September 2021]. (原始内容存档于2022-10-07) (英语). 
  11. ^ Contributors to prestodb/presto. GitHub. [20 September 2021]. (原始内容存档于2022-10-07) (英语). 
  12. ^ 12.0 12.1 12.2 12.3 12.4 12.5 Fuller, Matt; Moser, Manfred; Traverso, Martin. Chapter 4. Trino Architecture. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. 2021: 43–72. ISBN 9781098107710. 
  13. ^ Fuller, Matt; Moser, Manfred; Traverso, Martin. Chapter 13. Real-World Examples. Trino: The Definitive Guide. O'Reilly Media, Inc, USA. 2021: 267–272. ISBN 9781098107710. 


外部链接