客户说|ERP服务商万里牛引入云原生数据库PolarDB,助力电商SaaS系统增效降本

本文涉及的产品
云原生数据库 PolarDB PostgreSQL 版,企业版 4核16GB
推荐场景:
HTAP混合负载
云原生数据库 PolarDB 分布式版,标准版 2核8GB
云数据库 RDS MySQL,集群版 2核4GB 100GB
推荐场景:
搭建个人博客
简介: 业务流程提速明显,大幅提升经营效率

1. 导言

日前,中国电商ERP系统开发商龙头之一万里牛, 在其ERP系统中引入了阿里云瑶池旗下的云原生数据库PolarDB,借助PolarDB一站式事务处理和数据分析解决方案,同时利用In-Memory Column Index(IMCI)和并行执行提供的HTAP实时数据分析能力,以及高压缩引擎X-Engine提供的低成本海量记录读写能力,实现了SaaS ERP系统的“增效降本”,解决了ERP SaaS平台客户数据快速增长后的复杂查询分析效率难题,以及历史订单记录数增长带来的存储成本飙升难题,通过一站式的解决方案快速满足业务发展。

2. 关于万里牛

万里牛是湖畔网络旗下的产品品牌,万里牛以ERP为核心,形成包括WMS、跨境ERP、BI、门店零售、云订货等在内的产品矩阵,服务于开展国内电商、跨境电商和实体门店等零售业务场景的企业,经过多年发展,万里牛已成为国内电商ERP领域的龙头SaaS服务提供商。

万里牛基于阿里云丰富的云产品体系构建其电商SaaS平台。在数据库方面,大量使用了OLTP型产品PolarDB MySQL、RDS MySQL,NoSQL使用了Redis、Lindorm等,在OLAP型产品方面,使用了在线数仓、离线分析产品,通过产品和方案的组合来满足电商SaaS各个业务模块对数据库的多种需求。  

3. 万里牛电商SaaS ERP系统

在电商领域,ERP系统可以帮助商家降低履约成本,提升作业协同效率,同时助力提高企业管理效率,涉及到电商业务流程的各个方面,覆盖订单处理、仓储管理、采购协同、分销管理、库存管理、售后工单、业财一体、数据分析等各个模块。

3.1 订单管理(OMS)

订单处理是万里牛ERP的核心模块,万里牛支持来自200多个国内外电商平台的订单通过实时同步方式下载到ERP中。一旦订单被下载,系统会根据自动化匹配策略,选择最合适的仓库、快递和是否需要拆单,以确保最快履约和最低成本。超过90%的订单通常会自动进入下一步,通过智能策略进行处理,而其他订单则需要进行人工审核,通过客服与消费者的沟通来决定是否延迟发货或进入售后环节。如果消费者通过线上平台提交退款或退换货申请,订单会自动处理,无需人工介入。

3.2 仓储管理(WMS)

订单经过人工或自动化审核后,会进入万里牛智能仓储系统的作业环节。在这里,仓库工作人员会进行打单、分拣、打包、验货、称重和出库等全流程,以确保消费者能尽早收到自己心仪的宝贝。当然,系统也有多项智能策略来提高仓内作业效率。每一个商品都按照标准的库位号、货架号、层数等整齐地存放在货架上,拣货员可以使用播种拣货模式,自动带入任务,依序将订单放入对应的播种框中,按照PDA提示到达指定库位,扫描条码将商品放入指定的播种框中。使用PDA指导,仓储作业人员可以通过单次“S”型路径,走更少的步数拿更多的货,快速高效地完成该波次下所有订单的拣货任务,省时省力。

3.3 数据管理

基于万里牛ERP中庞大的商品、订单数据,搭配万里牛ERP里的几十张多维度报表和BI工具,轻松实现高效、全面的数据分析和决策支持。其中,多环节报表集合能够实现全场景数据的覆盖,让用户一目了然地掌握企业各个环节的数据情况。预设数据分析模板则为用户提供了量化业务环节的核心指标,帮助他们更加全面地分析和把握企业的运营情况。  

