PolarDB采用存储和计算分离的架构,提供分钟级的配置升降级、秒级的故障恢复、全局数据一致性和免费的数据备份容灾服务,既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自我迭代的优势。本文介绍浙江乐檬信息技术有限公司如何通过PolarDB应对业务挑战。
所属行业:零售业
网站地址:浙江乐檬信息技术有限公司
公司介绍
浙江乐檬信息技术有限公司成立于2004年,是一家专注于食品零售行业提供智能化、数字化解决方案的产品与服务供应商。乐檬立足于食品零售领域,致力于为客户提供全面的系统软件解决方案,涵盖门店收银系统、连锁ERP管理系统、WMS仓储管理系统、线上商城以及全渠道会员管理系统等核心产品。经过十余年的发展,乐檬已成功为逾万家食品零售企业提供专业服务,服务门店数超过10万家。
业务挑战
智慧收银系统实时性不足
智慧收银系统是乐檬ERP系统的核心业务入口,其收银速度、大客户并发收银能力以及系统的稳定性对于提升门店的购物体验至关重要。这些需求对数据库的读写性能、并发处理能力、稳定性和健壮性提出了较高的要求。然而,乐檬的业务数据量庞大,达到10亿级别,开源MySQL在高并发读写时遇到了瓶颈,导致了交易延迟和数据不一致等问题。
多个查询分析场景出现性能瓶颈
除了智慧收银业务,乐檬的业务系统还涵盖多个复杂的查询分析场景,包括:
全渠道会员:该模块包括积分商城、会员标签和客户拉新等功能。它基于会员的购买行为为用户打标,并根据不同标签进行个性化信息推送,从而助力精准营销。这个过程需要针对亿级订单数据以及更大规模的流量和登录日志进行多表关联和聚合查询。
进销存单据系统:该系统为门店负责人提供销售分析与商品分析等功能,涉及对亿级至十亿级订单的销售分析和折扣分析,需要处理用户、订单和商品折扣等多表关联和复杂查询。
移动报表:此功能旨在快速发现门店和电商渠道的会员量、订单量、收入和库存等波动信息。涉及1500家门店及上亿订单数据,通常需要5~10个表的关联、聚合、子查询、排序查询和LEFT JOIN等操作。
这些复杂查询分析场景所涉及的数据量庞大,单个OLAP查询可能需要处理TB级别的数据,并消耗大量的CPU和IO资源,同时可能引发不同客户的查询干扰问题。随着大客户数据量和并发量的增长,单次查询的延迟造成了报表的并发能力急剧下降,从而影响了用户体验。
解决方案
共享存储一写多读架构支撑收银业务
内核读写优化:PolarDB的共享存储一写多读架构发挥了极为重要的作用,能够在分钟级内完成垂直弹性扩展读写节点和动态增加只读节点的操作。通过引入PolarIndex、热点库存更新和PolarDB Redo分散写等内核优化,显著提升了收银系统的并发能力,减少了每次收银查询的耗时。这些优化整体上增强了乐檬智慧收银系统的并发处理能力和扩展能力。
物理复制和强一致读:PolarDB采用共享存储技术架构,同时在技术上实现了读写节点与只读节点之间的物理日志复制。这种设计确保了读写节点与只读节点之间的复制延迟极低,通常控制在毫秒级,能够满足大多数业务场景对延迟的要求。此外,通过高性能全局一致性(SCC)技术,PolarDB提供了强一致性的读操作。在收银场景中,这一技术不仅满足了集群水平的扩展需求,还确保了数据读的一致性,保证了在业务高峰期只读节点可以有效分流读写节点的压力。
Serverless:通过弹性计算资源的智能调度机制,能够实现计算资源的自动化扩展和收缩,同时通过节点数的动态调整,有效应对业务负载的剧烈波动。这种特性不仅为乐檬提供了强有力的技术支撑,确保大客户日常销售和固定运营活动的平稳运行,更通过优化资源配置,在保障系统可用性的前提下,显著降低了资源持有成本,实现了资源利用率的整体提升。特别值得一提的是,在系统弹性扩展过程中,PolarDB的平滑过渡机制保证了业务系统的无感知性,充分满足了收银系统对系统可用性的严格要求。
IMCI助力复杂查询分析提速
100% MySQL兼容性:PolarDB MySQL版实现了与MySQL的100%兼容,不仅支持完整的MySQL数据类型系统,还具备灵活的类型转换能力。通过自动读写分离技术,能够做到代码无需改动即可完成应用系统的无缝迁移,同时显著提升查询分析效率。
智能SQL分流:PolarDB提供自动SQL分流功能,能够自动识别和区分OLTP型和OLAP型SQL查询。复杂查询会自动路由至分析型只读节点,无需手动配置,显著降低了运维复杂度。
极致的HTAP性能表现:PolarDB通过列存索引(IMCI)技术,在绝大多数场景下实现了性能的10倍至100倍提升,分析性能最高可达到开源MySQL数据库的400倍,充分满足了复杂业务场景对数据库性能的需求。
行列混合存储,兼顾性能与成本优化:PolarDB同时支持行存储和列存储两种数据组织方式,并确保事务级数据一致性。列存储技术在大幅优化存储成本的同时,为复杂查询提供了卓越的性能支持,实现了性能与成本的完美平衡。
快速部署:仅需在集群上购买IMCI节点,并为业务表增加列存索引,即可通过集群地址完成对标签及智能营销等场景的性能优化。该方案具有部署简单、见效快的特点,能够快速满足业务系统对数据库性能提升的需求。
客户价值
在2024年5月底,乐檬数据库系统正式迁移至PolarDB MySQL版,借助PolarDB 列存索引(IMCI)实现了对MySQL的100%兼容,快速响应产品在性能提升和架构扩展性方面的需求。在适配PolarDB的过程中,利用PolarDB 列存索引(IMCI)的优势,乐檬实现了全渠道会员和移动报表的数据库架构统一,简化了整体技术架构。通过此次架构升级,乐檬在数据库技术上取得了以下成就:
架构升级:借助PolarDB 列存索引(IMCI)功能,除了高性能和高并发支持收银与下单外,还能够支持十万家门店的数据实时分析。
简化开发:统一HTAP架构,实现OLTP与OLAP的混合负载,100%兼容MySQL,乐檬全栈业务开发无需额外组件,大大简化了开发流程。
稳定可靠:采用无感秒切技术,集群异常可实现秒级恢复,确保收银和订单业务的快速恢复。同时,通过Serverless技术实现无感弹性扩展,有效应对业务峰值需求,结合共享存储与一写多读架构,高效实现不同场景下的业务负载隔离。