Jax
Jax Liu 劉家瑄,現職為 Canner 易開科技的資料工程師。致力於資料處理系統的研究與開發,曾作為 Apache Spark 的貢獻者(ex: SPARK-21513),現今主要活動於 Trino 社群。
Session
在資料爆炸的時代,資料處理分析引擎與工具如雨後春筍般冒出。從基礎設施的資料庫、資料倉儲到資料湖;各式資料轉換的 ETL 工具與查詢引擎:終端資料視覺化呈現的 BI 報表工具,讓資料分析工程愈加繁複。作為資料處理系統最重要的事情就是如何讓處理的結果正確與快速地送到使用者的手上,在如今工具種類繁複的時代,這件事變成了一個複雜且嚴峻的挑戰。Canner作為一個致力於加速資料調用的團隊,我們使用了 Trino (過去稱為 Presto) 來快速連結各種資料源,其很完美地整合了各大資料平台,但在試圖連結各種工具軟體時,我們碰到了很大的挑戰。
因此我們選擇了擁抱 PostgreSQL 生態圈,PostgreSQL 作為發展悠久的關聯式資料庫系統,其擁有大量的使用者與完整的社群生態圈。我們實作了 Postgres Wire Protocol 讓 Trino 可以被客戶端識別為 PostgreSQL 來使用,這樣單純的想法讓我們能夠支援的工具軟體一口氣地快速擴張出去。從程式開發人員最普遍使用的 JDBC 或是 ODBC;資料庫人員常用的 IDE ,Dbeaver、TablePlus 或 DataGrip 等;到業務決策人員需要的 BI 工具,Tableau 與 PowerBI。
在這次的議程中,我們將會介紹 Postgres Wire Protocol 的運作原理,並分享我們在進行 Trino SQL 與 PostgreSQL 相容時所碰到議題與我們的解決方法。最後的目標是創立一個開源專案,將我們的成果回饋於社群,並且讓 Postgres Wire Protocol 不只適用於 Trino ,更可以應用到更多的查詢引擎上,使資料調用不再是件困難的挑戰。