在DTC(Direct to Customer)趋势下,零售企业纷纷建设面向最终消费者的大前台,例如自营电商、微信小程序等,使得产品和服务加速迭代。业务需求对IT基础设施的要求就是“快”和“准”,云盛海宏不断夯实数据底座来应对外部环境的变化。
云盛海宏是一家零售业科技公司,以科技的力量为门店和线上客户打造360度的优秀体验,目前服务中国近万家的线下门店和千万级别的线上会员。
业务挑战
云海零售系统是支撑着全渠道、全品类运动鞋服零售服务平台的关键系统。最初,云盛海宏采用微服务和MySQL分库分表的方式支撑云海零售系统。随着业务的快速发展,MySQL集群在复杂报表分析方面的支持不足。为了解决实时报表的问题,云盛海宏引入了Oracle作为报表需求的分担,并通过Otter进行数据的实时同步。然而,随着数据爆发式增长和需求难度的增加,基于MyCAT的分库分表架构面临新的挑战,需要增加或者调整表结构,从维护层面增加了大量人力成本。此外,Oracle也遇到了单点性能无法扩展、聚合库分析时效差等问题,云盛海宏开始积极寻求替代方案。
经过详细的对比测试,包括大数据量的查询以及复杂SQL的查询性能等方面的细致比较,TiDB在解决Oracle存在的问题方面表现得非常出色且高效。在小规模试用取得效果之后,云盛海宏最终决定正式引入TiDB。
解决方案
云海零售系统使用TiDB支撑面向最终用户的营促销业务,横向扩展能力支持海量数据高并发,通过实时的行为数据分析洞察用户需求,实现对用户生命周期的全程追踪,在360°画像的基础上进行产品和服务创新。利用TiDB HTAP能力,实时获取跨业务的聚合数据,支撑企业运营管理对实时、复杂数据查询的需求,几千行的业务报表SQL也能高效执行。目前,云盛海宏已部署两个TiDB集群分别承担前端和后台的业务负载,集群总规模已达百台,数据量将近15 TB,业务高峰期QPS达到两万多,最大业务单表达到了600 GB。
图:云海零售系统架构示意图
业务价值
高度兼容MySQL的分布式数据库
TiDB原生分布式架构提供灵活的在线扩容和缩容能力,快速响应业务需求的变化。TiDB高度兼容MySQL协议,应用程序可实现从MySQL到TiDB的无缝迁移,无需考虑分库分表以及分布式事务的实现,降低了业务开发人员的开发与学习等隐性成本。
简化数据栈,节省硬件资源
TiDB HTAP混合负载能力为企业多个业务提供一栈式数据服务,既能支撑前端业务的在线事务处理,又能支撑多源数据的实时分析。新架构降低了80%的otter数据同步通道,与MyCAT分库分表架构相比,部分库表冗余度从10份降低到2份,再加上TiDB自带的压缩能力,硬件资源可节省约50%左右。
运维工作大幅提效
与管理MySQL集群相比,TiDB可以做到轻量级维护。原先DBA以月或者季度为周期需要一次性完成十几个实例的数据迁移,维护工作量巨大且数据迁移风险极高。引入TiDB之后,DBA不用再为MySQL日常巡检、归档和备份这些动作耗费时间,大幅提升了运维工作的效率。
“疫情对我们的业务带来了很大冲击,我们开始发力做线上业务,技术侧最直接的压力来自于库存管理模块的变化。原本,从接到需要对接淘宝、京东、唯品会、抖音等平台的需求到最终落地需要三个月甚至半年的时间,但因为我们前期已经切换到了TiDB,技术栈层面做好了充足的准备,最终只用了两周时间就完成了单平台库存管理模块的调整”,云盛海宏首席架构师洪亮如是说道。