联华集团:IT团队如何实现从成本中心提升至价值中心|OceanBase 《DB大咖说》(十)
OceanBase《DB大咖说》第 10 期,我们邀请到了联华集团的CTO楼杰,来分享他如何思考 IT 业务价值,以及联华华商数据库的升级实践。
楼杰从大学毕业后就进入了联华工作,并一直扎根在近 20 年的,从一名底层的技术员成长为 CTO,全面负责联华信息系统的运营和规划工作。长期从事在零售领域,使得楼杰不光是一名 IT 技术专家,更是一名业务专家。成为为 CTO 以后,楼杰的视角也更多地开始站在业务层面,他与他的团队历时 5 年,推出了业财一体化,并真正开始服务业务经营。在联华华商的数据库面临升级时,他除了关注系统性能、成本等以外,更愿意从业务来思考,并为业务赋能。

杭州联华华商集团(以下简称联华集团)是一家由联华超市股份有限公司控股、杭州市商贸旅游集团有限公司和宁波联合集团股份有限公司参股的有限责任公司,大名鼎鼎的联华连锁超市就归属该公司。
联华集团总部位于杭州市,在浙江全省 11 个地级市拥有网点 568 家,全年营业收入近 140 亿元,已连续 22 年位居浙江省内连锁超市行业第一,拥有购物中心、大卖场、综合超市、标准超市、精品超市、便利店、校园店、品类店等零售业态。
对于拥有如此之多业态、年营业额达 140 亿元的联华集团,构建一个高效、可靠的业务系统至关重要。为了支持公司业务规模的高速成长和经营业态的不断丰富,集团业务系统一直在不断进化:业务系统从私有部署走向云端,架构从集中走向分布,数据库也从集中式走向分布式中间件+集中式数据库,最后走向了全分布式数据库,为联华的数智化转型提供了有力的支持。
一、频繁扩容,运维不堪重负
在公司业务系统持续演进的过程中,联华集团先后采用了多种数据库。早期以 IBM 的 Informix 数据库为主,期间也用过 Oracle、SQL Server 等。2017 年,集团业务上云后,数据库开始逐渐转向 MySQL、RDS 等,同时,采用了大数据平台和数据仓库等进行经营分析。
联华集团 CTO 楼杰见证了整个过程。楼杰介绍,Informix 是联华规模化使用的第一代数据库,支持联华从 2002 年 3 个亿的销售规模成长到 2008-2010 年的 100 亿规模。但当业务规模达到 100 亿以后,继续使用 Informix 明显开始感到吃力。为了分解数据库的压力,联华集团对业务功能进行了拆分,商品管理、会员管理、仓配系统、门店进销存功能等先后从原来的系统中独立出来。
拆分后的系统稳定运行到了 2015 年,系统再次面临升级。根据公司业务转型的要求,需要进行线上线下一体化。线上线下一体化意味着所有促销活动、商品价格无论是线上还是线下其解析规则必须一致,也就是要采用同一套引擎。
然而,线上负载和线下有很大不同,线上业务有明显的波峰波谷特性,为了应对高峰流量,联华在数据层引入分布式技术,DRDS 就是这个时间引入的。联华最先在卡交易系统采用了 DRDS,后来会员系统、营销系统、商品系统等也先后进行了分布式架构的转换。
这种架构进入 2021 年后,伴随着集团业务规模的增长,业务系统感受到更大的扩容压力:每次遇到大促等促销活动就需要扩容,扩容频繁导致成本攀升,同时也给运维人员带来很大负担。
以卡交易系统为例,每到大促的时候,线上、线下的业务并发量同时上来,需要对 DRDS 节点进行扩容,还要对其他节点进行扩容,大促结束再缩回来。这套流程下来很麻烦,运维压力很大。
为了提高系统可伸缩性,减少运维压力,联华集团引入了 K8s 的容器技术,同时,决定在数据层引入分布式数据库,数据库选型由此提上日程。
二、顺利升级,成本不变性能升级
“新数据库需要支持多读、多写能力,要具有高度扩缩容能力,能应对海量数据的管理。另外,还要有多租户能力,因为将来数据库会逐渐统一,收敛到 OceanBase 等少数几个数据库。”楼杰说。
在市场上能满足联华集团的数据库并不多,经过前期的测试和综合评估,集团很快就选定了 OceanBase。2021 年初,联华开始数据库的迁移工作,先是卡系统业务,接下来是业财业务和线上 App。楼杰介绍,上线的这几个系统原来采用是DRDS+MySQL,而 OceanBase 对 MySQL 的兼容性非常好,语法上差异很小。
“此外,OceanBase 的保障团队非常给力,为我们提供了很多帮助,双方合作用了两个通宵就把卡交易系统顺利升级到 OceanBase。”他说。
OceanBase 数据库的上线给内部运维带来很大方便的同时,用户的使用体验也有了很大改善。
首先,实现了资源整合,不再有扩缩容的压力。借助 OceanBase 大集群、多租户的隔离模式,将原来多套规格、多种异构数据库进行了资源整合,统一迁移到了 OceanBase,达到资源集约的目的。现在,通过租户的模式,还可以随时进行动态扩缩容,满足业务弹性扩缩容的需求。“联华在三年内基本不用考虑扩缩容问题。”楼杰说。
其次,在保持成本不增加的前提下,性能提升 1-2 倍。原来业财系统的报表要 3-10 分钟才能出来,现在 1 分钟内就会出来,体验明显改善。同时,存储容量直接减少了一半以上。
“我们考虑到后续会有业务不断迁移过来,还有线上业务波峰非常明显,所以并没有刻意压缩成本。投入基本和以前基本差不多,但性能提升明显。”楼杰解释。
三、业财一体化,为精细化管理赋能
当然,联华进行数据库的迁移不只是为了降低成本和降低运维压力,更重要的是还提供了更多可能,来帮助联华的业务部门和管理层实现精细化管理,比如推进业财一体化,旨在为业务经营提供更多决策支持。
此前由于数据库读写性能的限制,集团只能把各个门店每天的交易数据汇总后进行上传,上线 OceanBase 后,门店的每一笔交易实现了实时记录上传,400 多家门店实时提交,写的数据量增加了 1000 倍,给业务人员和管理层充分了解各个门店经营状况带来很大方便。这也是联华当初在选型时高度重视数据库的多读多写能力的重要原因之一。
楼杰介绍,现在联华可以清楚地算出门店每一笔交易其成本构成如何,是否赢利以及盈利细节等。以前,只能笼统地知道门店是赔还是赚,现在可以清楚知道每笔交易的赔或者赚。
“精细化管理对公司业务经营非常重要,也是IT部门价值之所在。我们从 2017 年就开始大力推动业财一体化,目的也在于此。”楼杰说。
他解释,企业一般都有自己的财务报告也有业务报告。财务报告应国家管理要求,比较标准,它的粒度、维度、视角和业务部门都有很多不同,比如统计口径不同等,财务报告和业务报告两者不能很好匹配,非常不利于对企业经营状况的全面了解。业财一体化就是要改变这种状况,这就需要IT部门来做数据的整合和匹配工作。
“以前,管业务的人不懂财务,管财务的人不懂业务。如果两边数据能打通,业务和财务的人都可以非常清楚地看出实际经营状况,包括具体哪里的问题。这样可以更好地控制经营风险,更准确地进行销售预测。”楼杰说。
在过去的 5 年,联华在“业财一体化”上先后经历了管理在线化、管理数字化、管理一体化阶段,如今已经进入了业财融合阶段,给公司管理层进行业务分析、准确把握经营状况、进行管理决策带来了非常大的方便,也让IT部门成为营收驱动力,帮助IT部门从成本中心逐渐转向价值中心和利润中心。
为了进一步提升数据分析能力,楼杰透露,目前,联华正在评估 OceanBase 4.3 的 HTAP 能力。以前联华采用了其他数据仓库来进行数据分析,这个数据仓库部署在一个离线的数据中心,如果能用 OceanBase 的 AP 能力,这样不仅可以节省成本,还能实现实时分析,对于联华集团的经营和决策也会带来更多的方便。
相关文章:
联华集团:IT团队如何实现从成本中心提升至价值中心|OceanBase 《DB大咖说》(十)
OceanBase《DB大咖说》第 10 期,我们邀请到了联华集团的CTO楼杰,来分享他如何思考 IT 业务价值,以及联华华商数据库的升级实践。 楼杰从大学毕业后就进入了联华工作,并一直扎根在近 20 年的,从一名底层的技术员成长为…...
计算机系统基础实训五—CacheLab实验
实验目的与要求 1、让学生更好地应用程序性能的优化方法; 2、让学生更好地理解存储器层次结构在程序运行过程中所起的重要作用; 3、让学生更好地理解高速缓存对程序性能的影响; 实验原理与内容 本实验将帮助您了解缓存对C程序性能的影响…...
PHP框架之CodeIgniter框架
CodeIgniter框架详细说明 CodeIgniter是一个简单而强大的PHP框架,专为快速开发Web应用程序而设计。它遵循MVC(模型-视图-控制器)设计模式,为开发者提供了丰富的功能和灵活性,同时保持代码的轻量级和易于管理。CodeIgn…...
714. 买卖股票的最佳时机含手续费
714. 买卖股票的最佳时机含手续费 原题链接:完成情况:解题思路:ExplanationSummary 参考代码:_714买卖股票的最佳时机含手续费 错误经验吸取 原题链接: 714. 买卖股票的最佳时机含手续费 https://leetcode.cn/probl…...
Linux系统查看程序内存及CPU占用
文章目录 1.free命令2.top命令3.PS命令3.1 查看内存占用前10位:3.2 查看CPU占用前10位 参考文档 1.free命令 可以通过free命令查看物理内存占用情况 #单位KB free #单位MB free -m #单位GB free -h 2.top命令 输入top命令,会输出定时刷新的程序PID、内…...
数据结构7---图
一、定义 对于图的定义,我们需要明确几个注意的地方:一线性表中我们把数据元素叫元素,树中叫结点,在途中数据元素我们则称之为顶点(Vertex)。 对于图的定义,我们需要明确几个注意的地方: 线性表中我们把数据元素叫元素…...
Excel 如何复制单元格而不换行
1. 打开excle, sheet1右键单击>查看代码>插入>模块 输入代码 Sub CopyText() Updated by NirmalDim xAutoWrapper As ObjectSet xAutoWrapper New DataObject or GetObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")xAutoWrapper.SetText ActiveC…...
前端 CSS 经典:mix-blend-mode 属性
前言:这是一个混合属性,作用是将两个颜色混合生成一个新颜色。可以将视频和文字相融合,产生动态文字效果。 效果 实现代码 <!DOCTYPE html> <html lang"en"><head><meta charset"utf-8" />&l…...
OpenCV--滤波器(一)
低通滤波器 代码和笔记 代码和笔记 import cv2 import numpy as np""" 滤波器--用于图像处理的重要工具,它们可以根据图像中像素的邻域信息来修改像素值,以实现去噪、模糊、锐化、边缘检测等效果。低通滤波器(Low-pass Filte…...
MK的前端精华笔记
文章目录 MK的前端精华笔记第一阶段:前端基础入门1、(1)、(2)、 2、3、4、5、6、7、 第二阶段:组件化与移动WebAPP开发1、(1)、(2)、 2、3、4、5、6、7、 第三…...
低代码平台框架:开源选型、实践与应用深度解析
文章目录 1.1 低代码平台的重要性与应用背景2.1 表单建模2.2 流程设计2.3 报表(打印)可视化2.4 代码生成器2.5 系统管理2.6 前端UI开源选型3.1 如何选择合适的开源框架3.2 市场上的主要开源低代码平台对比3.3 开源项目的技术栈与优缺点分析 5.1 成功案例…...
深度学习500问——Chapter12:网络搭建及训练(3)
文章目录 12.3.5 Caffe有哪些接口 12.4 网络搭建有什么原则 12.4.1 新手原则 12.4.2 深度优先原则 12.4.3 卷积核size一般为奇数 12.4.4 卷积核不是越大越好 12.5 有哪些经典的网络模型值得我们去学习的 12.6 网络训练有哪些技巧 12.6.1 合适的数据集 12.6.2 合适的预…...
Android使用DevRing框架搭建数据库实体类以及使用
一、引用DevRing依赖 //导入DevRing依赖implementation com.ljy.ring:devring:1.1.8创建数据库表的依赖implementation org.greenrobot:greendao:3.2.2 // add libraryimplementation org.greenrobot:greendao-generator:3.0.0 二、修改工程目录下的.idea->gradle.xml文件&…...
高效BUG管理:定级、分类和处理流程
高效BUG管理:定级、状态跟踪与处理全流程 前言一、BUG的定义二、BUG的定级三、BUG的状态四、BUG的处理流程1. BUG报告2. BUG确认3. BUG修复4. BUG验证5. BUG关闭 五、常见问题与解决方案六、总结 前言 在测试工作中,BUG的定级和分类是一个重要环节&…...
服务器数据恢复—raid5热备盘同步失败导致阵列崩溃如何恢复数据?
服务器存储数据恢复环境&故障: 某品牌DS5300存储,包含一个存储机头和多个磁盘柜,组建了多组RAID5磁盘阵列。 某个磁盘柜中的一组RAID5阵列由15块数据盘和1块热备硬盘组建。该磁盘柜中的某块硬盘离线,热备盘自动替换并开始同步…...
Ubuntu iso 镜像下载 步骤截图说明
Ubuntu镜像下载,在这个网址: Enterprise Open Source and Linux | Ubuntu 步骤如下图所示: 1、登入网址 2、点击Get Ubuntu 3、点击Download Ubuntu Desktop 后续点击Downloadload 24.04 LTS直接下载就行 如果需要下载其它版本…...
git拉取gitee项目到本地
git安装等不做赘述。 根据需要选择不同操作 1.只是单纯拉取个项目,没有后续的追踪等操作 不需要使用git init初始化本地文件夹 新建一个文件夹用于存储项目,右键选择 git bash here 会出现命令行窗口 如果像我一样,只是拉取个项目作业&…...
力扣42.接雨水
力扣42.接雨水 前后缀数组 对于每个一个位置 求其前面最高高度pre_max[i] max(pre_max[i-1] , h[i])和后面最高高度suf_max[i] max(suf_max[i1] , h[i])当前i处的水容量 为min(pre_max[i] , suf_max[i]) - h[i] class Solution {public:int trap(vector<int>& …...
国产数据库与MYSQL兼容性?开发应该怎么选择?
国产数据库主要包括以下几种: TiDB:由 PingCAP 公司研发设计的开源分布式 HTAP (Hybrid Transactional and Analytical Processing) 数据库,兼容 MySQL,支持无限的水平扩展,具备强一致性和高可用等特性。 华为GaussDB…...
Spring框架中Bean的生命周期
Bean的生命周期通常指的是从创建到初始化,经过一系列的流程,最终销毁的过程。只不过,在Spring框架中,Bean的生命周期是由Spring IOC容器来管理的。在Spring中,我们定义Bean时,也可以自己指定初始化和销毁的…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
从深圳崛起的“机器之眼”:赴港乐动机器人的万亿赛道赶考路
进入2025年以来,尽管围绕人形机器人、具身智能等机器人赛道的质疑声不断,但全球市场热度依然高涨,入局者持续增加。 以国内市场为例,天眼查专业版数据显示,截至5月底,我国现存在业、存续状态的机器人相关企…...
Qwen3-Embedding-0.6B深度解析:多语言语义检索的轻量级利器
第一章 引言:语义表示的新时代挑战与Qwen3的破局之路 1.1 文本嵌入的核心价值与技术演进 在人工智能领域,文本嵌入技术如同连接自然语言与机器理解的“神经突触”——它将人类语言转化为计算机可计算的语义向量,支撑着搜索引擎、推荐系统、…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
AI病理诊断七剑下天山,医疗未来触手可及
一、病理诊断困局:刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断",医生需通过显微镜观察组织切片,在细胞迷宫中捕捉癌变信号。某省病理质控报告显示,基层医院误诊率达12%-15%,专家会诊…...
七、数据库的完整性
七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...
ThreadLocal 源码
ThreadLocal 源码 此类提供线程局部变量。这些变量不同于它们的普通对应物,因为每个访问一个线程局部变量的线程(通过其 get 或 set 方法)都有自己独立初始化的变量副本。ThreadLocal 实例通常是类中的私有静态字段,这些类希望将…...
6.计算机网络核心知识点精要手册
计算机网络核心知识点精要手册 1.协议基础篇 网络协议三要素 语法:数据与控制信息的结构或格式,如同语言中的语法规则语义:控制信息的具体含义和响应方式,规定通信双方"说什么"同步:事件执行的顺序与时序…...
华为云Flexus+DeepSeek征文 | MaaS平台避坑指南:DeepSeek商用服务开通与成本控制
作者简介 我是摘星,一名专注于云计算和AI技术的开发者。本次通过华为云MaaS平台体验DeepSeek系列模型,将实际使用经验分享给大家,希望能帮助开发者快速掌握华为云AI服务的核心能力。 目录 作者简介 前言 一、技术架构概览 1.1 整体架构设…...
【设计模式】1.简单工厂、工厂、抽象工厂模式
every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 以下是 简单工厂模式、工厂方法模式 和 抽象工厂模式 的 Python 实现与对比,结合代码示例和实际应用场景说明: 1. 简单工厂模式&a…...
