在群雄逐鹿的 OLAP 數(shù)據(jù)庫(kù)市場(chǎng),開(kāi)源引擎 ClickHouse 憑借其出色的性能成為公認(rèn)的黑馬。官方稱其性能超過(guò)了市場(chǎng)上同類的列式數(shù)據(jù)庫(kù),每臺(tái)服務(wù)器每秒可處理數(shù)億到超過(guò)十億行、體積達(dá)數(shù)十 GB 的數(shù)據(jù),運(yùn)行速度比傳統(tǒng)數(shù)據(jù)庫(kù)快 100-1000 倍。
高效運(yùn)行速度的另一面,還隱含著成本、性能、容量等諸多問(wèn)題,比如不支持事務(wù),不能夠保證數(shù)據(jù)的一致性和完整性,不存在隔離級(jí)別,不支持高并發(fā)等等。這導(dǎo)致 2016 年開(kāi)源的 ClickHouse 難以應(yīng)對(duì)當(dāng)下更加復(fù)雜,數(shù)據(jù)規(guī)模更加巨大的場(chǎng)景需求。
比如在字節(jié)內(nèi)部,從 2018 年引入 ClickHouse,因?yàn)闃I(yè)務(wù)的發(fā)展,要服務(wù)于大量的用戶,數(shù)據(jù)規(guī)模變得越來(lái)越巨大。由于 ClickHouse 是 Shared-Nothing 的架構(gòu),每個(gè)節(jié)點(diǎn)是獨(dú)立的,不會(huì)共享存儲(chǔ)資源等,因而計(jì)算資源和存儲(chǔ)資源是緊耦合的。這導(dǎo)致擴(kuò)縮容成本變高,且會(huì)涉及到數(shù)據(jù)遷移,不能實(shí)時(shí)按需的擴(kuò)縮容,從而導(dǎo)致資源的浪費(fèi)。此外,ClickHouse 的緊耦合的架構(gòu)會(huì)導(dǎo)致多租戶在共享集群相互影響,另外由于讀寫(xiě)在一個(gè)節(jié)點(diǎn)完成,導(dǎo)致讀寫(xiě)受到影響,最后 ClickHouse 在復(fù)雜查詢上例如多表 join 等的性能支持并不是很好。
字節(jié) ClickHouse 使用情況
為了解決這些痛點(diǎn),字節(jié)在 ClickHouse 架構(gòu)基礎(chǔ)上進(jìn)行了升級(jí),于 2020 年在內(nèi)部啟動(dòng)了 ByConity 項(xiàng)目,并于 2023 年 1 月發(fā)布 Beta 版本,將于 5 月底正式對(duì)外開(kāi)源。
ByConity 是一個(gè)開(kāi)源的云原生數(shù)據(jù)倉(cāng)庫(kù),采用存儲(chǔ) - 計(jì)算分離的架構(gòu)。它支持多個(gè)關(guān)鍵功能特性,如存儲(chǔ)計(jì)算分離、彈性擴(kuò)縮容、租戶資源隔離和數(shù)據(jù)讀寫(xiě)的強(qiáng)一致性等。通過(guò)利用主流的 OLAP 引擎優(yōu)化,如列存儲(chǔ)、向量化執(zhí)行、MPP 執(zhí)行、查詢優(yōu)化等,ByConity 可以提供優(yōu)異的讀寫(xiě)性能。
ByConity 的架構(gòu)分為三層,如下圖所示,服務(wù)接入層包含負(fù)責(zé)客戶端數(shù)據(jù)和服務(wù)的接入,也就是 ByConity Server;計(jì)算組為 ByConity 的計(jì)算資源層,每個(gè) Virtual Warehouse 是一個(gè)計(jì)算組;數(shù)據(jù)存儲(chǔ)層由分布式文件系統(tǒng),如 HDFS、S3 等構(gòu)成。
ByConity 三層技術(shù)架構(gòu)圖
除了兼?zhèn)?ClickHouse 的一些優(yōu)點(diǎn)外,ByConity 還實(shí)現(xiàn)了了諸多新的功能。
ByConity 的一個(gè)重要優(yōu)勢(shì)是存儲(chǔ)-計(jì)算分離的架構(gòu),它實(shí)現(xiàn)了讀寫(xiě)分離和彈性擴(kuò)縮容。它的優(yōu)勢(shì)是高彈性和高擴(kuò)展性。這種架構(gòu)確保讀操作和寫(xiě)操作不會(huì)相互影響,使得計(jì)算資源和存儲(chǔ)資源解耦,兩者可以按需的且獨(dú)立的擴(kuò)縮容,確保資源高效利用。此外,ByConity 支持多租戶資源隔離功能,保證不同租戶之間不會(huì)互相影響,使 ByConity 適用于多租戶環(huán)境,如圖 2。
ByConity 存儲(chǔ) - 計(jì)算分離,實(shí)現(xiàn)多租戶隔離
ByConity 支持彈性的擴(kuò)縮容,能夠?qū)崟r(shí)、按需的對(duì)計(jì)算資源進(jìn)行擴(kuò)縮容,保證資源的高效利用。并且它能對(duì)不同的租戶進(jìn)行資源的隔離,租戶之間不會(huì)受到相互影響。其另一個(gè)重要功能是數(shù)據(jù)讀寫(xiě)的強(qiáng)一致性,確保數(shù)據(jù)始終是最新的,讀寫(xiě)之間沒(méi)有不一致。此外,ByConity 采用了主流的 OLAP 引擎優(yōu)化,例如列存、向量化執(zhí)行、MPP 執(zhí)行、查詢優(yōu)化等,來(lái)保證提供了優(yōu)異的讀寫(xiě)性能。
之所以采用開(kāi)源的模式,ByConity 項(xiàng)目組是希望能夠把項(xiàng)目回饋給社區(qū),同時(shí)也希望通過(guò)社區(qū)的力量加強(qiáng)和完善 ByConity。接下來(lái),ByConity 在 2023 開(kāi)源社區(qū)發(fā)展規(guī)劃中,希望增強(qiáng) ByConity 的功能、性能和易用性,重點(diǎn)關(guān)注開(kāi)發(fā)新的存儲(chǔ)引擎、支持更多的數(shù)據(jù)類型和與其他數(shù)據(jù)管理工具的集成領(lǐng)域。
5 月 28 日,字節(jié)跳動(dòng)分析型數(shù)據(jù)庫(kù)負(fù)責(zé)人陳星將出席 GOTC 2023 “數(shù)據(jù)與數(shù)據(jù)庫(kù)技術(shù)” 分論壇,并擔(dān)任講師,帶來(lái)《ByConity: 分析型數(shù)據(jù)庫(kù)技術(shù)創(chuàng)新與開(kāi)放之路》主題演講,詳解 ByConity 中的關(guān)鍵技術(shù)選擇,分享 ByConity 開(kāi)源與開(kāi)放背后的故事。
敬請(qǐng)期待!
全球開(kāi)源技術(shù)峰會(huì)(Global Open-source Technology Conference),簡(jiǎn)稱 GOTC,是由開(kāi)放原子開(kāi)源基金會(huì)、上海浦東軟件園、Linux 基金會(huì)亞太區(qū)和開(kāi)源中國(guó)聯(lián)合發(fā)起的,面向全球開(kāi)發(fā)者的一場(chǎng)盛大開(kāi)源技術(shù)盛宴。
5 月 27 日至 28 日,GOTC 2023 將于上海舉辦為期 2 天的開(kāi)源行業(yè)盛會(huì)。大會(huì)將以行業(yè)展覽、主題發(fā)言、專題論壇、開(kāi)源市集的形式展現(xiàn),與會(huì)者將一起探討元宇宙、3D 與游戲、eBPF、Web3.0、區(qū)塊鏈等熱門(mén)技術(shù)主題,以及開(kāi)源社區(qū)、AIGC、汽車軟件、AI 編程、開(kāi)源教育培訓(xùn)、云原生等熱門(mén)話題,探討開(kāi)源未來(lái),助力開(kāi)源發(fā)展。
GOTC 2023報(bào)名通道現(xiàn)已開(kāi)啟,誠(chéng)邀全球各技術(shù)領(lǐng)域開(kāi)源愛(ài)好者共襄盛舉!
(免責(zé)聲明:本網(wǎng)站內(nèi)容主要來(lái)自原創(chuàng)、合作伙伴供稿和第三方自媒體作者投稿,凡在本網(wǎng)站出現(xiàn)的信息,均僅供參考。本網(wǎng)站將盡力確保所提供信息的準(zhǔn)確性及可靠性,但不保證有關(guān)資料的準(zhǔn)確性及可靠性,讀者在使用前請(qǐng)進(jìn)一步核實(shí),并對(duì)任何自主決定的行為負(fù)責(zé)。本網(wǎng)站對(duì)有關(guān)資料所引致的錯(cuò)誤、不確或遺漏,概不負(fù)任何法律責(zé)任。
任何單位或個(gè)人認(rèn)為本網(wǎng)站中的網(wǎng)頁(yè)或鏈接內(nèi)容可能涉嫌侵犯其知識(shí)產(chǎn)權(quán)或存在不實(shí)內(nèi)容時(shí),應(yīng)及時(shí)向本網(wǎng)站提出書(shū)面權(quán)利通知或不實(shí)情況說(shuō)明,并提供身份證明、權(quán)屬證明及詳細(xì)侵權(quán)或不實(shí)情況證明。本網(wǎng)站在收到上述法律文件后,將會(huì)依法盡快聯(lián)系相關(guān)文章源頭核實(shí),溝通刪除相關(guān)內(nèi)容或斷開(kāi)相關(guān)鏈接。 )