返回
用户案例

森马服饰从 Elasticsearch 到阿里云 SelectDB 的架构演进之路

森马 新中台技术负责人 朱小凡· 2025/06/24

森马引入阿里云 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 报表能力。