sponsored links

小米 x StarRocks:極致效能打造小米式價效比資料平臺

小米有品是小米旗下精品生活電商平臺,也是小米“新零售”戰略的重要一環。依託小米生態鏈體系,延續小米的“爆品”模式,致力於將“小米式的價效比”延伸到更廣泛的家居生活領域。有品資料中心主要負責有品電商的資料資產,提供資料分析服務。資料分析幫助做出有效決策,有效決策促進業務增長,業務增長需要更多的資料分析,形成閉環。

作者:汪細勖,小米高階研發工程師

陳亦奇,小米有品研發工程師

歷史架構及業務痛點

受限於以往業務規模以及技術條件,曾經的小米資料中心的架構如下圖:

小米 x StarRocks:極致效能打造小米式價效比資料平臺

業務資料和流量資料透過資料採集服務傳送到 Talos,實時資料透過 Spark Streaming 進行 ETL 處理,商品資料聚合之後寫入 MySQL 中,其他資料寫入 Druid 中做預聚合;離線資料直接寫入 Hive 中,透過 Spark SQL 提供查詢服務。這套架構隨著業務的快速發展,已經越來越不滿足使用者需求,主要表現為以下幾點:

  • 資料快速膨脹,查詢效能成為瓶頸
  • 維護多套系統,運維成本,機器成本高
  • Druid 去重效果差,不支援明細資料

StarRocks 在小米有品的應用實踐

OLAP 引擎調研

為了解決這些問題, 我們調研了多款 OLAP 引擎,沒有一款引擎能從資料規模,查詢效能,靈活性三個方面滿足我們的需求。結合實際,綜合考慮,我們選擇了 StarRocks 作為小米有品資料中心的新一代 OLAP 引擎。主要考慮到 StarRocks 有以下幾點優勢:

  • 極致查詢效能:單表查詢效能已經超過 ClickHouse,多表 Join 經過 CBO 最佳化,效能遠超 ClickHouse
  • 同時支援明細和聚合模型:支援 Duplicate/Aggregate/Unique 三種資料模型,同時支援物化檢視
  • 高效資料匯入:高效支援流式匯入和批次匯入
  • 運維簡單,高可用:多副本,一致性協議支援高可用,自動化運維,操作簡單

當前架構

採用 StarRocks 作為小米有品資料中心的 OLAP 引擎之後,我們當前的架構是這樣的:

小米 x StarRocks:極致效能打造小米式價效比資料平臺

業務資料和流量資料透過資料採集服務,寫入 Talos 中,實時資料透過 Flink 進行 ETL,實時寫入 StarRocks 中;離線資料透過 Spark 進行 ETL,寫入 Hive 中,然後匯入到 StarRocks 中。由 StarRocks 作為統一的查詢引擎,架構簡單明瞭。

資料寫入

資料首先寫入 STG 層,STG 層是資料緩衝層,包含了訂單 Binlog 資料,優惠資料 Binlog,退款資料 Binlog,流量日誌等;ODS 層進行資料的解析,DWD 層對資料清洗、過濾及相關業務邏輯處理;DWS 層按照主題或者維度進行輕度聚合,最後資料寫入 StarRocks 中。

小米 x StarRocks:極致效能打造小米式價效比資料平臺

目前在 StarRocks 之中主要包含了 SKU 聚合模型、頁面聚合模型、優惠聚合模型、明細模型以及維度模型,那麼聚合資料採用Aggregate模型;明細資料採用 Duplicate 模型,然後在此基礎上再採用物化檢視來加速;離線資料透過 Broker Load 方式匯入;實時資料透過 Stream Load 方式匯入。

經過半年的努力,我們目前已經實現了小米內部的各大平臺與 StarRocks 的互聯互通,一鍵操作, 從 Flink、Hive、Hadoop、Kafka、Spark、MySQL 等平臺上,將資料一鍵操作寫入 StarRocks 中,也可以一鍵操作將 StarRocks 資料遷移到 Flink、Hive、Hadoop、Spark、Presto 中,實現了StarRocks 與各大平臺的互聯互通,一鍵操作,讓資料在各大平臺自由流動,方便使用者操作和使用。

資料建模

過去我們在進行建模的時候,廣泛的採用的是大寬表,也就是將指標列和維度列都放在同一張表上。這會帶來一個很嚴重的問題,就是當維度修改的時候,我們需要對資料進行重新的回溯,然後重新聚合計算,這樣的話非常消耗時間。由於 StarRocks 良好的多表 Join 效能,我們改變了過去大寬表的形式,採用星型關聯表來建模,可以支援維度動態修改,降低迴溯成本。

小米 x StarRocks:極致效能打造小米式價效比資料平臺

資料查詢

對於去重,過去主要是採用 Druid 來進行資料的去重,計算 PV/UV 等,由於 Druid 採用 HLL 近似演算法,精度只能達到 97%到99%,對於 AB 實驗以及搜尋推薦演算法進行最佳化效果的評估已經不能滿足使用者的需求了。StarRocks 支援 Bitmap 精確去重演算法,精度提升到了100%。

小米 x StarRocks:極致效能打造小米式價效比資料平臺

除此之外,相比於傳統的 Broadcast/Partition Shuffle Join 演算法,StarRocks 提供了 Colocate Join 和 Bucket Shuffle Join 演算法。Colocate Join 在資料寫入時,保證多個表的資料按照分桶鍵分佈,保持一致,這樣多張表 Join 時可以在本地進行,減少網路傳輸,提升查詢效能。在生產實踐中我們發現能夠帶來3-4倍以上的產品效能的提升,非常強悍。

另外我們也廣泛的使用了 Bucket Shuffle Join,相比於過去的 Broadcast/Partition Shuffle Join 需要傳輸多份資料,Bucket Shuffle Join 只用傳輸一份右表的資料。當 Join Key 包含左表分桶鍵,可以實現 Join 時,只用傳輸一份右表資料,減少資料網路傳輸,提高查詢效能。透過測試發現 Bucket Shuffle Join 能帶來提升2-3倍以上的查詢效能。

綜合比較,相比於之前的架構,現在的架構查詢效能方面提升明顯。聚合上卷查詢,關聯查詢相較於此前基於 MySQL 的架構,基於 StarRocks 的架構效能可以提升20-30倍以上。StarRocks在明細聚合查詢方面,相比於 Spark SQL,提升4倍以上。儲存成本相比於 MySQL+Druid,降低2倍以上

小米 x StarRocks:極致效能打造小米式價效比資料平臺

平臺展示

下圖是我們基於 StarRocks 實現的小米有品資料中心的一個平臺,主要是提供業務分析以及看板、報表等等這些服務。

小米 x StarRocks:極致效能打造小米式價效比資料平臺

未來規劃

一、我們打算在小米集團內部廣泛的推廣 StarRocks,與商業平臺,小米賬號、MIUI、小愛等等這些業務部門進行一個深度的合作,發掘 StarRocks 潛力,探索 StarRocks 能力邊界,滿足業務部門豐富的需求。

二、我們準備攜手 StarRocks 開發 Z-Order Indexing 來提升多維分析的查詢效能。目前 StarRocks 在資料寫入的時候,會在記憶體中將多個列按照字典的方式來進行排序,然後寫入到磁碟中。這種字典排序的方式在實際的查詢過程中,只有利於第一列的過濾,但是其他列的過濾效果都比較差。為了支援多維分析的場景,未來我們打算開發 Z-Order Indexing 來提升多維分析的查詢效能。

三、我們準備攜手 StarRocks 開發單副本 Compaction,減少對查詢的影響。目前 StarRocks 在資料寫入的時候會同時寫多個副本,多副本 Compaction 佔用資源多,影響查詢效能,開發單副本 Compaction,分發 Compaction 結果,減輕對查詢效能的影響。

總結

總的來說,首先我們覺得 StarRocks 運維簡單,成本低。由於StarRocks同時支援明細和聚合模型,可以滿足大多數場景,之前採用的多種引擎構建資料中心的架構,現在可以採用 StarRocks 作為唯一引擎,架構簡單明瞭,運維高效便捷。StarRocks 相比於 Spark 引擎,機器成本降低50%以上。第二 StarRocks 查詢效能優越,StarRocks 近乎實時的查詢效能,針對很多典型場景進行最佳化的各種特性(Colocate Shuffle Join,Bucket Shuffle Join,CBO等),給使用者帶來了良好的使用體驗。第三 StarRocks 既可存算一體,也可存算分離。目前 StarRocks 是存算一體的系統,但它同時支援 ES/MySQL/Hive 等外表功能,可以實現對 Hadoop 生態的查詢,可以做到存算分離,對於節省成本,打通 Hadoop 生態很有意義。

分類: 體育
時間: 2021-11-19

相關文章

五連敗!湖人遭勇士雙殺,360組合轟47+22+12,庫裡格林休戰

五連敗!湖人遭勇士雙殺,360組合轟47+22+12,庫裡格林休戰
北京時間10月13日,NBA季前賽,湖人主場99-111不敵勇士,吃到五連敗.這場比賽庫裡和追夢格林休戰,湖人的"360組合"濃眉哥.詹姆斯和威少首度合體參賽,他們合砍47分22籃 ...