零代码自定义搭建数据看板是另一个非常实用的功能,它能够让用户轻松抓取核心业务信息,无需编写代码或拥有专业技能,通过拖拉拽的形式让用户能够快速建立自己的数据看板,实现高效的数据分析和管理。此外,账号自定义权限设置能够保障用户数据安全,让企业内部数据不被泄露或滥用。最后,销量预测、库存预警等智能分析能够灵活配合市场决策,让企业的决策更加准确和高效。

万里牛ERP数据库采用典型的SaaS多租户架构,某个商家的慢SQL可能影响同数据库上其他商家系统卡和慢,同时订单管理作为ERP的核心,也是数据密集型应用,对数据写入和分析实时要求高,在多租户架构下,慢SQL雪崩效应可能进一步放大,因此,解决慢SQL能够有效提升客户体验和降低系统运行风险。

4. 增效:PolarDB IMCI提升访问体验

万里牛ERP最初使用MySQL作为核心数据库,在早期数据体量较小、业务模式相对简单的情况下,MySQL支撑了业务发展,但随着公司规模扩大、客户体量逐年增加,业务场景变得越来越复杂,日单超数十万的客户数量也在持续增加。随着直播等新的业态发展,原生MySQL已经无法完全满足各种复杂查询和承受突发的爆单压力。

为解决复杂查询的效率和技术问题,万里牛技术团队采用了PolarDB MySQL提供的In-Memory Column Index功能

PolarDB一站式HTAP数据库产品解决方案

使用IMCI技术方案,万里牛ERP系统可以在无需额外技术研发投入和业务功能调整的前提下,快速解决众多数据库痛点。以下举例介绍万里牛ERP如何使用IMCI的。  

4.1 灵活查询的高效响应

电商ERP面向各个商品类目客户群体,每个类目的业务细节和业务需求多样且差异较大,体现在ERP系统里,订单查询页面就需要实现各种查询项来满足用户使用,同时数据需要进行实时汇总查询,例如库存、快递成本。

审核页面查询项

以选择订单修改快递为例,快递公司会高频的调整快递费用计算规则,计算规则由包裹重量、最大单边长度、收件地区等因素决定,商家需要基于此类条件,快速查询出对应订单,调整快递申请电子面单,否则就会影响发货时效和成本。在使用PolarDB In-Memory Column Index之前,主要依赖于MySQL行存索引能力,但对于类似如下的复杂SQL,如果交易trade存量在1000万以上,查询延时会急剧增加,不能有效保证客户的页面响应时间。

SELECT a.*
FROM TRADE a
WHERE a.COMPANY = '~7A~'
AND a.SHOP IN ('~2F2~', '~D41D4~', '~DB60~')
AND a.STORAGE IN ('~6251FA7~', '~72EBD3~', '~47BA~', '~B5C9~')
AND (a.MESSAGE LIKE CONCAT('%', '停发11.24', '%') OR a.MEMO LIKE CONCAT('%', '停发11.24', '%') OR a.REMARK LIKE CONCAT('%', '停发11.24', '%'))
AND a.STATE = 0 
AND STATUS = 0
 AND a.weight >= 0 and a.weight <=0.18
  AND a.sum >= 1 and a.sum <= 2
AND NOT EXISTS 
(
SELECT 1 
FROM ORDER o
 WHERE a.UID = o.SUID 
 AND (o.ITEM_ID IN ('~35CA~', '~0325~') OR o.SKU_ID IN ('~0EC46~','~903~', '~82AD~'))
) 
AND NOT EXISTS 
(
SELECT 1 
FROM ORDER o 
LEFT JOIN trade t ON o.sys_trade = t.salercpt_uid 
LEFT JOIN INVENTORY pi ON pi.COMPANY = o.COMPANY AND pi.SKU_ID = o.SKU_ID AND pi.storage_id = t.STORAGE
WHERE o.SUID = a.UID 
AND  IFNULL(pi.P_QUANTITY, 0) <= IFNULL(pi.P_LOCK, 0)
AND o.COMPANY = '~7A4F4~' 
AND o.order_status != x 
);

在引入PolarDB IMCI之前, 对应的订单管理系统SQL监控如下,会存在大量订单查询慢SQL:

使用MySQL慢查询监控

在引入使用PolarDB MySQL之后,我们在原有PolarDB集群上配置一个带列索引的节点,然后在复杂查询的表上创建了列存索引。之后将前述复杂的订单查询请求通过hint注解,直接打到IMCI节点。在trade单量超过1000万数记录条目的场景下,PolarDB IMCI能够大幅度提升查询速度,同时也极大降低了普通业务读写节点的压力。

