Trino is a distributed SQL query engine designed to query large data sets distributed over one or more heterogeneous data sources.
在 Trino 官方文件中,開頭便定義其為可查詢異質資料源 (heterogeneous data sources) 的 *分散式 SQL 查詢引擎 (distributed SQL query engine),清楚寫明 Trino 與僅能查詢單一資料源的傳統分析倉儲之不同。
*分散式查詢引擎(distributed query engine)
簡單來說,就是可以跨多個節點(node)或伺服器(server)執行SQL查詢的系統。其特性有:
1.透過在多台機器上分配工作來處理大型資料集(dataset)
2.實現平行處理(parallel processing)並提高效能(performance)
但別搞錯,Trino 並不是資料庫 (Database),而是以更有效率查詢如 Hadoop 及 HDFS 在 TB/PB 級別資料量為目標而設計出來的查詢引擎。
相較於 Hive 與 Pig 等這些只為 HDFS 而生的查詢引擎,Trino 可以連接更多種資料源,並透過分散式的特性,解決即時分析 (ad-hoc query) 這種互動式分析需要即時回應的效能問題。
大致了解這隻帶點科技感的兔子的來頭後,就可以來詳談架構細節的部分,我們將 Trino 拆解成最基本的組成元素如下圖,並按圖索驥來說明 Trino 各部件的定位與工作範圍:
集群 (Cluster):
節點 (Node),集群裡的每台伺服器 :
協調者 (Coordinator),集群裡的隊長,負責 :
工作者 (Worker),集群裡的隊員,負責 :
系列文明日《Trino 資料哪裡來》將延續今日內容,深入介紹 Trino 如何存取與管理資料來源,並與 Hadoop 生態系的 Hive 比較,讓 Trino 的特色與定位更為鮮明。
My Linkedin: https://www.linkedin.com/in/benny0624/
My Medium: https://hndsmhsu.medium.com/