Trino
此條目翻譯品質不佳。 (2023年4月21日) |
Trino 是一个 开源 的分布式 SQL 查询引擎。目的是能够快速方便地对分布存储在一个或多个异构数据源的大型数据集进行查询.[2] Trino 不仅能够查询储存在不同的存储系统(如 HDFS、Amazon S3、谷歌云存储 或Microsoft Azure Blob 存储[3])上并按照Apache Hive[4] 或 Iceberg[5] 格式存储的开源列式存储数据文件格式(如 ORC 或 Parquet)的数据湖。Trino 还能进行联邦查询,查询不同数据源(如 MySQL、PostgreSQL、Cassandra、Kafka、MongoDB 和 Elasticsearch)中的表。Trino 在 Apache 许可证.[6]下发布。
原作者 | Martin Traverso, Dain Sundstrom, David Phillips, Eric Hwang |
---|---|
当前版本 |
|
源代码库 | Trino Repository |
编程语言 | Java |
操作系统 | 跨平台 |
标准 | ANSI SQL, JDBC |
类型 | 数据仓库 |
许可协议 | Apache 许可证 2.0 |
网站 | trino |
历史
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 使用 Java 语言编写,它包含了 coordinator(协调节点)和 worker(工作节点)两种类型的节点。[12]
- 协调节点 负责对客户端提交的查询进行语法解析、语义分析、执行计划生成、执行计划优化以及任务调度。协调器与服务提供者接口进行交互,以获取可用表、表统计信息和执行任务所需的其他信息。[12]
- 工作节点 负责执行调度程序提供给他们的任务和算子。这些任务处理来自数据源的数据,并返回给协调器,再由协调节点将最终的结果返回给客户端。[12]
Trino 遵循 ANSI SQL[3] s标准,包括以下 : SQL-92, SQL:1999, SQL:2003, SQL:2008, SQL:2011, SQL:2016.
Trino 是存算分离的架构。[3] 支持被部署在本地或者云端.[13]
Trino 是分布式计算 MPP 架构。[12] 首先 Trino 会通过运行临时分区操作或者依赖于底层数据存储数据中的现有分区,将任务按分区分配给多个 worker 节点。一旦数据到达 worker 节点,数据会被多个线程上执行的流水线运算符处理。.[12]
更多信息
参考资料
- ^ Release 463. 2024年10月23日 [2024年10月27日].
- ^ Overview — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2022-10-06).
- ^ 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.
- ^ Hive connector — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2022-10-06).
- ^ Iceberg connector — Trino 393 Documentation. trino.io. [2023-04-17]. (原始内容存档于2023-05-21).
- ^ trinodb/trino LICENSE. Trino. 25 August 2022 [25 August 2022]. (原始内容存档于2023-06-09).
- ^ Presto Software Foundation Launches to Advance Presto Open Source Community. PRWeb. [2019-02-01]. (原始内容存档于2020-04-24).
- ^ Presto's New Foundation Signals Growth for the Big Data SQL Engine. The New Stack. 2019-01-31 [2019-02-01]. (原始内容存档于2019-02-01) (美国英语).
- ^ Traverso, Martin; Sundstrom, Dain; Phillips, David. We’re rebranding PrestoSQL as Trino. trino.io. 27 December 2020 [7 September 2021]. (原始内容存档于2023-03-31) (英语).
- ^ Contributors to trinodb/trino. GitHub. [20 September 2021]. (原始内容存档于2022-10-07) (英语).
- ^ Contributors to prestodb/presto. GitHub. [20 September 2021]. (原始内容存档于2022-10-07) (英语).
- ^ 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.
- ^ 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.