天天看點

StarRocks 2.0,新一年,新啟航,新極速

2022年,它來了。

2.0版本的 StarRocks,它也來了。

2021年剛剛過去,回望這一年間經曆的林林總總,每一個親身經曆 StarRocks 發展的小夥伴們,心中都不免泛起漣漪:

2021年1月底,StarRocks 向量化1.0版本首次面市,記得當時還有些許小“激動”,新産品剛“呱呱墜地”,就具備了和全球最快開源系統不相上下的單表查詢性能。最近一年,我們一直在緻力于重新定義單表極速查詢速度,在2.0版本中,StarRocks 創新性的實作了基于全局字典的低基數字元串查詢優化,進行了大量 CPU 指令級優化,等等,在單表查詢場景下,2.0版本的性能可以達到老版本的2倍左右,也實作了對原有“世界最快開源系統”的大幅超越,這是 StarRocks 不斷踐行“實作不可能”所取得的新成果。2.0釋出之際,社群每一位參與開發的同學,内心已然“一團火熱”,歡迎大家測試體驗,真實感受這耳目一新的極速分析!

StarRocks 2.0,新一年,新啟航,新極速

*測試環境:StarRocks 1FE 3BE ,版本1.19及2.0;ClickHouse 同等配置的3節點,版本21.9

為了擷取極速的分析效果,很多業務使用者被迫将多表資料打平成大寬表,而在這背後,資料開發工程師們承受了多少不為人知的心酸。2019年12月,為了讓使用者無需複雜預處理,直接基于多表資料擷取極速分析體驗,StarRocks 開啟了自我颠覆之路:全新編寫一個 CBO 優化器(基于代價的優化器)。這其中的難度,就像是“從北坡攀登珠穆朗瑪峰”,相信研發者應該深有體會。但要想實作全場景極速分析,這是無法繞過去的一道坎。經過一年多的攻堅克難,2.0版本的 CBO 優化器已經基本成熟,對更多的多表複雜查詢類型可以實作2倍性能提升,完善性和穩定性也大幅提升。相比其他開源系統,可以實作5-10倍的性能優勢,StarRocks 實作了前所未有的從“單表極速”到“多表極速”的史詩級跨越!

2021年5月,随着實時分析場景對資料的更新需求逐漸增多,StarRocks 又開始摩拳擦掌了、準備大展拳腳啦!當時OLAP系統往往采用 merge-on-read 的模式來完成資料更新,但這種大幅犧牲了查詢性能換取較好的導入性能做法并不是最佳方案。于是 Primary Key 模型閃亮登場!新的存儲引擎采用了 delete-and-insert 的方式完成資料更新,可以在實時更新場景下帶來了3-10倍的查詢性能提升。經過6個月的打磨,2.0版本将正式釋出 Primay Key 實時更新特性。使用者再也不用為“實時更新”而頭痛不已!

2021年6月,研發 Pipeline 執行引擎被提上了日程,這個特性緻力于大幅提升 StarRocks 在多核機器上的并發處理能力和複雜查詢的性能。這是一個從零開始的工作,做了大量前人從未有過的探索,靠的就是一股“實作不可能”的勁頭。在2.1版本中 Pipeline 執行引擎将和大家見面,在這裡賣個關子,期望使用者們多多送出真實使用體驗,我們承諾:包您滿意,不玩虛的!

穩定性是使用者大規模使用的根基,近半年來, StarRocks 一直在不遺餘力的全面解決穩定性問題。在2.0 版本中我們重新設計了記憶體管理模式,将根本性解決了 BE OOM 的問題。随着2.0版本的釋出,相信大家在新的一年能夠更輕松的使用 StarRocks!

2021年9月,StarRocks 源代碼開放,并開啟全球化社群建設的新篇章!先看一組小數字吧:

  • 開放源碼114天,共計75位貢獻者,每月活躍40+貢獻者,産生了1238次 Commit,獲得1900顆 Star。
  • 組織了8場社群線上和線下 Meetup,活動累計覆寫人數超過5000人。
  • 社群吸引了85家大使用者(估值或者市值在十億美金以上)使用  StarRocks,并仍在飛速增長中。

顧往昔,瞻未來。

StarRocks 緻力于開創極速統一的全新資料架構,全面更新資料驅動的速度、靈活性和實時性!2022年的目标就是:從“多表”場景領先者到“全場景”領先者,做世界第一的極速全場景分析型資料庫,幫助更多的使用者實作極速統一分析。也許有人會質疑、會說不謙虛、不 Peace。StarRocks 成立還不到2年,正是茁壯成長的時期,正是敢想敢幹的年紀,我們堅信:隻有偉大的夢想才能鑄就偉大的産品!

那具體要幹哪幾件事呢?簡單明了,五件事:

1

資源管理

StarRocks 在各種分析場景表現得都很出色,使用者也在用 StarRocks 承接越來越多業務。每個業務方都不想被其他業務影響,平台方又不想維護多套叢集。怎麼辦?

