BOCDOP 寶舵早期基於 TiDB 構建實時數倉,隨着數據量增長,在數據處理效率、OLAP 能力擴展、功能支持、成本與資源方面存在一定優化空間。為提升數據分析能力並優化成本,寶舵引入 SelectDB,達成寫入速度提升 10 倍,成本直降 30% 的顯著成效。
本文轉錄自高瑞軍(寶尊科技 高級架構師)在 Doris Summit Asia 2024 上的演講,經編輯整理。
業務背景
寶尊集團創立於 2007 年,是中國品牌電商服務行業的領導者、先行者及數字商業賦能者。目前寶尊集團約有 8000 名員工,業務遍及東亞、東南亞、歐洲、北美等多個國家和地區,服務全球各行各業超過 450 家品牌,立足為品牌提供面向全球、面向未來的服務與產品。BOCDOP 寶舵(後文簡稱"寶舵")是寶尊集團商業化獨立品牌,目前擁有 1000 餘名內部技術工程師,為集團業務提供強大的自主研發系統支持。
寶舵 BBI Cloud 是由寶舵開發的電商全渠道數據採集、整合與分析應用產品,核心功能包括:
- 多渠道數據採集與自助取數: 支持 100+ 模塊的多渠道數據實時接入,覆蓋多渠道店鋪運營業務。提供一站式拖拉拽與透視分析功能,滿足自助取數需求;
- 主題報表與可視化分析: 提供業務必需的主題報表與可視化洞察分析看板,支持分鐘級交易數據呈現,幫助用户實時掌握最新業務動態;
- 自助開發與靈活分析: 集成外部 BI 工具,支持用户自定義指標和維度,實現靈活自助分析。
為支撐寶舵 BBI Cloud 數據分析服務,寶舵需要一個具備多源異構數據接入能力、高實時性可擴展、穩定性優異的實時分析數據庫,該數據庫需要涵蓋以下功能:
- 多源異構數據實時接入: 支持多渠道(100+ 模塊)的結構化、半結構化數據(如日誌、交易、用户行為數據)接入,集成流式數據接入能力(如 Kafka、RMQ),確保多渠道數據低延遲同步更新;
- 高實時性與低延遲響應:支持 Chat BBI 產品的自然語言交互、可視化看板等場景,要求毫秒至秒級查詢響應。針對業務主題報表(分階段交易數據、行業競爭分析),高效處理 OLAP 多維度聚合查詢,支持數百至上千併發用户的自助取數和訂閲下載操作,避免性能瓶頸。
- 擴展性與穩定性:採用分佈式架構,支持水平擴展以應對 PB 級數據量增長,兼顧實時寫入與複雜查詢,避免資源爭用。具備高可用機制,確保 7*24 小時服務連續性,尤其保障關鍵業務報表場景的穩定性。
早期架構
寶舵早期基於 TiDB 構建實時數倉,在實際研發與使用過程中,存在着一些挑戰與優化空間:
- 數據處理效率 :在處理大規模數據插入或刪除時,需要調整特定參數(如
tidb_batch_insert和tidb_dml_batch_size)以優化性能,對不同業務場景的適配提出了更高要求; - OLAP 能力擴展:在執行大規模數據分析任務時,寶舵需額外增加 TiSpark 節點避免影響正常查詢,該過程增加了運維複雜性與成本;
- 功能支持:在實現複雜分析需求時,窗口函數的使用存在一定限制,且分區表和視圖創建功能尚未完全支持,在開發層面存在優化空間;
- 成本與資源:TiDB 在節點數較多的情況下授權費用較高。此外,對 NVME 磁盤的依賴以及單實例 SSD 磁盤的限制,使得存儲空間的管理與擴展面臨一定挑戰。
為提升數據分析能力並優化成本,**寶舵經過綜合選型對比,最終選擇 SelectDB 替換 TiDB 構建實時數倉。**SelectDB 是飛輪科技基於 Apache Doris 打造的現代化實時數據倉庫,以其卓越的實時分析能力、高性價比、易用性、安全性及穩定性,為寶舵提供了強大的實時大數據分析支持。
基於 SelectDB 打造寶舵 BBI Cloud
2023 年上半年,寶舵完成了數據類應用 SelectDB 遷移工作。在 618 大促期間,通過 22 張實時報表驗證了 SelectDB 的性能與穩定性。此後,寶舵將 BBI Cloud 剩餘的實時數據應用逐步遷移至 SelectDB。至雙 11 大促時,所有原 TiDB 上的應用均已切換至 SelectDB 運行。經過兩次大促實戰驗證,得出結論:SelectDB 能夠穩定滿足寶舵高併發實時數據供應需求,為業務提供了堅實的技術保障。
寶舵數據源涵蓋內部業務系統數據、平台與三方數據以及填報與歷史數據,不同的數據源採用不同的數據同步方式:
- 內部業務系統數據:包含集團內部 OMS、WMS、PIM 等內部系統,涵蓋 MySQL、MongoDB、Oracle 等不同類型業務數據庫。採用 Canal、Mongo-Connector、OGG 等工具獲取對應業務庫的 binlog,並將這些日誌傳遞至 Kafka 完成數據同步;
- 平台與第三方數據:該部分數據包含國內外 30 餘家電商平台數據,以及部分第三方數據,主要採用 Java 程序進行數據同步;
- 填報與歷史數據:該部分數據包含品牌客户手動填報的銷售目標數據,用於與實際銷售數據進行對比分析,直接使用 DataX 數據同步工具寫入。
在數據鏈路方面,離線數據將存入 Hive。實時數據則通過 Kafka + Flink 鏈路流轉至 SelectDB,由 DolphinScheduler 調度,經 SelectDB 計算後,進行近實時數倉分層。結合 SelectDB 內表和 Hive Catalog 能力,為應用層提供統一數據查詢服務。
在應用層,寶舵將報表工具集成至 BBI Cloud,基於 SelectDB 實時分析能力,提供實時可視化看板與精品模板,同時開發了自主分析取數模塊,圍繞預售、交易、履約、庫存等主題構建維度表與實時寬表,並基於數據分析結果在自助取數分析平台形成指標與事實維度,使得店鋪運營人員能夠自主開發部分報表,靈活滿足不同品牌的數據需求。
雙 11 大促數據鏈路監控實踐
作為電商,寶舵每年會經歷多個大促活動,其中,雙 11 大促規模最大,數據量可達平日的 30-60 倍。為滿足業務人員及部分 Business Group 實時觀看全渠道銷售數據的需求,寶舵基於 SelectDB 支持 BBI Cloud 雙 11 大促作戰室報表,具體實現如下:
- 實時數據寫入:通過 Flink + SelectDB 流式寫入能力,將分散在 100+ 業務模塊(如訂單、支付、物流)的數據實時匯聚,實現秒級延遲的數據同步;
- 寫入吞吐優化:利用 SelectDB 的分區分桶策略與單副本寫入機制,在雙 11 峯值時段(如 0 點搶購)實現每秒百萬級數據寫入,最高寫入速度較傳統方案提升 10 倍;
- 實時寫入監控:通過集成 Prometheus + Granafa,實時監控寫入吞吐量、版本合併積壓、磁盤 IO 等核心指標,並以動態水位線可視化展示,確保系統穩定性;
- 數據一致性保障:通過自研的數據比對工具,對源頭業務庫(如 MySQL、Oracle 等)與數倉落庫進行數據比對,確保數據一致性;
- 資源隔離與高可用:為"作戰室看板"單獨分配計算資源組,避免高併發查詢與實時寫入的資源爭用,確保關鍵業務查詢響應時間穩定在 500ms 內。同時採用多活集羣部署,通過 FE BDBJE 協議實現元數據強一致性,數據節點高可用容災,任一節點故障時自動切換,業務無感知。
基於 SelectDB 新架構,寶舵實現了業務與平台數據的實時抽取與多渠道整合、數據供應 0 事故、報表服務可用性 99.9%,並配備了實時監控預警。此外,數倉鏈路基於 SelectDB 完成了優化,數據同步提速 30%,最高寫入速度提升 10 倍。
收益總結
寶舵基於 SelectDB 完成架構鏈路升級後,對比原 TiDB 架構,取得了以下關鍵收益:
- 成本顯著降低:存量成本降低 50%,增量成本從機器費用、License 費用、廠商運維費用降低到僅需機器費用,成本直降 30%;
- 最高寫入速度提升 10 倍:最高寫入速度從 20 萬/分 提升至 230 萬/分;
- 查詢性能大幅提升:小 SQL 查詢在速度不變的情況下,資源消耗降低了 33%,大 SQL 查詢性能提升 66%。
未來規劃
目前,寶舵已在多次大促中實踐應用了 SelectDB,解決了數據處理侷限、功能支持不足、成本高昂等問題,相較於原先的數據架構,最高寫入速度提升 10 倍,查詢性能大幅提升,成本直降 30%。寶舵規劃繼續基於 SelectDB 擴展其 BBI Cloud 功能,並不斷使用 SelectDB 更新的能力為更多業務場景賦能,持續進行架構演進與功能探索:
- 湖倉一體實踐:藉助 SelectDB 的湖倉融合能力消除數據孤島,統一數據湖的構建和計算引擎;
- 物化視圖探索:通過後續引入多表關聯物化視圖,進行近實時數據更新,並將資源消耗降到最低;
- 存算分離應用:目前寶舵使用存算一體架構,未來將嘗試存算分離應用,通過分離存儲與計算資源,提升系統可擴展性並降低成本。