博客 / 詳情

返回

從分鐘到秒級,從 ClickHouse 到 StarRocks:哈囉的實時進化之路

作者:雲漢翾 哈囉資深大數據開發工程師

導讀

作為國內領先的出行與生活服務平台,哈囉在多業務協同與實時調度場景下,對數據分析性能和系統穩定性提出了更高要求。

為應對業務多元化帶來的數據增長與計算壓力,哈囉技術團隊完成了大規模 ClickHouse → StarRocks 遷移,並自研數據對比工具實現全流程自動校驗(該工具後續將開源)。

遷移後,查詢性能提升 3–5 倍,系統成本下降超 80%,查詢響應從分鐘級降至秒級,營銷 ROI 提升約 60%。

目前,哈囉已在多雲環境部署 15 個 StarRocks 集羣,支撐普惠金融、兩輪出行及算法平台等核心業務。

接下來,本文將帶你瞭解這次遷移背後的技術思路與落地成效。

哈囉(Hello)起步於共享單車業務,如今已成長為國內領先的本地出行與生活服務平台。在出行領域,哈囉從單車起家,迅速拓展至助力車,並於 2019 年進入四輪出行市場,陸續上線順風車和打車服務,形成覆蓋多場景的綜合出行網絡。

在主業穩固的基礎上,哈囉進一步向普惠生活服務領域延伸,推出自主品牌 哈囉電動車,與螞蟻集團、寧德時代合資成立小哈換電提供兩輪電動車換電服務,並打造聚合型租車平台哈囉租車。此外,哈囉還孵化了面向城市流浪貓管理的智能化品牌 “街貓”。

在數字化全面驅動業務增長的當下,哈囉作為覆蓋普惠、兩輪出行、算法平台等多業務場景的出行服務平台,對高效數據處理與實時分析能力提出了極高要求。

營銷策略平台和兩輪出行團隊此前使用的 OLAP 引擎均為 ClickHouse。

其中,營銷策略平台是哈囉精準營銷的核心支撐,隨着業務發展,平台數據規模突破 1000 億條;兩輪出行則是哈囉的核心業務,其數據平台承擔着訂單分析、用户行為追蹤、運營監控等關鍵任務。

背景

原架構瓶頸

隨着數據規模持續擴大,原 ClickHouse 集羣逐漸暴露性能瓶頸,成為業務增長的阻礙:

  • 集羣擴展性差:每次擴容需停服並重新刷寫全量數據,導致業務中斷,無法滿足數據規模快速增長的需求;
  • 資源佔用率高:日常運行中 CPU 與內存使用率長期超過 80%,資源餘量不足,高峯時段易出現查詢阻塞;
  • 多表關聯支持弱:營銷分析場景中頻繁涉及多表 Join 操作(如用户畫像表與活動參與表關聯),ClickHouse 查詢效率低,部分查詢耗時超分鐘級;
  • 湖倉查詢能力有限:無法全量查詢 Hive 數據湖中的歷史數據,僅支持最近 60 天數據查詢,制約長期營銷效果分析。

引入 StarRocks

為解決上述問題,哈囉技術團隊在深入評估多種方案後,決定引入 StarRocks 作為核心 OLAP 引擎。

其基於分佈式架構設計,支持在線彈性擴縮容——新增節點後可自動均衡數據分片與計算負載,擴容過程中業務仍保持持續可用。

同時,StarRocks 具備精細化的資源隔離與調度能力,並提供多種 Join 算法(包括分佈式 Hash Join、Broadcast Join、Colocate Join 等),可根據表規模與數據分佈自動選擇最優執行策略。

此外,StarRocks 擁有完善的湖倉一體查詢能力,既能高效分析本地存儲數據,也可直接訪問數據湖中的 Hive、Iceberg、Delta Lake 等外部表,實現統一分析與治理。

憑藉高吞吐、高可用與靈活擴展的特性,StarRocks 成為哈囉新一代實時分析平台的核心底座。

目前,哈囉已基於多雲戰略部署 15 個 StarRocks 集羣,覆蓋 IDC、阿里雲、騰訊雲及火山雲等多環境,日均處理請求量達 69.27 萬次,為普惠、兩輪出行核心業務及算法平台等多個關鍵系統提供穩定、高效的數據支撐。

在統一架構落地之後,團隊進一步針對不同業務場景進行了分層設計與性能優化,確保在兼顧實時分析性能與數據湖開放訪問能力的同時,實現資源利用最大化。

具體方案包括:

  • 數倉分層存儲: 將數據實時寫入 StarRocks 中,所有熱數據的查詢均在 StarRocks 數據倉庫中進行,上層數據應用在執行查詢時,對於高 QPS 和低延遲要求的 SQL 直接走 StarRocks 內表。
  • 數據湖查詢加速: 將 ODS 層數據寫入數據湖中,DWD、DWS、ADS 層則存儲在 StarRocks 中。

