森馬引入阿里雲 SelectDB 替換原 Elasticsearch + 業務庫混合架構,統一分析 16+ 核心業務,打通 BI 組件,大幅簡化數據同步鏈路和分析系統架構。實現複雜查詢 QPS 提升 400%,響應時間縮短至秒級,億級庫存流水聚合查詢縮短至 8 秒內的顯著收益,有效驅動森馬全渠道運營效率持續增長與業務創新。

早期架構面臨挑戰

浙江森馬服飾股份有限公司(深交所 A 股:002563.SZ,以下簡稱“森馬”)是中國休閒服飾和童裝領域的領先企業,旗下擁有'森馬''巴拉巴拉'兩大核心品牌。其中,巴拉巴拉品牌在中國童裝市場佔有率連續多年位居第一,並躋身全球童裝市場前列。集團覆蓋線上線下全渠道零售,門店總數達到 8000+ 家。

為應對日漸激烈的零售行業競爭並完成全域業務模式升級,森馬啓動“全域貨通”中台項目,整合線上線下 8000+ 店鋪,以幫助縮短訂單處理鏈路,整合線上線下全業務庫存,實現庫存可視、共享、協同。同時支持售前售後業務中多維度的操作流水分析、靈活多變的BI分析等場景,為全渠道運營提供靈活高效的決策支撐。

為滿足上述業務目標,森馬基於 Elasticsearch + 分佈式 MySQL 構建了一套混合數據分析架構,使用 分佈式 MySQL 滿足訂單查詢、庫存查詢等簡單實時的數據分析需求,並使用 Elasticsearch 支持多條件過濾、聚合分析等複雜數據分析場景。

森馬基於 Elasticsearch + 分佈式 MySQL 構建了一套混合數據分析架構.png

該架構在使用過程中存在下列問題:

  • 整體架構複雜且靈活性不足:整體架構中存在 Elasticsearch、分佈式 MySQL 兩套冗餘系統,需要根據業務分析需求的特點來選擇合適的系統;業務數據同步至 ES 的鏈路較為複雜冗長,需經過Canal、Kafka、DataSync等組件,且Canal 訂閲會隨着源端庫實例變配導致 Binlog 位點異常,從而導致數據同步異常;由於Elasticsearch多表關聯查詢能力薄弱,需要業務程序把複雜的多表關聯查詢轉化為單表查詢,業務處理邏輯複雜。
  • 數據分析性能不足:面對海量數據聚合計算、多表關聯分析場景性能表現較差,難以滿足大規模數據下複雜的業務分析需求;不支持標準 SQL 與 DSL 查詢語言,無法直接對接集團採購的 BI 套件,難以滿足運營、客服人員靈活多變的數據分析需求。
  • 運維管理複雜:需同時運營管理 Elasticsearch、分佈式 MySQL 兩套系統,且 Elasticsearch 的 DSL 查詢語法對於開發運維門檻較高;需要對 Elasticsearch 集羣、索引進行良好的前期規劃,否則後續可能出現集羣伸縮緩慢、新增索引字段需要重寫歷史數據等問題;當進行海量數據複雜查詢時,容易觸發 Elasticsearch 節點 Full GC 等問題,導致數據分析服務不穩定。

為什麼選擇阿里雲 SelectDB

根據上述業務挑戰,森馬數字中心研發團隊決定引入一款高性能、高靈活性的數據分析引擎簡化架構,經多輪技術驗證,最終選擇阿里雲 SelectDB 作為核心引擎,主要基於以下考量:

  • 多種分析需求的統一支持:阿里雲 SelectDB 可同時滿足簡單的過濾查詢、海量數據的聚合分析、複雜的多表關聯查詢,無需維護複雜的業務邏輯來實現多表關聯分析。此外,阿里雲 SelectDB 支持 MySQL 連接協議,可直接對接主流的商業 BI 軟件。
  • 極致分析性能:阿里雲 SelectDB 在 SSB-Flat、TPC-DS 等業界標準性能測試結果中表現領先,體現了大寬表、多表關聯等多種場景下均具有極致的分析性能,在前期仿真測試驗證過程中,複雜查詢有數量級的性能提升。
  • 簡單易用: 阿里雲 SelectDB 可大幅簡化森馬的數據分析架構,支持通過數據傳輸工具 DTS,一鍵實時同步 TP 數據庫到數倉;採用標準的 SQL 接口,更方便業務人員開發對接;支持快速伸縮集羣、一條SQL完成索引創建等功能。

阿里雲 SelectDB 實時分析實踐

基於阿里雲 SelectDB 完成實時數倉升級後,森馬 16+ 核心業務均切換至阿里雲 SelectDB,數據通過 DTS 實時同步至阿里雲 SelectDB後,由阿里雲 SelectDB 統一對數據應用層提供服務。整體架構如下:

阿里雲 SelectDB 實時分析實踐.png

多場景統一支持

01 實時高頻的訂單檢索分析場景

