多年前逛論壇的時(shí)候,看到一首詩(shī),印象深刻:凡事莫問(wèn)我,問(wèn)我也茫然。我若知道路,不站幾千年。詩(shī)人登山,或許當(dāng)時(shí)有所困惑,忽然見到石人指路的雕像有感而發(fā),頗有哲思,前方的路終究是要靠自己腳踏實(shí)地走出來(lái)。
對(duì)于一直從事國(guó)產(chǎn)數(shù)據(jù)庫(kù)的人而言大概會(huì)有一種心有戚戚焉的感受,國(guó)產(chǎn)數(shù)據(jù)庫(kù)的發(fā)展之路并不容易,伴隨著質(zhì)疑與爭(zhēng)議,如今迎來(lái)春天,百花齊放,這條路都是腳踏實(shí)地踩坑走出來(lái)的。
鼎石科技COO葉謙
在今年,新一代MPP數(shù)據(jù)庫(kù)廠商鼎石科技也迎來(lái)了自己新的發(fā)展階段,產(chǎn)品由原DorisDB更名為StarRocks,并宣布全面開源,此舉引發(fā)業(yè)內(nèi)討論。在日前DTCC2021中國(guó)數(shù)據(jù)庫(kù)技術(shù)大會(huì)之際,IT168采訪了鼎石科技COO葉謙,我們聊了聊StarRocks的定位以及數(shù)據(jù)庫(kù)技術(shù)的發(fā)展。
關(guān)于StarRocks源碼開放
2021年9月8日,成立一年多的鼎石科技宣布將核心產(chǎn)品DorisDB升級(jí)為StarRocks,并全面開源。新名“StarRocks”由星星“Star”和石頭“Rocks”組成,被團(tuán)隊(duì)寄予了美好的期望,意為仰望星空的同時(shí),腳踏實(shí)地走路。此舉卻引發(fā)了業(yè)內(nèi)廣泛討論關(guān)注,比如StarRocks與Apache Doris是怎樣的關(guān)系?StarRocks為什么采用Elastic License 2.0(簡(jiǎn)稱ELv2)許可證?
在創(chuàng)業(yè)之初,StarRocks團(tuán)隊(duì)成員幾乎都來(lái)自Apache Doris,所以在給項(xiàng)目起名時(shí)參考了之前PrestoDB的做法,取名DorisDB。并且在中國(guó)、美國(guó)和日本都注冊(cè)了商標(biāo)。然而此舉影響了Apache Doris項(xiàng)目畢業(yè),所以后來(lái)產(chǎn)品更名為StarRocks。
葉謙告訴IT168,Apache Doris可以看作是StarRocks的上游項(xiàng)目,StarRocks創(chuàng)始團(tuán)隊(duì)曾經(jīng)深度參與了Apache Doris的項(xiàng)目建設(shè),公司有四位員工是Apache Doris PPMC成員。據(jù)悉,鼎石科技公司大概有17位員工之前曾經(jīng)參與過(guò)Apache Doris的開發(fā),貢獻(xiàn)了約30萬(wàn)行代碼。目前StarRocks代碼量大概有80萬(wàn),其中約33萬(wàn)行代碼繼承自Apache Doris項(xiàng)目,剩下的47萬(wàn)行都是StarRocks自研。
關(guān)于代碼許可證,葉謙強(qiáng)調(diào):“鼎石科技作為一家商業(yè)化的公司,肯定是要追求商業(yè)上的成功。源代碼開放和商業(yè)上的成功從表面上看起來(lái)是兩件相互矛盾的事情,特別是在云廠商已經(jīng)形成一股強(qiáng)大力量的今天。”他介紹,在鼎石科技之前,已經(jīng)有不少先行者在源代碼開放以及商業(yè)化之間的平衡進(jìn)行了很多探索和嘗試。比如說(shuō)Databricks,他們有完全開源的產(chǎn)品Apache Spark,使用Apache協(xié)議,也有閉源的商業(yè)化產(chǎn)品Photon,其商業(yè)化成功靠的是Photon的性能大幅領(lǐng)先Apache Spark。這種開放模式可以稱為“弱內(nèi)核+寬松協(xié)議”。還有一種類型,比如說(shuō)MongoDB,他們開放源代碼的內(nèi)核就是最好的,普通用戶可以免費(fèi)使用,但為了防止云廠商直接商業(yè)化,堵了MongoDB商業(yè)化之路,所以MongoDB只能使用SSPL這樣比較嚴(yán)格協(xié)議,即采用一種“強(qiáng)內(nèi)核+嚴(yán)格協(xié)議”的開放模式。
“我們?cè)诳紤]開放和商業(yè)化這兩件事情的時(shí)候,更多在考慮如何讓普通用戶更容易地具備最強(qiáng)的數(shù)據(jù)分析能力。當(dāng)然,我們也需要商業(yè)上的成功來(lái)持續(xù)為客戶提供有價(jià)值的產(chǎn)品。所以我們最后選擇使用ELv2協(xié)議來(lái)開放我們的源代碼。”葉謙指出,StarRocks采用的是類似于MongoDB的“強(qiáng)內(nèi)核+嚴(yán)格協(xié)議”開放模式。
未來(lái),StarRocks將有兩條商業(yè)化路徑:一是,StarRocks會(huì)提供一個(gè)具備更多企業(yè)級(jí)功能的企業(yè)版,包括更多的企業(yè)級(jí)運(yùn)維工具,安全性和權(quán)限控制,資源隔離等功能;此外,StarRocks還會(huì)推出一個(gè)純?cè)圃陌姹?,和公有云廠商一起合作,直接為客戶提供全托管的彈性服務(wù)。
新一代MPP數(shù)據(jù)庫(kù)有啥不一樣?
北京鼎石縱橫科技有限公司于2019年開始籌建,公司的成員均來(lái)自百度,阿里,微軟,美團(tuán),京東,小米,字節(jié)跳動(dòng)等互聯(lián)網(wǎng)頭部公司的基礎(chǔ)架構(gòu)和大數(shù)據(jù)團(tuán)隊(duì),其核心產(chǎn)品StarRocks定位為新一代極速M(fèi)PP分析型數(shù)據(jù)庫(kù)系統(tǒng)。新一代MPP數(shù)據(jù)庫(kù)有啥不一樣?
技術(shù)的發(fā)展離不開需求的推動(dòng),在數(shù)據(jù)驅(qū)動(dòng)時(shí)代,OLAP場(chǎng)景下的數(shù)據(jù)分析和查詢扮演著越來(lái)越重要的角色,指導(dǎo)企業(yè)組織經(jīng)營(yíng)決策,傳統(tǒng)的分析架構(gòu)也面臨著一些待解的難題。比如數(shù)據(jù)分析性能不達(dá)標(biāo)、數(shù)據(jù)分析的靈活性不足、數(shù)據(jù)架構(gòu)復(fù)雜度太高、數(shù)據(jù)分析能力彈性不足等。
以數(shù)據(jù)分析性能為例,隨著數(shù)據(jù)驅(qū)動(dòng)的深入,業(yè)務(wù)提出了更多的分析需求,比如多維分析,實(shí)時(shí)分析,高并發(fā)查詢和Adhoc查詢。在很多分析需求場(chǎng)景下,當(dāng)前系統(tǒng)性能表現(xiàn)不佳。葉謙介紹,近幾年實(shí)時(shí)的分析場(chǎng)景如實(shí)時(shí)用戶畫像,做實(shí)時(shí)推薦,或者風(fēng)控類實(shí)時(shí)場(chǎng)景需求更加凸顯。而隨著數(shù)字化轉(zhuǎn)型的不斷深入,企業(yè)要達(dá)到全員數(shù)據(jù)驅(qū)動(dòng),數(shù)據(jù)分析從服務(wù)管理人員到服務(wù)企業(yè)全員發(fā)展,需要高并發(fā)支持。
葉謙介紹,傳統(tǒng)的MPP數(shù)據(jù)庫(kù)數(shù)據(jù)存儲(chǔ)和分析架構(gòu)存在一些短板,傳統(tǒng)MPP架構(gòu)采用均勻分布的方式來(lái)做數(shù)據(jù)存儲(chǔ),在擴(kuò)容的時(shí)候成本很高,導(dǎo)致無(wú)法支撐很大的數(shù)據(jù)規(guī)模,而且數(shù)據(jù)重新分布時(shí)對(duì)計(jì)算CPU帶寬影響很大,幾乎都需要停服務(wù)。此外,傳統(tǒng)的MPP數(shù)據(jù)庫(kù)對(duì)向量化技術(shù)采用比較少,導(dǎo)致其查詢速度沒有那么快,無(wú)法響應(yīng)現(xiàn)在越來(lái)越多的各類場(chǎng)景需求。
在解決以上問(wèn)題時(shí),StarRocks做了很多創(chuàng)新工作,這也是新一代MPP數(shù)據(jù)庫(kù)的最大特色。StarRocks采用全面向量化技術(shù),整個(gè)執(zhí)行引擎都是按照向量化的方式全部重寫,完全按列存儲(chǔ),按列計(jì)算,按列傳輸。全面向量化引擎實(shí)現(xiàn)了在OLAP多維分析、實(shí)時(shí)數(shù)據(jù)分析、高并發(fā)數(shù)據(jù)分析、探索式數(shù)據(jù)分析等多場(chǎng)景的極速分析,比上一代同類型產(chǎn)品快3—5倍。StarRocks采用新一代彈性MPP架構(gòu),無(wú)外部依賴,充分利用多機(jī)多核的能力,分布式關(guān)聯(lián)查詢能力強(qiáng)悍。
另一大創(chuàng)新是StarRocks從零開始實(shí)現(xiàn)了一個(gè)全新的CBO優(yōu)化器。優(yōu)化器對(duì)于數(shù)據(jù)庫(kù)而言至關(guān)重要,執(zhí)行引擎可以讓一個(gè)執(zhí)行計(jì)劃跑得更快,而好的優(yōu)化器能夠給出執(zhí)行代價(jià)最低,并能充分利用自身執(zhí)行引擎能力的執(zhí)行計(jì)劃。葉謙介紹,StarRocks自研的CBO優(yōu)化器應(yīng)用到了如表達(dá)式重寫,表達(dá)式復(fù)用,共同謂詞提取,謂詞下推,聚合下推,列裁剪,分區(qū)裁剪,shuffle裁剪,子查詢改寫,Join順序調(diào)整等等優(yōu)化方法。使用了全新的CBO優(yōu)化器后在SSB標(biāo)準(zhǔn)測(cè)試上的性能表現(xiàn)提升了3—5倍。在TPC-H測(cè)試集上,同樣是以外表的方式查詢Hive數(shù)據(jù),性能比Presto快5倍以上。
目前,StarRocks已經(jīng)在多個(gè)行業(yè)領(lǐng)域落地。貝殼找房的OLAP平臺(tái)是貝殼找房數(shù)字化運(yùn)營(yíng)的基石,在數(shù)據(jù)平臺(tái)中占據(jù)著非常重要的位置。在上線StarRocks之前,為了滿足不同數(shù)據(jù)分析場(chǎng)景的需求,貝殼上線了多套數(shù)據(jù)分析系統(tǒng),包括Impala、Presto、Kylin、Druid、ClickHouse、Hive等,不同系統(tǒng)對(duì)應(yīng)不同的數(shù)據(jù)分析需求。即便花了那么多時(shí)間和精力,貝殼在數(shù)據(jù)分析方面依然存在不少痛點(diǎn):對(duì)歷史數(shù)據(jù)的實(shí)時(shí)更新支持弱、多表Join支持能力差、無(wú)法同時(shí)支持明細(xì)和聚合查詢、整體的運(yùn)維復(fù)雜度很高等。在使用了StarRocks之后,貝殼以上的痛點(diǎn)問(wèn)題,都得到了解決,據(jù)悉貝殼現(xiàn)在正在逐步將OLAP數(shù)據(jù)分析場(chǎng)景全部統(tǒng)一到StarRocks上來(lái)。
不到兩年的時(shí)間,StarRocks已經(jīng)取得了一些不錯(cuò)的成績(jī),未來(lái),StarRocks在產(chǎn)品方面將不斷強(qiáng)化,比如將設(shè)計(jì)全新的實(shí)時(shí)和離線融合的原生架構(gòu),可以同時(shí)高效地管理實(shí)時(shí)數(shù)據(jù)和離線數(shù)據(jù)。設(shè)計(jì)全新的流批融合向量化引擎,同時(shí)具備極速處理批的能力和流的能力等。
除了強(qiáng)化數(shù)據(jù)庫(kù)產(chǎn)品本身之外,數(shù)據(jù)庫(kù)生態(tài)建設(shè)也將是其發(fā)展重點(diǎn)。“一個(gè)比較成熟、比較好的數(shù)據(jù)庫(kù)產(chǎn)品,肯定是要有生態(tài)的廣泛支持,源代碼開放的產(chǎn)品其實(shí)對(duì)于生態(tài)合作伙伴的加入,以及別人給你提供一些生態(tài)方面支持會(huì)更加容易一些。”葉謙說(shuō)道,關(guān)于StarRocks的更多技術(shù)內(nèi)幕,StarRocks也會(huì)在公司10月30日舉辦的年度峰會(huì)上分享。
創(chuàng)業(yè)不易,面對(duì)質(zhì)疑最好的回應(yīng)是獲得更多客戶的認(rèn)可和長(zhǎng)足的發(fā)展。對(duì)于StarRocks而言,希望誠(chéng)如其名,在國(guó)產(chǎn)數(shù)據(jù)庫(kù)的春天里,仰望星空,一路走下去。