從 ClickHouse 到 StarRocks 構建實時分析平台

數據遷移方案:

為實現從 ClickHouse 到 StarRocks 的無縫遷移,技術團隊設計 “歷史數據批量遷移 + 增量數據實時同步” 的雙層方案:

  • 歷史數據遷移:首先將 ClickHouse 中的歷史數據導出到 CSV 文件中,然後基於 StarRocks Stream Load 接口編寫 Shell 腳本工具,替代傳統 ETL 工具(如 Flink、DataX),直接實現 ClickHouse 歷史數據向 StarRocks 的高效導入。該方案無需部署維護額外中間件,降低系統複雜度;同時,Stream Load 的高吞吐特性結合腳本化的併發控制,可充分利用資源,確保 20TB + 歷史數據快速遷移;
  • 增量數據同步:通過 Flink 任務同步至 StarRocks,保障遷移過程中數據不丟失、延遲低,實現業務 “無感遷移”。

相比傳統 ETL 遷移方案,本次遷移方案具備三大核心優勢:

  • 降低系統複雜度:直接通過 Shell 腳本與 StarRocks Stream Load 接口交互,省去中間件部署與維護成本,減少故障點;
  • 提升資源利用率:Stream Load 專為高吞吐設計,腳本化調用可靈活控制併發數與任務調度節奏,避免資源浪費;
  • 降低維護成本:Shell 腳本邏輯清晰,學習成本低,無需專業 ETL 工程師即可完成維護,解決傳統工具配置繁瑣、上手難的問題。

數據一致性保證

為確保遷移過程中數據結果的準確性與一致性,哈囉技術團隊自研了一套輕量級數據對比工具,對遷移前後的查詢結果進行精確校驗。

在遷移過程中,面臨兩大技術挑戰:

  • 數據規模大:在億級甚至百億級數據量下,全量校驗耗時過長、資源消耗大;
  • 業務邏輯複雜:多表關聯、函數計算(如聚合、日期轉換)、字段類型映射(如 TINYINT→BIGINT)可能導致結果偏差,需精準校驗查詢結果。
  1. 核心方案:自研對數工具設計

為實現高效、準確的數據一致性校驗,團隊自研了一款輕量化、高兼容性的對比工具。該工具支持源端(ClickHouse)與目標端(StarRocks)之間的全量或抽樣校驗,可在不影響生產集羣性能的前提下快速驗證遷移結果。其核心設計包括:

  • 多數據源適配與低侵入連接

    跨源兼容:封裝 ClickHouse JDBC(ru.yandex.clickhouse)與 StarRocks JDBC(com.starrocks.jdbc)驅動,統一數據源接口,支持動態切換源端 / 目標端配置。

    連接池優化:集成 HikariCP 連接池,限制併發連接數,設置超時時間(如 30 秒),避免高頻校驗對生產集羣造成性能衝擊。

  • 字段類型映射規則引擎

針對不同數據庫類型差異,預設字段映射校驗規則,避免類型轉換導致的比對誤差:

  • 整數類型:允許源端 TINYINT/INT 與目標端 BIGINT 比對
  • 浮點類型:支持閾值配置,如abs(source_val - target_val) < 0.001即判定為一致(解決浮點精度誤差)
  • 分母為 0:ClickHouse 返回 infinity,StarRocks 返回 null,這種特殊 case 認為對數一致

持續優化

為進一步提升平台的穩定性、查詢性能與成本效率,哈囉技術團隊圍繞 StarRocks 的架構與執行引擎進行了持續優化,重點包括以下四個方向:

  1. 存算分離架構:實現成本降低 80%

在兩輪業務方的虎克平台中,單表日寫入量約 1TB。為應對高數據量寫入與存儲成本問題,團隊採用存算分離構,以阿里雲 OSS 作為底層存儲介質。測算結果顯示,與存算一體架構相比,整體成本下降超過 80%:

阿里雲 OSS 成本參考:

https://www.aliyun.com/price/product?spm=a2c4g.11186623.0.0.a8156038eZ5X3k#/oss/detail/ossbag

且在相同併發負載下,StarRocks 存算分離場景性能仍優於 ClickHouse。

  1. Bitmap 索引:加速高基數查詢

針對用户 ID、設備 ID 等高基數列,採用 Bitmap 存儲方式,利用高效位運算(AND/OR)替代傳統 Count Distinct 計算。實踐表明,該優化在保證查詢性能提升 3-5 倍的同時,對數倉團隊的改造成本最低。

  1. 大查詢熔斷機制:保障集羣穩定