森馬數據平台匯聚了大規模的平台訂單、交易流水等數據,需要為 2B 業務、2C 業務、直營店、加盟商等多場景提供實時分析協同支持。在該場景下,存在毫秒級的訂單在線查詢、模糊檢索等核心需求。

針對這些需求,森馬研發人員藉助阿里雲 SelectDB 簡單統一的索引方案,能夠輕鬆高效地加以滿足,無需組合依賴多種複雜的索引技術。具體實現邏輯如下:

  • 精準過濾需求:針對訂單信息中訂單 ID、門店 ID 等常用過濾屬性,採用簡單不分詞的倒排索引方案,可數十倍的提升精準過濾查詢性能,相比業界典型的布隆過濾器索引性能更優。
  • 模糊檢索需求:對於訂單信息中的訂單描述等文本內容,採用分詞模式倒排索引方案,可滿足模糊匹配、短語查詢等複雜檢索需求。分詞模式支持配置分詞解析器,並能靈活配置是否支持短語查詢、是否區分大小寫等參數,使得倒排索引調控更為靈活。
-- 建表示例:針對訂單相關字段構建倒排索引
CREATE TABLE order_table (
    order_no VARCHAR(120),    -- 訂單號
    order_info VARCHAR(4096), -- 訂單信息

    -- 其他字段...
    INDEX idx_order_no (order_no) USING INVERTED,
    INDEX idx_order_info (order_info) USING INVERTED 
    PROPERTIES(
        "parser" = "english",     -- 英文分詞解析器
        "support_phrase" = "true",-- 支持短語精確匹配
        "lower_case" = "true"     -- 統一轉為小寫,實現大小寫不敏感查詢
    )
)...

-- 精準過濾
SELECT * FROM order_table 
WHERE order_no = '20230901123456';

-- 模糊檢索匹配
SELECT * FROM order_table 
WHERE order_info MATCH_ANY '2023 order';

02 海量數據的聚合分析場景

森馬庫存數據量高達億級,操作流水數據量高達十億級規模。 在業務高峯時段,運營人員需要集中對數據進行多維度聚合統計分析,以便及時掌握業務動態。此前,森馬採用基於 Elasticsearch 的聚合分析方案,該方案在高峯期多請求並行分析大量數據時,性能表現欠佳,系統會出現服務不穩定的情況,影響業務正常開展。

阿里雲 SelectDB 憑藉其高性能的分析引擎,有效解決了森馬在海量數據聚合分析場景的痛點。即使在業務高峯期,面對高併發分析請求,阿里雲 SelectDB 也能保證服務整體壓力平穩,確保數據分析高效、穩定進行。

-- 千級門店的訂單狀態分析
SELECT status, COUNT(*) AS count FROM order_table WHERE store_code IN ('D80201', 'D80261', 'D80489'...) GROUP BY status

-- 物流倉庫的海量操作流水分析
SELECT COUNT(*) AS total FROM stock_change_log log WHERE log.real_warehouse_code IN ('2SJM1S0441', '2MXAAS0211', '2QAS1S0341'...)

03 靈活多變的 BI 分析場景

森馬內部早期定製開發了較多的報表及分析頁面,新需求開發和存量分析功能維護成本非常高。在應對 2B 業務、2C 業務、直營店、加盟商等多場景下靈活多變的需求時,定製開發方式逐漸暴露出不足。因此森馬逐步引入了商業 BI 組件,藉助其簡單拖拽的操作方式,為各業務場景提供靈活高效的數據分析能力。 而 Elasticsearch 不支持標準 SQL 與 DSL 查詢語言,無法與主流 BI 接入打通。

阿里雲 SelectDB 則採用標準的 MySQL 協議,能與大部分 BI 組件實現無縫對接,完美解決了森馬業務場景下基於 BI 組件進行進行靈活數據分析的需求。從實際應用情況看,SelectDB 完美支持 BI 組件拼裝的複雜關聯 SQL 語句,可以讓業務人員輕鬆實現複雜的數據分析需求,並提供秒級高效分析體驗。

靈活多變的 BI 分析場景.png

極致的查詢性能

藉助阿里雲 SelectDB 的高性能查詢引擎,森馬實現了海量數據查詢效率與系統擴展性的雙重突破

  • 在千萬級訂單檢索過濾場景下,相較於傳統數據庫與 ES + 業務庫混合架構,阿里雲 SelectDB 查詢 QPS 提升約 400%,達到 QPS 200+ 水平,大幅提高訂單檢索過濾效率。
  • 在十億級庫存流水聚合分析場景下,阿里雲 SelectDB 將查詢耗時縮短至秒級,讓業務人員能夠更快地獲取分析結果,及時做出決策。
  • 在千萬級數據多表關聯分析場景下,阿里雲 SelectDB 無需複雜的業務邏輯開發,性能達到秒級水平。

森馬全域貨通中台全量上線後,在業務高峯期,集羣資源壓力也比較可控,系統運行非常平穩。此外,在壓力測試環境中,阿里雲 SelectDB 展現出了出色的線性擴展能力,可通過彈性擴容支持更高的業務流量,為森馬的業務發展提供堅實的技術保障。

