2023年6月3日 星期六

Trino: The Definitive Guide

 

崛起於Hadoop生態系的大數據技術,經過不斷地優化、改進終究邁向成熟期。為了讓更多沒有Map/Reduce程式背景的數據分析師與初階工程師親近巨量數據。Hive開了第一槍,它那相容於SQL語法的程式介面,讓使用者「通透」地操作儲放在HDFS中的檔案資料。動態將使用者輸入的SQL指令轉譯成Map/Reduce程式碼並予以執行傳回結果,是實現這神奇魔法背後的咒語。

然而技術演進的巨輪從不停歇,臉書對Hive不適用即時問答的困境(Map/Reduce運算無法達到秒級回應),再開發出Presto(開源後改名為Trino)來改善。得利於高速網路的普及,Trino的架構擺脫Hadoop平台儲存/運算同一體的思維,實踐目前雲端主流的儲存與計算分離設計。Trino會讀取Hive的Schema元數據(Metadata)來進行SQL語法解析,跳過Hive引擎直接向HDFS索取檔案資料,並進行後續的SQL計算產生結果傳回給使用者。純記憶體設計加上平行可擴充的分散式節點,讓Trino成為類似GCP的BigQuery般強大。因為是開源解決方案,而沒有BigQuery依算量計價的費用疑慮。

在應用情境上,除了做為Hive的運算加速器外,受惠於Trino Connector Plugins的模組化設計,它的資料來源不受限於Hive,不論是傳統的RDBMS(PostgreSQL、MySQL)或是noSQL的Redis、ElasticSearch,甚至是雲端平台的檔案系統(AWS S3),在原生的Connector協助下,簡單地調整設定檔內容,魔法棒一閃,全部都可以變成能讓使用者執行SQL指令的資料來源。更令人驚喜地是,這些不同類型的資料源在過程中只扮演提供資料的角色,關聯計算(join)、條件過瀘(where)和彙總計算(group by)都是在Trino上執行,所以跨資料源的關聯計算也就變得理所當然,像美夢成真般,不需要事先建立ETL和資料倉儲,使用者也可以自由連結不同實體來源的資料,來進行深度而複雜的數據探索。

noSQL概念問世後的十幾年,SQL語法不僅沒被消滅,反之由於其易入門且廣泛使用的優勢下,讓更多noSQL得配合SQL提供相容性解法。Trino便是在這大環境下所創作出來的終極解決方案,主打著「SQL on Anywhere」的口號。隨著SQL在數據分析領域的影響力日增,以及Trino這類大數據開源解決方案的成熟與普及,可以想見未來的IT新秀將對Map/Reducer這種非結構化資料處理模型更加陌生,或是以管窺天地認為數據工程/數據分析就是寫出很複雜的SQL。而像Trino這麼強大又開源的產品,將會使得商用的資料倉儲系統相形失色,在市場競爭中逐漸為人淘汱。「Trino: The Definitive Guide」一書,提供讀者最完整可靠的知識,讓所有想導入如同BigQuery一般神奇工具的IT人,有一本快速入門的武功祕籍。

沒有留言:

張貼留言