基於 StarRocks Resource Group 功能為營銷策略平台業務配置獨立資源組,設置查詢超時閾值(600 秒)、內存上限(80%)及併發限制。當單次查詢觸發閾值時自動熔斷,避免個別任務佔用過多資源,保障整體集羣穩定性。

4. SQL 語法兼容

在遷移過程中,SQL 兼容性至關重要。只有保證語法一致,才能讓現有的分析工具和業務邏輯無縫遷移至新架構,從而降低學習成本、提升使用體驗。

團隊在社區提供的 SQLTransformer工具基礎上進行了擴展,實現 ClickHouse 與 StarRocks 語法的深度兼容,使數據分析人員能夠直接複用原有腳本與查詢習慣,無需額外改造。

遷移成效

通過遷移至 StarRocks,哈囉實現了性能、業務、架構與運維多維度的全面提升:

  • 性能顯著提升,分析響應提速 3–5 倍:核心查詢從原 ClickHouse 的分鐘級普遍降至秒級,實時用户畫像與人羣圈選分析大幅加速,幫助營銷團隊快速洞察業務變化、即時調整策略。
  • 營銷 ROI 大幅提升:得益於數據處理效率的提升,營銷活動在人羣篩選、觸達精準度及執行效率等方面全面優化,帶動轉化率與復購率提升約 60%,顯著增強營銷資源使用效率。
  • 統一 OLAP 平台,實現多源數據融合分析:遷移整合後,StarRocks 支撐高併發、低延遲查詢,打通業務數據庫、日誌系統等多類數據源,實現跨業務、跨場景的聯合分析,消除數據孤島。
  • 運維效率提升,系統更穩定可靠:在保障查詢性能的同時,整體硬件資源消耗進一步降低,系統穩定性與可維護性顯著增強,為後續數據規模增長和業務複雜化奠定堅實基礎。

平台建設:打造標準化的 StarRocks 管理體系

在遷移落地並取得顯著成效之後,團隊意識到要讓 StarRocks 在多業務、多集羣環境下持續穩定運行,僅依靠人工運維已無法滿足規模化需求。

因此,哈囉自研了一套 OLAP 管理平台,以“全流程管控、全場景覆蓋”為核心理念,實現對 StarRocks 集羣的可視化管理與標準化運維。

平台整體聚焦集羣管理、資產管理、權限管控及集羣服務四大關鍵領域,通過模塊化設計與標準化流程,構建起覆蓋 StarRocks 運維全生命週期的管理體系。其核心模塊包括:

  1. 集羣管理模塊:精準記錄 ECS 節點、FE 節點及 BE 節點的核心信息,實現節點狀態全掌握。
  2. 資產管理模塊:統一管理各業務方的計算資源、存儲資源,並清晰記錄 StarRocks 表的上游寫入數據鏈路。
  3. 權限管控模塊:雙重管控業務方權限,既限制集羣訪問權限,也規範 StarRocks 表的查詢權限,保障數據安全。
  4. 集羣服務模塊:集成 StarRocks 運維與業務支撐所需各類工具,打造 “一站式服務平台”,大幅降低跨系統操作成本,核心功能包含:
  • 數據接入工具集成:內置 Hive2SR、Kafka2SR 工具操作界面,支持可視化配置數據同步任務(如選擇數據源、設置同步頻率、配置字段映射),並實時展示任務執行狀態。

  • 審計日誌查詢:提供高效查詢功能,助力業務方快速定位慢查詢問題。
  • Databox 臨時查詢:簡化取數流程,方便業務方快速獲取並使用所需數據。

成效與價值

通過在核心業務場景中的規模化應用,StarRocks 不僅幫助哈囉解決了多業務線的數據處理痛點,更沉澱出一套可複用的技術與管理體系:

  1. 業務支撐升級:從營銷策略平台的實時畫像分析,到兩輪出行數據平台的複雜查詢優化,StarRocks 將核心業務響應時間從分鐘級降至秒級,推動業務從“事後分析”邁向“實時決策”,顯著提升營銷 ROI 與運營效率。
  2. 架構優化與成本降低:通過多雲部署與存算分離架構,StarRocks 滿足哈囉的多環境戰略需求,實現技術降本與資源利用率提升,資源利用率平均提升約 40%。
  3. 管理體系標準化:讓規模化運維更簡單

自研的 OLAP 管理平台覆蓋集羣運維、權限管理、數據接入等全流程功能,形成統一、可複用的技術管理體系。配套的遷移工具與監控方案也可複用於其他 OLAP 引擎替換場景,大幅提升新業務落地與擴展效率。

未來,哈囉將繼續深化 StarRocks 的應用,探索其在實時數倉、湖倉一體、Data + AI 等場景的更多可能性,進一步釋放數據價值,為出行業務的創新與增長提供更強力的技術支撐。

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.