破解双中台困局:万家数科 x StarRocks 数字化技术实践

本文发表于: &{ new Date(1660233600000).toLocaleDateString() }

华润万家是世界 500 强企业华润集团旗下优秀零售连锁企业,也是中国最具规模的零售连锁企业。万家数科商业数据有限公司(以下简称“万家数科”)是华润万家 100% 控股的信息科技公司,在服务华润万家的同时,为零售商及其生态提供核心业务系统的整体解决方案与运维服务。

2019 年,万家数科自主研发了聚合支付平台——Vapay,作为腾讯、阿里的独立软件服务商(ISV)为零售商提供聚合支付服务,开启市场化之路。2021 年自主研发了供应商数据服务平台——数据罗盘,为零供协同赋能。

#01 万家数科聚焦在零售行业的“业财一体”数智化技术创新实践

如何把零售行业的业务流程、财务会计流程、管理流程有机融合,使财务数据和业务数据融为一体。实现最大限度地在企业内部实现数据共享,实时控制经济业务,实现信息化管理、降低成本,为企业赢得更多商机和利润。

在技术层面上,万家数科积极创新,通过建设业内首创的微服务架构“规则中心”、“单据中心”,重塑财务规则,为业财一体化奠定关键基础。通过业务中台、数据中台双轮驱动,为业务赋能。

#02 双中台下的数据查询困局

原构建的数据流程图如下:

1. Apache Hive(以下简称 Hive)中的数据存量已有上百 TB,供应商的 API 接口调用都需要数仓开发工程师从 Hive 中跑批捞数据,开发工作量繁重、效率低、运维成本指数级增长;

2. MySQL 缓存库是 Hive 离线 T+1 计算好的结果数据,所有 API 接口调用均面向这个缓存库,未来还会面向外部合作供应商如京东、美团,经常出现 API 接口调用超时;

3. 对于前端业务系统直接产生的单据明细数据,为了提升采购协同效率,针对市场变化快速反应、降低库存成本,从下单、审批到订单采购、配送、单据结算的整个过程供应商希望看到实时的数据更新,对于部分高流量的业务查询,即使做了分库分表处理,存量数据也达到了千万级, MySQL 难以支撑,响应时间无法达到预期。另外,海量数据压缩率过低,也增加了平台成本。

4. 基于微服务模式下的 API 数据接口组合模式,在查询某个供应商的应付款余额等少量数据查询请求时还可以应付。对于批量查询,比如,查询所有冻结状态的供应商应付款余额,就比较复杂了。需要先根据冻结状态,通过供应商 API 接口找出所有冻结的供应商编码,再利用这些编码到应付款余额 API 中查询。前端还需要通过程序代码进行查询结果的拼接。API 接口服务的不稳定,经常会出现数据查询超时,API 组合模式检索分散在多个服务中的数据也导致存在昂贵、低效的内存数据拼接。

#03 寻找解决问题的银弹

我们决心用一个超强的数据底座,实现即席数据查询,打造实时数仓。在数据底座的产品选型上,我们对比了ClickHouse、TiDB、StarRocks:

  • ClickHouse:在单表查询上有比较好的查询性能,但我们的业务场景涉及较多的多表 Join,所以 ClickHouse 并不能很好满足我们的需求;
  • TiDB:相比 ClickHouse 和 StarRocks,更适合 TP 类的业务场景,在 AP 场景下的查询性能相对弱一些;
  • StarRocks:已实现全面向量化,支持高并发查询、复杂 SQL 查询。在单表和多表关联查询性能都表现比较好,数据可以灵活建模,支持标准的 MySQL 协议。作为新一代极速统一的 MPP 数据库,StarRocks 有稳定的国内技术团队提供本地化支持服务,方便进行集群扩缩容,运维成本相对低。

经过综合审慎的评估,我们选择 StarRocks 来进行我们的数据底座的搭建。

#04 最佳的解决方案:StarRocks

新方案下的数据流程图:

作为数据底座,StarRocks 汇集前端业务产生的各类过程及结果业务单据,确保业财数据一体,财管结果的一致性,同时也释放核算系统压力,提升核算运行效率。也为后续进一步解耦 ERP 形成一套自有产权的零售产业核心 ERP 奠定基础。目前生产集群将近四百个 CPU 核心,四千 GB 内存,已开发上线近百张报表,解决了之前以 MySQL 作为查询缓存库出现的查询时间长、API 接口调用超时的问题:

1. 已经服务于超过 3000 家门店进行财务结算和对账等,比如月初/月末查看供应商付款与欠款情况,以及每天早上门店实时查看不同供应商的销量情况。

2. 查询 QPS 在近千级别,可做到秒级延迟。

#05 展望未来

StarRocks 工具在“业财一体化”技术方案实施落地的过程中,无论产品力还是服务能力,都带给了我们很高的信心。因此后续解决方案升级中,计划将相关业务的技术方案逐步迁移到 StarRocks,实现 OLAP 层统一。

另一方面也将继续探索 StarRocks 新 feature 在创新数字化转型的典型数据分析场景中应用。

万家数科将持续广纳新技术,在数据应用领域持续发力,打造零售行业的数字化标杆。