極致的查詢性能.png

成熟易用的產品體驗

目前,森馬全域貨通數據中台已全面上線,阿里雲 SelectDB 在其中提供了出色的產品體驗,幫助森馬降低運維成本,提高研發效率:

  • 簡化技術架構: 阿里雲 SelectDB 統一了多個數據分析組件,以往運維人員需分別維護多個組件,而如今僅需關注阿里雲 SelectDB 單平台,降低日常維護成本。
  • 實時化數據鏈路: 與 DTS 打通實現實時數據同步,並可自動同步常見的 DDL 操作(如自動加列),數據鏈路延時控制在 5 秒以內。在數據變更或出現異常的場景下,數據同步鏈路可快速自愈,有效保障了數據的及時性和準確性。
  • 高度兼容標準 SQL: 阿里雲 SelectDB 具備出色的 SQL 兼容度,原有分佈式 MySQL 相關查詢基本無需改動即可完成遷移。同時,阿里雲 SelectDB 消除了業務代碼中複雜的多表關聯處理,無需再為複雜的關聯邏輯而煩惱,大幅提升了研發效率。
  • 可視化數據開發:阿里雲 SelectDB 提供了可視化的數據開發工具 SelectDB Studio,研發人員可以通過直觀的界面進行 SQL 開發、日誌檢索分析、審計查詢、慢查詢分析以及權限管理等操作,簡化了數據分析開發的對接過程,讓研發工作更加便捷高效。

成熟易用的產品體驗.png

阿里雲 SelectDB 自全量上線以來,在業務高峯期能輕鬆應對讀寫流量的衝擊,整體服務質量始終保持平穩,為森馬業務提供了可靠的數據分析能力。

靈活彈性和資源隔離

阿里雲 SelectDB 採用存算分離架構,計算資源彈性伸縮過程快速且平穩,具備簡單靈活的彈性伸縮能力。在森馬全域貨通的業務高峯期,尤其是直播大促等高壓力時段,容易出現流量激增的突發情況。此時,可快速對阿里雲 SelectDB 進行彈性擴容,以應對激增的業務需求。當流量高峯過去,再按需適當縮容,從而降低成本。值得一提的是,阿里雲 SelectDB 擴縮容過程均為在線操作,無需停服,也無需大量數據搬遷,極大地提高了業務應對突發情況的靈活性和效率。

除了彈性伸縮能力,阿里雲 SelectDB 還提供了優雅的資源隔離方案。基於存算分離架構,多個計算組可以強一致地共享分析同一份數據,該特性滿足了森馬多查詢場景之間的隔離需求。例如,在線類訂單查詢服務獨立採用一個計算組,確保訂單實時性與高效性。而離線類的聚合分析、BI 分析場景獨立採用另一個計算組,避免相互干擾。阿里雲 SelectDB 提供的資源隔離能力不僅簡單易用,且無需額外存儲成本,為森馬提供了低成本、高效的計算資源隔離方案。

靈活彈性和資源隔離.png

應用收益

森馬基於阿里雲 SelectDB 完成數據架構升級後,實現了查詢效率的質變的同時降低了運維成本,為全域貨通項目的成功提供了關鍵支撐,取得了以下關鍵收益:

  • 數據分析效率顯著提升: 複雜查詢 QPS 提升 400%,響應時間縮短至秒級,億級庫存流水聚合查詢縮短至 8 秒內,打通 BI 組件提供靈活按需的分析能力,大幅提升2B 業務、2C 業務、直營店、加盟商等多場景下的數據分析效率。
  • 運維成本大幅降低: 16+ 核心業務均切換至阿里雲 SelectDB 統一分析,數據架構與同步鏈路大幅簡化,可直接基於 SQL 語句直接展示結果,無需二次開發中間層,節省額外開發成本。此外,通過存算分離架構實現計算資源彈性擴縮容,提升性能的同時大幅降低了運維成本。
  • 支持穩定運行: 阿里雲 SelectDB 由 Apache Doris 原廠飛輪科技提供 7 * 24 小時技術支持,在重大保障期間及時響應,有效支撐“一個森馬、一個團隊、一個目標、一起奮鬥” 戰略目標,為森馬全域零售建設提供敏捷技術能力。

未來規劃

未來,森馬將繼續深化阿里雲 SelectDB 在更多業務場景中的應用,以實現更高效的查詢,驅動全渠道運營效率持續增長與業務創新:

  • 報表導出加速: 森馬計劃引入阿里雲 SelectDB 湖倉融合分析能力,利用阿里雲 SelectDB 進行數據加工,然後將數據導出到外部存儲,支持數據的進一步分析處理需求。
  • AI 智能應用: 森馬期待未來阿里雲 SelectDB 深入與 AI 相結合,協助快速分析調優 SQL 語句,同時為業務提供更智能的 AI 報表能力。