現代區塊鏈索引新創公司普遍面臨多項挑戰,包括:
隨著區塊鏈技術日益普及,儲存在鏈上的資料量也不斷增加。這是因為使用者規模擴大,每筆交易都會為區塊鏈新增資料。此外,區塊鏈應用已從單純的貨幣轉移(例如比特幣)拓展至在智能合約中實現商業邏輯的複雜應用。這些智能合約產生大量資料,使區塊鏈結構更為複雜且規模日益龐大。
本文將分階段回顧 Footprint Analytics 技術架構的演進,並以此為例,探討 Iceberg-Trino 技術堆疊如何因應鏈上資料的挑戰。
Footprint Analytics 已將約 22 條公鏈資料、17 個 NFT 市場、1,900 個 GameFi 專案及超過 10 萬個 NFT 收藏索引至語意抽象資料層,成為全球最完整的區塊鏈資料倉儲解決方案。
區塊鏈資料涵蓋超過 200 億筆金融交易紀錄,並經常由資料分析師查詢。
為了因應不斷成長的業務需求,過去數月我們完成了 3 次重大升級,包括:
Footprint Analytics 創立初期,我們採用 Google Bigquery 作為儲存與查詢引擎。Bigquery 具備優異效能、操作簡便,並提供動態算術能力與彈性 UDF 語法,協助我們高效率完成工作。
但 Bigquery 也存在一些問題:
因此,我們決定尋找其他替代架構。
我們開始關注數款熱門 OLAP(線上分析處理)產品。OLAP 最大的優勢在於查詢回應速度,通常能在亞秒內回傳大量資料結果,並支援數千筆查詢同時執行。
我們選擇了 Doris 這款頂尖 OLAP 資料庫。雖然表現不俗,但很快遇到以下問題:
因此,我們無法在生產環境中完全採用 Doris 作為整體資料流程,只能將 Doris 作為 OLAP 資料庫,解決部分資料生產流程問題,並作為查詢引擎提供高速且高並發的查詢能力。
然而,我們無法以 Doris 取代 Bigquery,必須定期將資料從 Bigquery 同步至 Doris,僅將 Doris 作為查詢引擎。這個同步過程也存在諸多問題,例如當 OLAP 引擎忙於前端查詢時,資料寫入會快速累積,導致寫入速度受影響、同步時間拉長,甚至有時無法完成。
我們意識到 OLAP 雖能解決部分問題,但無法成為 Footprint Analytics 的一站式解決方案,尤其在資料處理流程方面。我們面臨的問題更大、更複雜,僅以 OLAP 作為查詢引擎遠遠不夠。
Footprint Analytics 架構 3.0 正式登場,這是底層架構的全面重構。我們從零開始設計,將資料儲存、運算與查詢分為三大獨立部分,並汲取 Footprint Analytics 早期架構的經驗,同時參考 Uber、Netflix、Databricks 等大型數據專案的成功案例。
我們首先將重心放在資料湖,這是一種適用於結構化及非結構化資料的新型儲存方式。資料湖非常適合存放鏈上資料,因為鏈上資料格式多元,涵蓋非結構化原始資料以及 Footprint Analytics 著名的結構化抽象資料。藉由資料湖,我們期望能解決資料儲存問題,並支援 Spark、Flink 等主流運算引擎,未來 Footprint Analytics 成長時,整合不同型態處理引擎不會產生額外障礙。
Iceberg 能與 Spark、Flink、Trino 及其他運算引擎高度整合,讓我們可針對每項指標選擇最合適的運算方式。例如:
Iceberg 解決了儲存與運算問題,接下來需考慮查詢引擎的選擇。可選方案有限,主要包括:
在深入研究之前,我們最重視的是未來查詢引擎必須與現有架構相容。
基於上述考量,我們選擇了 Trino。Trino 對 Iceberg 支援度高,開發團隊回應極快,我們回報的 bug 隔天即修復,並於次週釋出新版。對於需要高度回應能力的 Footprint 團隊來說,這無疑是最佳選擇。
方向確定後,我們便針對 Trino+Iceberg 組合進行效能測試,檢驗其是否符合理想需求。令人驚訝的是,其查詢速度極快。
多年來,Presto+Hive 一直被認為是 OLAP 領域效能最差的組合,但 Trino+Iceberg 完全顛覆了我們的認知。
我們的測試結果如下:
範例 1:連接大型資料集
將一個 800 GB 的表 1 與另一個 50 GB 的表 2 連接,並執行複雜業務運算。
範例 2:大表單執行非重複查詢
測試用 SQL:從表中依日期分組選取不同地址

Trino+Iceberg 組合在相同配置下,速度約為 Doris 的 3 倍。
此外,Iceberg 可採用 Parquet、ORC 等資料格式進行壓縮儲存。Iceberg 表格儲存空間僅為其他資料倉儲的約 1/5,三款資料庫相同表格的儲存大小如下:

註:上述測試皆為實際生產案例,僅供參考。
效能測試報告證明我們具備足夠性能,團隊因此花了約 2 個月完成遷移。以下為升級後的架構圖:

自 2021 年 8 月推出以來,Footprint Analytics 團隊在不到一年半內完成三次架構升級,這歸功於團隊致力於為加密貨幣用戶帶來頂尖資料庫技術優勢的渴望與決心,以及在底層基礎設施與架構升級上的卓越表現。
Footprint Analytics 架構 3.0 升級為用戶帶來嶄新體驗,讓不同背景的使用者能深入探索多元用途及場景: