新四季網

小米基於StarRocks極致性能打造小米式性價比數據平臺

2025-05-03 21:26:24

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

作者:

汪細勖,小米高級研發工程師

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

歷史架構及業務痛點

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

業務數據和流量數據通過數據採集服務傳送到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引擎之後,我們當前的架構是這樣的:

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

數據寫入

數據首先寫入STG層,STG層是數據緩衝層,包含了訂單Binlog數據,優惠數據Binlog,退款數據Binlog,流量日誌等;ODS層進行數據的解析,DWD層對數據清洗、過濾及相關業務邏輯處理;DWS層按照主題或者維度進行輕度聚合,最後數據寫入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性能,我們改變了過去大寬表的形式,採用星型關聯表來建模,可以支持維度動態修改,降低回溯成本。

數據查詢

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

除此之外,相比於傳統的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倍以上。

平臺展示

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

未來規劃

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

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

三、我們準備攜手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生態很有意義。

同类文章

搜狗團購導航 情人節電影攻略

    作為熱門電影檔期,今年情人節檔期依舊延續春節檔火熱氣勢。搜狗團購導航精心為用戶整理2014年情人節上映電影,為大家提供特別準備的情人節電影攻略。   由同名熱播電視劇升級而成的《北京愛情故事》;陳坤、劉嘉玲組成影帝影后陣容的《過界男女》;情人節唯一3D愛情片《江南愛情故事》;「型男組合」杜淳

思科發布2014財年第二季度業績報告

    ·第二季度銷售額:112億美元(與上財年同期相比降低8%)   ·第二季度每股收益:根據GAAP計算為0.27美元;非GAAP每股收益為0.47美元  CTI論壇(ctiforum)2月13日消息(記者 李文杰):全球領先的致力於改進人們聯絡、溝通和協作方式的網絡解決方案提供商思科公司今天發

情人節臨近 1號店巧克力等商品銷量激增

    2月14日情人節馬上就要到了,鮮花、巧克力等應景商品走俏市場,商家們也看準時機,各種促銷精彩紛呈。1號店相關負責人透露,目前1號店最熱銷的情人節產品是巧克力,從10號以來,巧克力的銷量就不斷攀升,「兩種商品的單日銷售額可以達到日常的4倍左右,並且還有上升的趨勢」。     據悉,1號店從2月

當"湯圓"邂逅"玫瑰"樂語通訊邀您盡享雙重約"惠"

    馬年春節在一片「馬上發紅包,馬上有禮錢」的呼聲中熱熱鬧鬧地走到了尾聲。元宵節作為最後的重頭戲,歡樂不減更增妙趣——因為今年元宵節甜蜜偶遇情人節,上演了「湯圓」邂逅「玫瑰」的浪漫一幕。雙節當天,國內領先的電信零售服務企業樂語通訊特意奉上雙重約惠,為消費者傾情打造一份專屬的浪漫。  2月14日,

全品類讓利助陣 1號店火爆開年送好運

    新年新氣象,開年迎好運。2月11日,1號店推出「今年你要火」開年大促,活動期間,除了豐富多彩的促銷活動,1號店還為消費者準備了面值從15—50元不等的抵用券,所有登陸1號店的消費都可以參與抽獎,賺好運。   據悉,1號店「今年你要火」將從2月11日持續到16日。1號店特意為活動挑選了數百款熱

做男神還是做孝子? 1號店214消費支招

    泡泡網資訊頻道2月10日 再過一周,就是2月14日情人節了,正好今年元宵也在這一天。許多人開始好奇,當元宵節擁抱情人節,當溫馨親情遇上浪漫愛情,情侶們會做出哪種選擇:是回家陪伴老人吃元宵,做個孝子呢?還是與愛人相約,度過一個浪漫夜晚?還在犯愁的消費者不如上1號店看看。「雙節」將至,1號店推出

1號店"以舊換新"再升級筆記本平板電腦納入回收範圍

    近日,一項關於「我們淘汰的手機去哪了」的公益調查顯示,70%的網友都把自己淘汰的手機、舊電腦給了父母。春節期間,更是有不少網友在回家過年期間將舊手機送給父母視為貼心之舉。這一話題在網絡上迅速引發熱議,不少人認為舊手機存在安全、健康隱患,雖說棄之可惜,但用「以舊換新」的方式換購一臺新的智能機給

春晚打造"舌頭"新搭檔 地板劇側躺劇掀新潮

    隨著農曆新年假期的結束,馬年春節漸行漸遠,但人們對於春晚的討論依舊不絕於耳。在今年馬年春晚的舞臺上,一對新搭檔吸引了大眾的關注,就是堪稱「毒舌王后」的蔡明與「中國好舌頭」華少,二人的「唇槍舌戰」讓小品《擾民了您》受到觀眾們的一致好評,成為新一年極具潛力的一對歡喜搭檔。   不過,兩大「舌頭」

帝度隨雪龍號共度世界最南端春節

   隨著春節長假結束,各行業工作者經過與親朋好友相聚的短暫休憩,紛紛返回工作崗位,以積極心態應對新一年的工作。而在地球最南端的南極,帝度冰箱與搭乘「雪龍」號的中國第30次南極科學考察隊,分別在中山站、長城站、泰山站,以及「雪龍」號破冰船上度過了整個春節。雖然春節期間無法與親人相聚,但科考隊員們仍然
「不限量」流量只是幌子 流量卡到底哪家最划算?

「不限量」流量只是幌子 流量卡到底哪家最划算?

      為了能使用到更為實惠的移動流量,相信不少人都會有購買流量卡的打算,而如果是流量需求比較大的用戶,則還有不限量流量套餐和日租卡可以選擇。筆者最近正好也有辦流量卡的需求,於是便研究了下目前主要的幾家流量卡、日租卡和不限量流量套餐,一起來看看那家的流量服務最適合你吧!1、米粉卡      小米