現代區塊鏈索引初創公司可能面臨幾個挑戰,包括:
在本文中,我們分階段回顧了Footprint Analytics技術架構的演變,並以此為例,探討了Iceberg-Trino技術堆棧如何應對鏈上數據的挑戰。
Footprint Analytics已經將大約22個公鏈數據、17個NFT市場、1900個GameFi項目和超過10萬個NFT集合索引到語義抽象數據層中。它是世界上最全面的區塊鏈數據倉庫解決方案。
區塊鏈數據包括超過200億行的金融交易記錄,經常被數據分析師查詢。
為滿足不斷增長的業務需求,在過去的幾個月中,我們進行了3次重大升級,包括:
在Footprint Analytics最初,我們使用谷歌Bigquery作為我們的存儲和查詢引擎。Bigquery是一個很棒的產品,它速度極快,易於使用,並提供動態算術能力和靈活的UDF語法,能夠幫助我們快速完成工作。
然而,Bigquery也存在一些問題。
我們對一些非常流行的OLAP(聯機分析處理)產品感興趣,OLAP最吸引人的優勢是它的查詢響應時間,通常能在亞秒內返回大量數據的查詢結果,並且還支持數千個同時查詢。
我們選擇了最好的OLAP數據庫之一Doris。這個引擎表現不錯,但我們很快遇到了一些其他問題:
然而,我們無法用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+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升級為用戶帶來了全新的體驗,讓具有不同背景的用戶能夠深入瞭解更多樣化的用途和使用場景:
現代區塊鏈索引初創公司可能面臨幾個挑戰,包括:
在本文中,我們分階段回顧了Footprint Analytics技術架構的演變,並以此為例,探討了Iceberg-Trino技術堆棧如何應對鏈上數據的挑戰。
Footprint Analytics已經將大約22個公鏈數據、17個NFT市場、1900個GameFi項目和超過10萬個NFT集合索引到語義抽象數據層中。它是世界上最全面的區塊鏈數據倉庫解決方案。
區塊鏈數據包括超過200億行的金融交易記錄,經常被數據分析師查詢。
為滿足不斷增長的業務需求,在過去的幾個月中,我們進行了3次重大升級,包括:
在Footprint Analytics最初,我們使用谷歌Bigquery作為我們的存儲和查詢引擎。Bigquery是一個很棒的產品,它速度極快,易於使用,並提供動態算術能力和靈活的UDF語法,能夠幫助我們快速完成工作。
然而,Bigquery也存在一些問題。
我們對一些非常流行的OLAP(聯機分析處理)產品感興趣,OLAP最吸引人的優勢是它的查詢響應時間,通常能在亞秒內返回大量數據的查詢結果,並且還支持數千個同時查詢。
我們選擇了最好的OLAP數據庫之一Doris。這個引擎表現不錯,但我們很快遇到了一些其他問題:
然而,我們無法用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+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升級為用戶帶來了全新的體驗,讓具有不同背景的用戶能夠深入瞭解更多樣化的用途和使用場景: