對話StarRocks葉謙:新一代MPP資料庫有啥不一樣?

qing_yun發表於2021-10-28

多年前逛論壇的時候,看到一首詩,印象深刻:凡事莫問我,問我也茫然。我若知道路,不站幾千年。詩人登山,或許當時有所困惑,忽然見到石人指路的雕像有感而發,頗有哲思,前方的路終究是要靠自己腳踏實地走出來。

對於一直從事國產資料庫的人而言大概會有一種心有慼慼焉的感受,國產資料庫的發展之路並不容易,伴隨著質疑與爭議,如今迎來春天,百花齊放,這條路都是腳踏實地踩坑走出來的。

鼎石科技COO 葉謙

在今年,新一代MPP資料庫廠商鼎石科技也迎來了自己新的發展階段,產品由原DorisDB更名為StarRocks,並宣佈全面開源,此舉引發業內討論。在日前DTCC2021中國資料庫技術大會之際,IT168採訪了鼎石科技COO 葉謙,我們聊了聊StarRocks的定位以及資料庫技術的發展。

關於StarRocks原始碼開放

2021年9月8日,成立一年多的鼎石科技宣佈將核心產品DorisDB升級為StarRocks,並全面開源。新名“StarRocks”由星星“Star”和石頭“Rocks”組成,被團隊寄予了美好的期望,意為仰望星空的同時,腳踏實地走路。此舉卻引發了業內廣泛討論關注,比如StarRocks與Apache Doris是怎樣的關係?StarRocks為什麼採用Elastic License 2.0(簡稱ELv2)許可證?

在創業之初,StarRocks團隊成員幾乎都來自Apache Doris,所以在給專案起名時參考了之前PrestoDB的做法,取名DorisDB。並且在中國、美國和日本都註冊了商標。然而此舉影響了Apache Doris專案畢業,所以後來產品更名為StarRocks。

葉謙告訴IT168,Apache Doris可以看作是StarRocks的上游專案,StarRocks創始團隊曾經深度參與了Apache Doris的專案建設,公司有四位員工是Apache Doris PPMC成員。據悉,鼎石科技公司大概有17位員工之前曾經參與過Apache Doris的開發,貢獻了約30萬行程式碼。目前StarRocks程式碼量大概有80萬,其中約33萬行程式碼繼承自Apache Doris專案,剩下的47萬行都是StarRocks自研。

關於程式碼許可證,葉謙強調:“鼎石科技作為一家商業化的公司,肯定是要追求商業上的成功。原始碼開放和商業上的成功從表面上看起來是兩件相互矛盾的事情,特別是在雲廠商已經形成一股強大力量的今天。”他介紹,在鼎石科技之前,已經有不少先行者在原始碼開放以及商業化之間的平衡進行了很多探索和嘗試。比如說Databricks,他們有完全開源的產品Apache Spark,使用Apache協議,也有閉源的商業化產品Photon,其商業化成功靠的是Photon的效能大幅領先Apache Spark。這種開放模式可以稱為“弱核心+寬鬆協議”。還有一種型別,比如說MongoDB,他們開放原始碼的核心就是最好的,普通使用者可以免費使用,但為了防止雲廠商直接商業化,堵了MongoDB商業化之路,所以MongoDB只能使用SSPL這樣比較嚴格協議,即採用一種“強核心+嚴格協議”的開放模式。

“我們在考慮開放和商業化這兩件事情的時候,更多在考慮如何讓普通使用者更容易地具備最強的資料分析能力。當然,我們也需要商業上的成功來持續為客戶提供有價值的產品。所以我們最後選擇使用ELv2協議來開放我們的原始碼。”葉謙指出,StarRocks採用的是類似於MongoDB的“強核心+嚴格協議”開放模式。

未來,StarRocks將有兩條商業化路徑:一是,StarRocks會提供一個具備更多企業級功能的企業版,包括更多的企業級運維工具,安全性和許可權控制,資源隔離等功能;此外,StarRocks還會推出一個純雲原生的版本,和公有云廠商一起合作,直接為客戶提供全託管的彈性服務。

新一代MPP資料庫有啥不一樣?

北京鼎石縱橫科技有限公司於2019年開始籌建,公司的成員均來自百度,阿里,微軟,美團,京東,小米,位元組跳動等網際網路頭部公司的基礎架構和大資料團隊,其核心產品StarRocks定位為新一代極速MPP分析型資料庫系統。新一代MPP資料庫有啥不一樣?

技術的發展離不開需求的推動,在資料驅動時代,OLAP場景下的資料分析和查詢扮演著越來越重要的角色,指導企業組織經營決策,傳統的分析架構也面臨著一些待解的難題。比如資料分析效能不達標、資料分析的靈活性不足、資料架構複雜度太高、資料分析能力彈性不足等。

以資料分析效能為例,隨著資料驅動的深入,業務提出了更多的分析需求,比如多維分析,實時分析,高併發查詢和 Adhoc 查詢。在很多分析需求場景下,當前系統效能表現不佳。葉謙介紹,近幾年實時的分析場景如實時使用者畫像,做實時推薦,或者風控類實時場景需求更加凸顯。而隨著數字化轉型的不斷深入,企業要達到全員資料驅動,資料分析從服務管理人員到服務企業全員發展,需要高併發支援。

葉謙介紹,傳統的MPP資料庫資料儲存和分析架構存在一些短板,傳統MPP架構採用均勻分佈的方式來做資料儲存,在擴容的時候成本很高,導致無法支撐很大的資料規模,而且資料重新分佈時對計算CPU頻寬影響很大,幾乎都需要停服務。此外,傳統的MPP資料庫對向量化技術採用比較少,導致其查詢速度沒有那麼快,無法響應現在越來越多的各類場景需求。

在解決以上問題時,StarRocks做了很多創新工作,這也是新一代MPP資料庫的最大特色。StarRocks採用全面向量化技術,整個執行引擎都是按照向量化的方式全部重寫,完全按列儲存,按列計算,按列傳輸。全面向量化引擎實現了在OLAP多維分析、實時資料分析、高併發資料分析、探索式資料分析等多場景的極速分析,比上一代同型別產品快3—5倍。 StarRocks採用新一代彈性MPP架構,無外部依賴,充分利用多機多核的能力,分散式關聯查詢能力強悍。

另一大創新是StarRocks從零開始實現了一個全新的CBO最佳化器。最佳化器對於資料庫而言至關重要,執行引擎可以讓一個執行計劃跑得更快,而好的最佳化器能夠給出執行代價最低,並能充分利用自身執行引擎能力的執行計劃。葉謙介紹,StarRocks自研的CBO最佳化器應用到了如表示式重寫,表示式複用,共同謂詞提取,謂詞下推,聚合下推,列裁剪,分割槽裁剪,shuffle裁剪,子查詢改寫,Join順序調整等等最佳化方法。使用了全新的CBO最佳化器後在SSB標準測試上的效能表現提升了3—5倍。在TPC-H測試集上,同樣是以外表的方式查詢Hive資料,效能比Presto快5倍以上。

目前,StarRocks已經在多個行業領域落地。貝殼找房的OLAP平臺是貝殼找房數字化運營的基石,在資料平臺中佔據著非常重要的位置。在上線StarRocks之前,為了滿足不同資料分析場景的需求,貝殼上線了多套資料分析系統,包括Impala、Presto、Kylin、Druid、ClickHouse、Hive等,不同系統對應不同的資料分析需求。即便花了那麼多時間和精力,貝殼在資料分析方面依然存在不少痛點:對歷史資料的實時更新支援弱、多表Join支援能力差、無法同時支援明細和聚合查詢、整體的運維複雜度很高等。在使用了StarRocks之後,貝殼以上的痛點問題,都得到了解決,據悉貝殼現在正在逐步將OLAP資料分析場景全部統一到StarRocks上來。

不到兩年的時間,StarRocks已經取得了一些不錯的成績,未來,StarRocks在產品方面將不斷強化,比如將設計全新的實時和離線融合的原生架構,可以同時高效地管理實時資料和離線資料。設計全新的流批融合向量化引擎,同時具備極速處理批的能力和流的能力等。

除了強化資料庫產品本身之外,資料庫生態建設也將是其發展重點。“一個比較成熟、比較好的資料庫產品,肯定是要有生態的廣泛支援,原始碼開放的產品其實對於生態合作伙伴的加入,以及別人給你提供一些生態方面支援會更加容易一些。”葉謙說道,關於StarRocks的更多技術內幕,StarRocks也會在公司10月30日舉辦的年度峰會上分享。

創業不易,面對質疑最好的回應是獲得更多客戶的認可和長足的發展。對於StarRocks而言,希望誠如其名,在國產資料庫的春天裡,仰望星空,一路走下去。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69925873/viewspace-2840370/,如需轉載,請註明出處,否則將追究法律責任。

相關文章