大家好,短視頻軟件,快手現(xiàn)在風(fēng)頭正盛,面對(duì)如此大的用戶量,今天帶來 《Clickhouse在快手的架構(gòu)和技術(shù)內(nèi)幕》
先說下Clickhouse - 越來越多的新型OLAP數(shù)據(jù)庫涌現(xiàn),無論是 Clickhouse還是Apache Doris都在逐漸變得流行。其背后一定是有原因的。
Hadoop那套組件眾多,運(yùn)維壓力越來越大,因此新型OLAP相對(duì)不依賴hadoop生態(tài),簡介的架構(gòu)的特性就很吸引人。
ClickHouse 是俄羅斯Yandex在2016年開源的性能分析型SQL數(shù)據(jù)庫,主要面向OLAP場(chǎng)景。開源之后,憑借優(yōu)異的查詢性能,受到業(yè)界的青睞。
官網(wǎng)風(fēng)格清新
直觀感受有多快:
如圖一,clickhouse官網(wǎng)做了很多壓測(cè),比較了 MySQL、hive、greenplum、vertica、clickhouse
clickhouse 比 hive 快百倍(這個(gè)很正常,大家都想得到),而比 vertica 快幾倍,比 greenplum 20倍左右。
快的一騎絕塵
Clickhouse的快速主要是因?yàn)?存儲(chǔ)和計(jì)算都快,這里有一些關(guān)鍵特性。
圖二:存儲(chǔ)快速的原因: 主鍵存儲(chǔ)、列式、塊索引、數(shù)據(jù)分區(qū)、本機(jī)存儲(chǔ)、多重索引
圖三:計(jì)算快速的原因: 分布式、多線程、向量化、LLVM、RuntimeCodegen
快手使用Clickhouse的規(guī)模,截至2019年底。 (圖四)
- 存儲(chǔ)了 10PB數(shù)據(jù);
- 每天新增200TB數(shù)據(jù);
- 每天查詢 50w;
- 查詢的時(shí)延(P90) < 3s
快手使用Clickhouse的場(chǎng)景:
這個(gè)都比較常見,無非是 BI系統(tǒng)、報(bào)表系統(tǒng)、監(jiān)控系統(tǒng)、ABTEST和用戶分析系統(tǒng)
(小編注:
- 報(bào)表系統(tǒng)一般指的是傳統(tǒng)的、類似Excel的多表頭復(fù)雜中國式報(bào)表,一般每一個(gè)單元格都是有單獨(dú)計(jì)算邏輯;
- BI一般是在數(shù)據(jù)倉庫建設(shè)完成后,可以通過BI軟件自助分析的圖表;
- 監(jiān)控系統(tǒng)一般是一個(gè)酷炫的大屏)
圖五,快手Clickhouse的部署架構(gòu);
多集群是必須的,通過一個(gè)路由進(jìn)行分流,做一些類似“切面”“網(wǎng)關(guān)”做的工作。
數(shù)據(jù)則是通過 mapreduce(無論是 hive、sparksql 還是其他) 和 flink 進(jìn)入clickhouse。
Clickhouse在單表的情況下性能比多表join好很多,快手因此總結(jié)了一些最佳實(shí)踐。見圖六。
如果是普通企業(yè),到此也差不多了,快手由于業(yè)務(wù)量大,仍遇到了一些問題難以解決,針對(duì)問題,快手提出了Clickhouse on Hdfs 的方案,即存儲(chǔ)和計(jì)算分離,存儲(chǔ)使用hadoop hdfs。自己基于接口重寫了 HdfsMergeTree實(shí)現(xiàn)。
架構(gòu)示意
自研HdfsMergeTree 存儲(chǔ)引擎
具體涉及的優(yōu)化點(diǎn)很多,細(xì)節(jié)相對(duì)有深度,這里就不多說了,看一下圖九的總結(jié)。
歡迎 點(diǎn)贊、轉(zhuǎn)發(fā) !
您的支持是我更新的動(dòng)力!