

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Trino 歷史記錄和設計
<a name="emr-trino-intro-history"></a>

Trino 專門用於查詢來自許多不同來源的大型資料集。Trino 可以在傳統的大數據使用案例中存取和查詢 HDFS，但也可以查詢其他來源，例如關聯式資料庫和 NoSQL 資料庫。Trino 最初在 2019 年以 Presto 查詢引擎的分支開始。從那時起，它已經獨立於 Presto 程式碼庫進行開發。

如需 Trino 查詢引擎及其使用方式的詳細資訊，請參閱 [Trino 網站](https://trino.io/)。若要讀取 Trino 來源文件，請參閱 [Trino 概觀](https://trino.io/docs/current/overview.html)。

## 架構概念
<a name="emr-trino-intro-architecture"></a>

Trino 可以執行快速且有效率的查詢，因為它會跨叢集平行處理資料。它旨在查詢資料湖，因為它專門用於大型資料磁碟區的查詢，通常在涉及 Hadoop 和 HDFS 的使用案例中。但它也可以查詢傳統的關聯式資料庫。如需詳細資訊，請參閱 *Trino 文件*中的[架構](https://trino.io/docs/current/overview/concepts.html#architecture)。

### Trino 的元件
<a name="emr-trino-key-components"></a>

Trino 有一些關鍵架構元件，可共同運作，讓查詢快速執行。當您微調叢集以獲得更好的效能時，了解這些功能會很有幫助：
+ **協調器**負責查詢協調。它會剖析和最佳化傳入的 SQL 查詢、產生執行計劃、將任務指派給工作者節點，以及收集和組合查詢結果。此外，它會監控資源用量並追蹤工作者節點的狀態。如需詳細資訊，請參閱 *Trino 文件*中的 [Coordinator](https://trino.io/docs/current/overview/concepts.html#coordinator)。
+ **工作者節點**會處理查詢的資料處理。在協調器指派任務之後，工作者會擷取資料、執行必要的操作，例如聯結和彙總，以及與其他工作者交換中繼資料。如需詳細資訊，請參閱 *Trino 文件*中的[工作者](https://trino.io/docs/current/overview/concepts.html#worker)。
+ **連接器**是外掛程式，可讓 Trino 與 連線並查詢各種資料來源。每個連接器都知道如何從其來源存取和擷取資料，例如 Amazon S3、Apache Hive 或關聯式資料庫。這些連接器會將來源資料映射至 Trino 的結構描述結構。
+ **目錄**是與特定連接器相關聯的結構描述和資料表的邏輯集合。在協調器中定義的目錄可讓 Trino 將不同的資料來源視為單一命名空間。這使得使用者可以在同一查詢中以統一的方式一起查詢多個來源，例如 Hive 和 MySQL。
+ Trino CLI 等**用戶端**會透過 JDBC 和 ODBC 驅動程式連接至 Trino 協調器，以提交 SQL 查詢。協調器會管理查詢生命週期，將結果提供給用戶端，以供進一步分析或報告。

### 執行查詢
<a name="emr-trino-queries"></a>

若要了解 Trino 如何採用 SQL 陳述式並將其作為查詢執行，請參閱 [Trino 文件中的 Trino 概念](https://trino.io/docs/current/overview/concepts.html#query-execution-model)。 **