如下图所示,在使用PolarDB IMCI之后,平均执行时间和最大执行时间都有了大幅降低。在一个8C的计算节点上最大执行时间也都能控制在10S以下,在大促时间通过Serverless弹升计算节点规格,查询时间还能进一步降低。

使用IMCI之后的SQL响应延时监控

4.2 一站式事务处理和实时数据分析

在使用PolarDB IMCI之前, 受限于MySQL的复杂查询效率限制,如果需要在处理日常OLTP业务的同时运行复杂查询和实时报表,通常无法满足报表查询的时延要求。此时,则需要引入其他专门的数仓或者检索系统并将数据同步过去,然后使用两套系统的组合方案,会遇到两个挑战:

数据一致性问题:通常,OLTP系统和下游数仓或者检索系统会通过Binlog进行数据复制, 这个数据同步延迟只能控制在秒级别,且偶尔会出现延迟抖动,导致用户在下游数仓系统查询的数据与ERP系统的OLTP数据中数据不一致性,极大地影响用户体验。 一个典型场景,当上下游数据延迟时, 商家在ERP系统中对某一批订单做发货处理之后,去刷新监控大屏页面查看当前订单的发货统计信息,会发现刚刚已经发货的那批订单还处于未发货状态。

数据冗余及维护: ERP系统本身非常复杂,涉及到非常多的系统组合,因此存在很多库和表。对于万里牛,还有数据量大的难题,引入多套存储系统就会产生重复数据和多套代码实现,不仅浪费开发资源,还会导致高昂的存储成本。


因此传统方案无法有效满足万里牛的需求,PolarDB HTAP是一站式的事务处理和数据分析解决方案,首先在现有PolarDB集群中通过添加列索引即可以让复杂查询提速百倍,免去了维护多套系统的麻烦;其次,PolarDB的列存分析节点通过Redo物理日志与写入节点进行实时数据同步,平时同步延时在亚毫秒高峰期不超过5ms,再结合PolarDB Proxy的事务一致性读配置,可以实现强一致读写分离。万里牛ERP系统在切换到PolarDB后,借助PolarDB一体化的IMCI ,以很低的开发成本解决了对实时数据做复杂查询的效率问题,不再需要额外的数仓系统。在减少成本的同时,避免了开发资源的浪费,提高了用户体验。

万里牛ERP订单系统数据库实例拓扑

万里牛ERP从22年开始将订单和交易数据存储在PolarDB MySQL上,充分利用了其强大的HTAP能力,针对相关业务代码的调整,只需要在SQL中增加Hint注解即可实现,无额外新增开发成本投入。

在整体使用PolarDB IMCI之后,在单集群8C16G数据库配置,以OMS典型业务场景为例,每小时压测指标如下:

整体而言,大幅加快了ERP业务系统的处理速度,从商家侧来看,万里牛头部某服饰商家反馈说:“万里牛的ERP系统经过近期升级后,给我们感觉更快了,比如审单、发货、物流推送等相关业务流程提速明显,对我们商家来说,可以大幅提升经营效率!”

5. 降本:高压缩引擎X-Engine实现海量交易订单历史存储

作为国内头部的电商ERP SaaS系统开发商,万里牛所管理的数据具有两个特点:

  • 数据体量大:考虑到交易订单按时间积累的特征,交易订单库单个表的行数往往达到千万甚至亿级别, 耗费大量的存储成本。  

  • 周期性明显: 交易数据通常在7天、30天和90天后出现明显的使用热度下降,但考虑到售后等因素,这些数据又不能完全冷归档,对于很多类目产品,如大家电类等售后有效期长的产品需要对历史数据进行修改。

万里牛在使用PolarDB期间,PolarDB研发团队针对历史交易记录/聊天记录等数据量大且访问周期性特征明显的数据存储问题,提出了在线/归档一体化的混合引擎架构, 即在PolarDB 标准版本集群中,除了InnoDB这一事务引擎之外,同时支持实现了X-Engine高压缩引擎。