同樣是被勇士選中!科爾重點培養,普爾打出成績,而麥考無球可打

同樣是被勇士選中!科爾重點培養,普爾打出成績,而麥考無球可打
北京時間10月10日,在勇士隊季前賽當中,普爾無疑是最亮眼的球員,作為一名年輕球員,他在季前賽當中的發揮非常閃耀,個人表現高效,在很多時候,他的發揮都要好於庫裡.資料顯示,普爾在勇士隊前三場季前賽當中 ...

三連勝!勇士送湖人全敗,庫裡30分,詹姆斯9分,威少首秀低迷

三連勝!勇士送湖人全敗,庫裡30分,詹姆斯9分,威少首秀低迷
10月9日,NBA季前賽,勇士主場121-114擊敗湖人,迎來三連勝,湖人開局三連敗.此役湖人的濃眉哥休戰,勇士的維金斯輪休,詹姆斯和新援威少將會迎來首秀.比賽中庫裡和普爾表現搶眼,威少出戰2節表現低 ...

庫裡30+5,勇士拒絕22分逆轉!湖人詹皇9+3,威少6失誤,魔獸爆發

庫裡30+5,勇士拒絕22分逆轉!湖人詹皇9+3,威少6失誤,魔獸爆發
北京時間10月9日,湖人隊與勇士隊兩大西部豪門展開了季前賽的較量.本場比賽,兩隊均打出了高質量的攻防表現. 湖人隊VS勇士隊 勇士隊,在斯蒂芬庫裡.喬丹普爾等人的帶領之下,一度取得了22分的領先優勢. ...

印度曼尼普爾邦的真相,雖然沒有六星紅旗,但想獨立的心從未變

印度曼尼普爾邦的真相,雖然沒有六星紅旗,但想獨立的心從未變
印度,是一個國內都沒安定,卻想在國際上唱主角的國家. 去年看到一則新聞,說是在抗擊新冠疫情的關鍵時刻,185名護士突然集體辭職,而原因竟然是因為長相問題,因為長得一副中國人面孔,遭受了他人的非議,承受 ...

新賽季有31人年薪超3000萬:庫裡榜首 沃爾哈登並列第2 詹姆斯第6

新賽季有31人年薪超3000萬:庫裡榜首 沃爾哈登並列第2 詹姆斯第6
直播吧9月18日訊 知名薪資網站Spotrac顯示,新賽季NBA有31名球員年薪超過3000萬美元,庫裡位居榜首,沃爾和哈登並列第二,詹姆斯排名第六. 具體如下: 1.庫裡 4578萬美元 2.沃爾 ...

NBA年薪榜:庫裡超哈登沃爾連續5年居首 6人超4000萬

NBA年薪榜:庫裡超哈登沃爾連續5年居首 6人超4000萬
近日,根據知名媒體Spotrac統計新賽季NBA球員薪水榜單,一共有6名球員年薪超過4000萬美金,其中庫裡以4578萬美金高居榜首,哈登與沃爾均是4431萬美金並列第2位,詹姆斯以4118萬美金排在 ...

違反規定,面臨禁賽處罰!庫裡太難了,你真要讓勇士陷入兩難境地

違反規定,面臨禁賽處罰!庫裡太難了,你真要讓勇士陷入兩難境地
2020-2021賽季對於金州勇士來講是個備受打擊的賽季,比起此前一個賽季的佛繫心態,勇士在賽季開始前更多是眾志成城,渴望捲土重來.然而,克萊-湯普森在賽季開始之前的跟腱撕裂毀掉了球迷對於總冠軍的期待 ...

含金量不足?盤點NBA最有爭議的十大FMVP:萌神庫裡最為可惜

含金量不足?盤點NBA最有爭議的十大FMVP:萌神庫裡最為可惜
1969年NBA設立了FMVP,用以表彰在總決賽中表現出色的球員,到今年已經有51個FMVP,這其中有名副其實的總決賽FMVP,但也有一些讓人並不心服口服的FMVP,他們的獲獎讓人們驚詫,本文就來盤點 ...

根據伊戈達拉的說法,這是庫裡改變比賽的原因,不僅僅是投籃

根據伊戈達拉的說法,這是庫裡改變比賽的原因,不僅僅是投籃
斯蒂芬·庫裡永遠地改變了我們所知道的籃球比賽的方式.這位金州勇士隊的球星徹底改變了現代籃球運動,他向人們展示了三分球的重要性,尤其是當你是有史以來最好的三分射手的時候. 然而,三分移動並不是他帶給聯盟 ...

好兄弟的稱讚!伊戈達拉:庫裡改變了籃球運動,讓球員享受比賽

好兄弟的稱讚!伊戈達拉:庫裡改變了籃球運動,讓球員享受比賽
庫裡是目前聯盟裡面的超級巨星,尤其是他的三分球更是讓很多年輕球員模仿,現在NBA裡面,如果一位球員的三分球比較出色,那麼他肯定能夠拿到不錯的薪水.小球時代最具有特點的就是三分球越來越重要,很多爭冠熱門 ...

勇士隊庫裡替補4名候選人名單:小托馬斯、科裡森上榜

勇士隊庫裡替補4名候選人名單:小托馬斯、科裡森上榜
金州勇士隊希望在本賽季的NBA總決賽中取得長足的進步.在他們久經考驗的核心斯蒂芬·庫裡.克萊·湯普森和德雷蒙德·格林的背後,勇士隊正在尋求重返季後賽,製造一些聲音,如果不是完全贏得比賽的話. 當然,這 ...

狀元加首輪!場均41分13板雙子星或聯手庫裡,重組四巨頭不怵籃網

狀元加首輪!場均41分13板雙子星或聯手庫裡,重組四巨頭不怵籃網
小修小補或許可以幫助勇士戰績上升,但光靠目前的陣容金州人想挑戰湖人.雄鹿.籃網等強敵依舊是難度頗大.在此前ESPN公佈的聯盟繳納奢侈稅榜單中,勇士已超過七千萬美金高居榜首:這還是在放棄續約小將烏佈雷的 ...

金州勇士斯蒂芬·庫裡替補席最後的四名候選人名單

金州勇士斯蒂芬·庫裡替補席最後的四名候選人名單
金州勇士隊希望在新賽季的季後賽中取得明顯的成效,在他們久經考驗的核心斯蒂芬·庫裡.克萊·湯普森和德雷蒙德·格林的身後,勇士隊正在尋求重返季後賽的機會. 當然,這意味著球隊中的15人大名單都需要斟酌.金 ...

NBA近十年狀元重排:11歐文換小卡,09庫裡無爭議,12非他不看

NBA近十年狀元重排:11歐文換小卡,09庫裡無爭議,12非他不看
NBA近十年狀元重排:11歐文換小卡,09庫裡無爭議,12非他不看 NBA的選秀賽是職業籃球運動員們進入NBA聯盟的一張入場券,這個選秀賽一般都是六月末進行,能夠成為選秀賽第一名的就是我們所說的狀元郎 ...

盤點NBA合同中剩餘金額排名前十的球員!庫裡領銜,快船兩人入選

盤點NBA合同中剩餘金額排名前十的球員!庫裡領銜,快船兩人入選
今年休賽期很多球星選擇跟球隊達成提前續約協議,這就導致很多球星還未領到的剩餘合同金額多的驚人,在這個時代,球星們無疑都賺的盆滿缽滿,那麼誰才是剩餘合同金額最多的球員呢? 1.庫裡 金州勇士隊 剩餘合同 ...

NBA2K22球員能力值分檔:庫裡、杜蘭特、詹姆斯和字母哥共享一檔

NBA2K22球員能力值分檔:庫裡、杜蘭特、詹姆斯和字母哥共享一檔
"安安小小姐姐",一個自媒體創作者,我們專注於從全新的視角.將資料以視覺化的方式展示出來."安安小小姐姐說球",則專注於對籃球.足球的資料進行分析,透過資料視覺 ...

季前賽-庫裡30分普爾28分勇士勝湖人,威少湖人首秀低迷

季前賽-庫裡30分普爾28分勇士勝湖人,威少湖人首秀低迷
NBA季前賽繼續進行,湖人114-121不敵勇士,遭遇三連敗,而勇士則是三連勝. 這場比賽是威少的湖人生涯首秀,也是詹姆斯新賽季第一次出場.庫裡開局就中上籃後勇士連連打鐵,蒙克三分命中再助小喬丹空接, ...

庫裡相信普爾比同年齡時的自己更出色

庫裡相信普爾比同年齡時的自己更出色
今年季前賽期間,勇士年輕後衛喬丹-普爾成為最火熱的球員,迄今為止的三場比賽場均只打23分鐘,就能設下25分,三分命中率高達44%. 斯蒂芬-庫裡在接受採訪時表示,年僅22歲的普爾,比自己同年齡時要更出 ...

髒的不行!追夢格林領銜,盤點NBA裡的髒活惡漢

髒的不行!追夢格林領銜,盤點NBA裡的髒活惡漢
NBA裡但凡想衝擊總冠軍的球隊,都無組織地熱衷於為自己球隊招募幾個樂意幹髒活的球員.作為底牌,在關鍵時刻往往能起到"田忌賽馬"的作用,用一張底盤換掉對手的得分手,進而為自己的衝冠道 ...