跳至內容

Trino

維基百科,自由的百科全書
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

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]下發布。


歷史

[編輯]

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. 


外部連結

[編輯]