通过X-Engine这一LSM-tree引擎冷热分层,压缩率高(一般业务在5倍左右)的特性来满足海量数据存储的降本诉求。而X-Engine的事务支持,SQL兼容性与InnoDB基本一致, 对业务开发没有适配成本。用户可以在同一个PolarDB集群中,根据不同表的数据量和访问特点,灵活地选择InnoDB引擎或者X-Engine引擎。并且可以使用DDL语句在这两种引擎之间自由转换。

通过将已发货完结订单存储到同一个Polardb实例的X-Engine高压缩引擎中,实现了数倍的存储成本压缩,而未发货订单继续使用InnoDB引擎。万里牛基于ERP系统不同请求的访问特点,使用了两种访问模式:一种是在页面交互开始时直接区分在线和历史订单查询,另一种是在代码中实现冷热订单的混合查询。最终在用户体验基本不变的情况下,如下图所示,我们调整后的存储总量减少了十几T,每个表的平均压缩比可达1/4,甚至有部分表可以压缩到1/10的大小,总体来看存储成本下降80%

万里牛ERP部分表使用X-Engine压缩效果

为了进一步降低存储成本,PolarDB可以使用PSL4(PolarStore Level 4)的磁盘,PSL4采用采用阿里巴巴自研的硬件压缩盘(Smart-SSD)技术,在物理SSD磁盘层面压缩、解压缩存储的数据,在保持性能影响可控的情况下,使单位容量数据的存储价格更低。

6.后记

万里牛ERP在订单管理场景下使用PolarDB一站式的事务处理和数据分析解决方案,不仅提升了产品用户体验而且降低了数据层面的研发和维护成本,后续,将进一步推广到其他多数据密集型的ERP系统中,扩大PolarDB在SaaS领域中的使用范围。


近年来,国家政策的鼓励和扶持推动了中小企业、跨境电商、数字政府等领域的数字化转型需求,而企业管理和业务流程的标准化和复杂化,为SaaS企业提供了丰富的应用场景和市场。中国的SaaS服务开发商受益于云计算技术的成熟和普及,从诞生之日起便充分利用云计算平台提供的底层基础设施,以降低开发和运维成本。云原生数据库PolarDBHTAP能力高压缩引擎能力是两个典型适用于头部SaaS客户的功能,高压缩引擎能力致力于让客户以更低的成本存储更多的数据,并从数据中发现商机;HTAP能力让SaaS企业无需使用复杂架构即可提升对海量数据的查询分析效率,为客户提升更好的体验,助力提升SaaS企业商业化能力,进而帮助客户带来自身业绩的增长。

