Presto在B站的性能優(yōu)化與實(shí)踐

隨著大數(shù)據(jù)時(shí)代的到來(lái),Presto作為一款高性能的分布式SQL查詢引擎,在B站得到了廣泛的應(yīng)用。本文將詳細(xì)介紹Presto在B站的性能優(yōu)化實(shí)踐,包括Presto集群的現(xiàn)狀、Local Cache的優(yōu)化、Index的改進(jìn)以及后續(xù)的工作計(jì)劃。

一、Presto集群現(xiàn)狀

B站的Presto集群每天處理約30萬(wàn)次查詢,每天處理約20PB的數(shù)據(jù),擁有超過(guò)1200個(gè)Worker節(jié)點(diǎn),分布在兩個(gè)IDC的六個(gè)集群中。當(dāng)前使用的Presto版本為330。

二、Presto Local Cache優(yōu)化

為了解決查詢不穩(wěn)定、熱表反復(fù)查詢以及網(wǎng)絡(luò)傳輸問(wèn)題,B站對(duì)Presto Local Cache進(jìn)行了優(yōu)化。通過(guò)開(kāi)發(fā)標(biāo)記服務(wù),將適合緩存的分區(qū)進(jìn)行標(biāo)記,并在構(gòu)建split時(shí)識(shí)別這些分區(qū)。同時(shí),引入了基于版本的元數(shù)據(jù)緩存、FileStatus cache、HDFS數(shù)據(jù)緩存到worker的SSD中、Worker緩存orc/parquet的footer信息等優(yōu)化措施。

三、Presto Index改進(jìn)

針對(duì)ORC/parquet內(nèi)嵌index少的問(wèn)題,B站實(shí)現(xiàn)了index語(yǔ)法,構(gòu)建index數(shù)據(jù),并寫入到Hdfs中進(jìn)行持久化。通過(guò)Coordinator側(cè)source split調(diào)度利用index進(jìn)行過(guò)濾,Worker側(cè)在讀orc文件時(shí),根據(jù)index過(guò)濾stripe或者具體的行數(shù)據(jù)。同時(shí),支持了BitMap Index、Bloomfilter Index和Min-Max Index等多種索引類型。

四、后續(xù)工作計(jì)劃

B站計(jì)劃支持物化列的讀寫、物化視圖提升查詢性能以及探索Native engine等后續(xù)工作。

總之,B站在Presto的性能優(yōu)化方面取得了顯著的成果,為用戶提供更加穩(wěn)定、高效的查詢服務(wù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容