火山引擎ByteHouse發布白皮書 揭秘企業級ClickHouse優化與改進過程
ClickHouse 開源于 2016 年,憑借性能方面的突出優勢,在分析型數據庫領域發展可謂風生水起。目前,國內外許多頭部大廠都在深度使用 ClickHouse 技術。
作為 ClickHouse 深度用戶,字節跳動擁有國內規模最大的 ClickHouse 集群。目前,字節跳動數據節點總數超過1.8萬個,管理總數據量超過 700PB,最大的單個集群部署規模約為2400余個節點。
《從ClickHouse到ByteHouse》白皮書客觀分析了當前 ClickHouse 作為一款優秀的開源 OLAP 數據庫所展示出來的技術性能特點與其典型的應用場景。
但是將 ClickHouse 引入企業級生產環境中,仍然存在許多實際問題。這也是火山引擎ByteHouse團隊撰寫《從ClickHouse到ByteHouse》白皮書核心出發點:深度還原字節跳動在大規模引入 ClickHouse 于業務實際生產環境所遇到的問題與解法,希望能給企業用戶帶來一些參考與啟發。
白皮書顯示,當字節跳動內部有越來越多的場景逐步深入使用ClickHouse之后,字節跳動也遇到了集群穩定性、應用場景使用限制等問題。因此,字節跳動對ClickHouse做了大量的深度優化與自研改造的工作,慢慢沉淀出了ByteHouse。
《從ClickHouse到ByteHouse》白皮書重點介紹了, ByteHouse 在 ClickHouse 上所做的三個重要方面優化與升級:自研表引擎、查詢優化器、彈性可擴展。
在自研表引擎模塊,盡管ClickHouse 提供 MergeTree Family、Memory、File、Interface 等幾十種不同的表引擎,但是在字節內部實際使用中,還是明顯感覺到了一些表引擎不足以滿足業務的使用需求,于是進行了相應的優化。白皮書則重點介紹 HaMergeTree 、HaUniqueMergeTree、HaKafka 三種表引擎。
在查詢優化器模塊,ByteHouse對Optimizer進行了一年多的改造投入,全面升級產品能力。白皮書詳細列舉了ByteHouse在查詢優化器上的改造與優化功能。
為了追求極致性能,ClickHouse 采用的是計算和存儲節點強耦合的架構,不能根據各自實際需求分開擴容, 而且在節點擴展后數據無法自動重新分布的問題給ClickHouse擴展帶來很多運維的麻煩。ByteHouse 在改進與優化ClickHouse的過程中,也重點基于該架構進行了調整。白皮書重點介紹了,ByteHouse 在存儲和計算上的拆解解耦,實現彈性可擴展的技術優化方案。
與此同時,《從ClickHouse到ByteHouse》白皮書還重點列舉在廣告、金融、工業互聯網三大行業的實踐案例,這些都屬于 OLAP 的典型應用行業,并從技術與企業落地等角度給出了當下企業在OLAP數據引擎選型的三個核心關注點。
目前,ByteHouse已通過火山引擎提供商業化服務,為客戶帶來極致性能、架構領先的企業級分析型數據庫服務與技術支持。