相关实践学习
使用PolarDB和ECS搭建门户网站
本场景主要介绍基于PolarDB和ECS实现搭建门户网站。
阿里云数据库产品家族及特性
阿里云智能数据库产品团队一直致力于不断健全产品体系,提升产品性能,打磨产品功能,从而帮助客户实现更加极致的弹性能力、具备更强的扩展能力、并利用云设施进一步降低企业成本。以云原生+分布式为核心技术抓手,打造以自研的在线事务型(OLTP)数据库Polar DB和在线分析型(OLAP)数据库Analytic DB为代表的新一代企业级云原生数据库产品体系, 结合NoSQL数据库、数据库生态工具、云原生智能化数据库管控平台,为阿里巴巴经济体以及各个行业的企业客户和开发者提供从公共云到混合云再到私有云的完整解决方案,提供基于云基础设施进行数据从处理、到存储、再到计算与分析的一体化解决方案。本节课带你了解阿里云数据库产品家族及特性。
相关文章
|
2月前
|
Cloud Native 关系型数据库 OLAP
云原生数据仓库产品使用合集之阿里云云原生数据仓库AnalyticDB PostgreSQL版的重分布时间主要取决的是什么
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
12天前
|
存储 关系型数据库 分布式数据库
PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题
【7月更文挑战第3天】PolarDB,阿里云的云原生分布式数据库,以其存储计算分离架构为核心,解决传统数据库的扩展性问题。此架构让存储层专注数据可靠性,计算层专注处理SQL,提升性能并降低运维复杂度。通过RDMA加速通信,多副本确保高可用性。资源可独立扩展,便于成本控制。动态添加计算节点以应对流量高峰,展示了其灵活性。PolarDB的开源促进了数据库技术的持续创新和发展。
216 2
|
15天前
|
关系型数据库 MySQL Serverless
Serverless 应用引擎产品使用合集之在SAE2.0上的应用如何访问云原生数据库PolarDB MySQL版集群
阿里云Serverless 应用引擎(SAE)提供了完整的微服务应用生命周期管理能力,包括应用部署、服务治理、开发运维、资源管理等功能,并通过扩展功能支持多环境管理、API Gateway、事件驱动等高级应用场景,帮助企业快速构建、部署、运维和扩展微服务架构,实现Serverless化的应用部署与运维模式。以下是对SAE产品使用合集的概述,包括应用管理、服务治理、开发运维、资源管理等方面。
|
2月前
|
关系型数据库 Serverless 分布式数据库
PolarDB PostgreSQL版Serverless技术原理解读
数据库是现代企业IT系统中非常重要的一部分。在创建数据库时,客户往往需要比较保守地去配置数据库集群的资源,包括CPU、内存、存储以及连接数等多种参数配置,以确保业务能够在波峰和波谷都能平稳运行。在这种情况下,客户购买的集群资源在业务波谷时期会被闲置,导致整体成本偏高;而在业务压力增长阶段,集群资源又应对不足。Serverless数据库可以很好地解决这个问题。它能够让数据库集群资源随客户业务负载动态弹性扩缩,将客户从复杂的业务资源评估和运维工作中解放出来。 本文描述PolarDB PostgreSQL版Serverless的构建中, 如何实现弹得快、弹得准、弹得稳、弹得广的几个关键技术点。
76173 14
PolarDB PostgreSQL版Serverless技术原理解读
|
1月前
|
运维 Cloud Native 关系型数据库
云原生数据仓库AnalyticDB产品使用合集之PostgreSQL版是否直接支持实时物化视图
阿里云AnalyticDB提供了全面的数据导入、查询分析、数据管理、运维监控等功能,并通过扩展功能支持与AI平台集成、跨地域复制与联邦查询等高级应用场景,为企业构建实时、高效、可扩展的数据仓库解决方案。以下是对AnalyticDB产品使用合集的概述,包括数据导入、查询分析、数据管理、运维监控、扩展功能等方面。
|
18天前
|
canal 关系型数据库 分布式数据库
PolarDB产品使用问题之对于PostgreSQL的导出,有哪些要注意的
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
18天前
|
运维 关系型数据库 MySQL
PolarDB产品使用问题之迁移到从polardb mysql的数据空间里是否需要修改数据源地址
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
【PolarDB开源】PolarDB与云原生数据库比较:特点、优势与选型建议
【5月更文挑战第26天】PolarDB是阿里云的云原生数据库,以其计算存储分离、一写多读架构和数据一致性保障脱颖而出。与Amazon Aurora和Google Cloud Spanner相比,PolarDB在中国市场更具优势,适合读多写少的场景和需要严格数据一致性的应用。企业在选型时应考虑业务需求、地域、读写比例和兼容性。PolarDB作为优秀解决方案,将在云原生数据库领域持续发挥关键作用。
187 1
|
2月前
|
监控 关系型数据库 分布式数据库
【PolarDB开源】PolarDB在电商场景的应用:应对高并发与数据一致性挑战
【5月更文挑战第26天】阿里云PolarDB是为电商解决高并发和数据一致性问题的云原生数据库。它采用读写分离、弹性扩展和分布式缓存策略应对高并发,通过全局时钟、分布式事务和数据复制保证数据一致性。在大型促销活动中,电商平台可提前扩容、启用读写分离、优化索引并设置监控告警来应对挑战。PolarDB助力电商构建高性能、高可用的数据处理系统,赢得市场优势。
130 1
|
2月前
|
Cloud Native 关系型数据库 分布式数据库
【PolarDB开源】PolarDB数据迁移实战:平滑过渡至云原生数据库
【5月更文挑战第24天】本文介绍了如何平滑迁移数据至阿里云的云原生数据库PolarDB,包括迁移准备、策略选择、步骤、验证及示例代码。通过需求分析、环境准备和数据评估,选择全量、增量或在线迁移策略。使用数据导出、导入及同步工具(如DTS)完成迁移,并在完成后验证数据一致性、性能和安全。正确执行可确保业务连续性和数据完整性。
138 1

相关产品

  • 云原生数据库 PolarDB