StarRocks 會推出新的資源管理機制。新的資源管理機制可以支援“資源組”,可以為需要隔離的業務設定單獨的資源組,這樣就能夠保證此業務能獲得充足的資源配額,不會被其他業務幹擾,另外這個業務也不會幹擾其他業務的資源使用,這樣就可以讓不同的業務跑在一個叢集中。一方面解決平台方運維多套叢集的壓力,另一方面讓不同業務之間可以很輕松的共享叢集,提高資源使用率。

2

多表物化視圖

在近期大規模的使用者訪談調研中,多表物化視圖是呼聲非常高的需求之一。想使用者之所想、急使用者之所急是 StarRocks 在需求設計上的重中之重。

當發現某些查詢性能不足時,使用者可以通過建立物化視圖來加速。目前 StarRocks 的物化視圖能夠同步建構、查詢時自動路由。同步建構是指,原始表的資料發生更新時,物化視圖中的資料也能夠做到同步更新。查詢時自動路由指的是,StarRocks 會在查詢規劃時,計算不同查詢規劃的代價,選擇最合适的物化視圖來支援具體的查詢。這裡能夠做到對于使用者的查詢透明加速的能力。

但是目前并不能夠支援多表的物化視圖能力,以及在物化視圖上更加靈活的表達。在2022年 StarRocks 會完成對多表物化視圖能力的支援,并且支援物化視圖中更靈活的表達。StarRocks 期待通過建立物化視圖,簡化整個資料加工的過程。過去為了建立一個資料模型,可能還需要資料工程師開發。如果有了更加靈活的物化視圖表達能力,那麼分析師通過建立各種物化視圖,就能夠直接獲得最終建構的模型。這樣可以使資料分析變得更加的靈活。

除了能夠支援多表物化視圖之外,StarRocks 在物化視圖的次元還會引入智能推薦等能力。通過對于使用者查詢的分析,智能的推薦使用者建立物化視圖以加速使用者查詢。

3

存算分離

目前 StarRocks 的架構模式還是存儲與計算耦合的模式。這樣的方式會為使用者帶來極緻的查詢性能。但是由于兩者耦合沒有辦法按需的進行資源配置設定,有時會帶來不必要的成本開銷。

随着目前使用者的基礎設施越來越多的建構在公有雲或私有雲上,OLAP 系統也應該順應時代發展趨勢,更好的利用雲環境所提供的資源彈性的能力,為使用者帶來更多的資源節省與靈活性。

StarRocks 期待在2022年進行存算分離架構調整。我們想做的事在整個業界都是有挑戰性以及開創性的:一方面,StarRocks 的存算分離需要做到離線與實時相容;另一方面能夠做到公有雲與私有化部署相容。除此之外,StarRocks 的架構還要能夠更好的支援多雲架構。

存算分離的工作我們會與社群的小夥伴一起來完成,通過一套技術架構,來滿足各類需求。

4

極速資料湖分析

目前 StarRocks 更多承載的是資料倉庫的能力。使用者會把價值含量更高的資料導入到 StarRocks 中完成極速分析。價值含量不高的原始資料都存放在資料湖中。綜合來看,使用者既有針對資料湖資料的極速分析需求,也有數倉資料與資料湖資料的關聯分析需求。

為了能夠讓使用者具備更好的湖倉分析體驗。StarRocks 将在新的一年裡重點增強資料湖分析能力。我們期待通過 StarRocks 的努力,不僅能實作使用者對資料湖進行極速的分析,也能夠讓使用者通過 StarRocks 完成資料湖與資料倉庫的統一分析。

目前 StarRocks 社群已經聯合阿裡雲完成了支援 Iceberg 查詢的第一期開發工作。從最新的測試效果上看相比于 Trino 會有5倍的性能提升。未來還會陸續完成對 Hudi 的支援,以及完善更多的功能。StarRocks 誠摯的邀請社群有興趣的小夥伴參與進來共同建設。與此同時,在1月份阿裡雲 EMR 即将開啟 StarRocks 服務公測,更多雲廠商的服務也在路上,敬請期待!

5

批流一體化

不少使用者都期待将 StarRocks 的極速能力用于資料加工處理場景(比如目前用 Spark 或者 Flink 完成的 WorkFlow),甚至已經有不少使用者已經在這條路上開始了真正的實踐。

StarRocks 會在2022年增強批處理以及流處理的能力(這并不意味着會解決所有使用者的所有批處理場景)。在數百台節點規模下,StarRocks 非常有信心能夠提供流批一體解決方案。這樣使用者既可以通過 StarRocks 完成對于原始資料的加工,同時加工後的資料又可以被 StarRocks 分析。屆時,通過 StarRocks,使用者将可以打通資料極速處理到資料極速分析的鍊路,進而實作更多層面的統一。

雄關漫道真如鐵,而今邁步從頭越。

讓我們共同期待在新的一年,這五件大事能夠一一得到實作,在創造未來的路上,StarRocks 希望能攜手更多的社群開發者與使用者,勇攀高峰!

2022,我們來了!