
在2024云栖大会「海量数据的高效存储与管理」专场,中国石油化工集团有限公司冠德数智开发部总负责人 杨毅发表了题为《数字化转型战略下的新一代零售中台建设思考》主题演讲,以下内容根据演讲实录整理。
中国石油化工集团有限公司冠德数智开发部总负责人 杨毅
各位专家、各位来宾,大家下午好!很高兴也非常荣幸受到阿里云数据库团队的邀请来进行本次分享,我今天分享的主题是《数字化转型战略下的新一代零售中台建设思考》,主要讲PolarDB分布式数据库在能源、零售场景的应用。
国家层面,国务院早在2020年9月就印发了《关于加快推进国有企业数字化转型工作的通知》,将数字化转型作为改造提升传统动能、培育发展新动能的新手段,为了快速响应国家数字化转型战略,集团公司提出数字化赋能、数字化优化、产业再造三阶段的转型方针。冠德数智作为中国石化销售公司下属的数字化转型赋能科技公司,自然而然要肩负起数字化转型的使命,集团和销售公司多年来统建诸多信息系统,但是各省市也自建了自己的系统,由于历史原因,很多系统之间都是烟囱式的,导致数据不共享、信息不互通,造成很多信息孤岛。为了解决这一问题,新零售平台应运而生。
第一,增强核心竞争力。中国石化拥有3亿家用户,日订单量也是上千亿级,所以必须以客户为中心,提升用户体验、提高运营效率,对现有的系统进行融合升级,必须统一客服体系、营销体系和支付体系,建设满足“油气氢电服”全业务域的新零售平台。第二,提升数字决策力。通过搭建数据中台来实现数据集中,提升数据分析能力和挖掘能力,通过建设业务中台,实现能力互用,降低现有系统之间的耦合,防止重复造轮子的问题,从而实现系统的互融互通,打破系统之间的壁垒。第三,形成新质生产力。近两年来,冠德数智陆续上线新能源系统,也就是充电桩、洗车和门店运营等系统。
再就是目前零售中台的架构全景,为什么是新零售中台?因为采用新的理念、新的架构、新的技术,因为采用最新的分布式微服务架构,结合云原生的技术作为新零售中台,我们着重讲解一下业务中台和数据中台。业务中台是企业核心业务能力的整合,沉淀平台化的解决方案,通俗来讲,就是前台应用的通用化能力。既然说到通用化,那么复用性必定很强,耦合性必须很低,又有较强的扩展性,所以根据销售公司的统一规划和设计,我们新建了超过16个能力中心,主要是客户、营销、商品、订单、支付等能力中心,通过能力中心的系统建设,实现一体化客服管理、一体化营销、一体化支付体系。再结合能力开放平台,为前台应用提供标准化的API能力和服务编排能力,数据中台主要解决数据的汇聚和数据整合,通过制定统一的数据标准,实现数据的统一管理,提高数据质量,沉淀数据资产,通过多服一中台的架构,结合离线+实时计算体系,为企业提供更全面的数据视角,从而做出更全面、更科学的决策,促进企业从经验决策向数据驱动决策转变。平台还提供丰富的数据挖掘和分析工具,从海量的数据里面提炼有价值的信息,比如分析用户的行为,形成用户画像,为用户提供更精准的服务。
上面零售中台的核心需求,主要围绕提升运营效率,增强顾客体验,实现数据驱动决策以及促进业务的灵活性和创新性,零售中台作为现代业务的核心系统,支撑线上线下的商品管理、库存同步、订单处理、会员服务、数据分析等一系列关键功能。因此,对于业务的连续性要求非常高,即高可用,这里定义3个9的可用性,通过各种手段,比如单元化、跨机房部署,跨地域部署,包括异地多活也是我们的重要方向,当然这些技术手段主要用于抵御大面积的故障,而在日常运维中,往往面临局部问题,比如某个节点异常,或者发过一些不严谨的业务SQL,导致其他业务受到影响,这是最常见的问题,所以要考虑如何合理规划平台。当出现某个节点或者某个模块异常时,尽可能带来较小的影响,所以刚才讲到数据库级别的隔离,甚至精确到行级别的隔离,也是业务的重要诉求,性能不用说了,刚才也讲到每天都是千万级的订单,每年有百亿级的订单量,包括用户也是3亿家,所以对性能的要求很高,每年有各种大促活动,数据量非常庞大,所以高性能、低延迟是最基本的诉求。最后是易用性,虽然很多能力中心都是从零到一新建,但都是在现有的基础设施上完成,所以一定会考虑上下游业务的兼容性问题,平台建设周期非常短,并且迭代速度很快,所以开发效率的追求也是极致的,不希望引入新架构、新技术的同时,给我们带来太多的学习和使用成本,这点也比较关键。
我们结合目前中台的核心需求,最终数据库选择PolarDB分布式版(以下简称PolarDB-X)。PolarDB-X是淘宝零售经验的输出,所以在整个零售行业的沉淀,对我们都有非常大的帮助和启发。同时PolarDB-X多可用部署,以及一致性协议,天然满足对高可用容灾的需求,不仅多机房部署的同时,还能保证数据不丢失,包括前段时间发布的能力,也是对未来异地容灾、异地多活有非常大的帮助。此外,PolarDB-X对数据分布也非常也好,不像传统意义的分库分表,可以任为指定数据的存储位置,无论是单表还是分区表,都可以随意指定数据存储在哪里,这样即便在同一个数据池里,也可以按照自己的想法,做模块与模块之间、表与表之间的隔离,这对整体业务的连续性和设计有很大帮助。最后是兼容性,这里不仅仅是代码层面或SQL语法层面,与MySQL的高度兼容,其他很多同类型的数据库产品这方面做得也很好,但这里想体现的是,比如与周边配套是兼容的,同步到卡不卡消费端方面,这点对我们比较重要,比如格式跟MySQL一模一样,下游系统基本完全不用修改,拿来就可以使用,大大降低使用成本。
分布式和零售中台的关系,因为业务中台的数据量、访问量很大,各种流量洪峰都要做应对,所以必须用分布式数据库,个人认为还有另外一半的原因,要满足高可用,因为核心数据被分布在很多独立的存储节点上,每个存储节点都有独立的CPU和内存资源,即便是任何一个节点异常,整体业务的受损面积是可控的,不会出现流量跌到零的情况,这是选择分布式数据库的重要原因。再结合PolarDB-X提供跨机房部署,甚至是跨地域的容灾能力,相信在PolarDB的加持下,可以帮我们做到3个9的业务可用性。使用分布式数据库之后,业务会遇到哪些需要解决的问题?PolarDB-X如何帮我们解决这些问题?如异构查询,比如要拆分组件,进行高并发、低延迟的产品操作。下面举两个实际问题,比如用户表需要根据用户手机号、或者用户的账号登录,那么分区应该选择哪一个;还有交易系统,比如订单表需要根据买家ID、甚至卖家ID做订单查询,那么分区要怎么选择。
其实我们与技术团队针对这个问题交流的时候,也了解到淘宝很早面临这个问题,并且针对这个问题已经迭代过诸多解决方案,PolarDB-X目前的最新解决方案是全局二级索引,表中的不同字段决定表的查询维度。大家可能有疑问,怎么确保与主表数据的一致性问题,包括执行DBA操作的时候,二级索引是否有影响,回表查询的代价有多大,这对响应都有影响。首先是PolarDB-X通过分布式,来确保全局二级索引和主表数据的一致性,并且通过多联的优化,解决从索引的创建、数据写入、索引扫描、全流程的一致性问题,真正做到索引和数据的强一致。关于DBA的兼容性问题,通过复制数据修改原数据的方式,结合快速增加列的特性,支持全局二级索引不锁表列类型的变更,所以DBA在执行字段变更的时候,完全可以忽略全局二级索引的存在。全局二级索引支持覆盖索引功能,可以通过索引增加字段做到减少回表的操作,从而提升整体性能。
上面介绍通过全局二级索引实现高效的异构查询。下面介绍分布式数据库,针对海量数据的存储,前面也提到每年有上百亿的订单。零售中台最重要的能力中心就是订单中心,也就是说加油付款、便利店购物,因为全国有3万多家加油站,有2.8万家门店系统,会形成很多的订单,与淘宝有些区别,从订单创建到交易完成,可能几分钟之内就完成了,因为淘宝有物流的关系,可能要几天甚至几周的时间,所以历史订单量很大,但因为国家监管的要求,历史订单还需要做到实时可查询,这给系统设计带来一些难题。所以我们采用PolarDB-X历史数据归档功能,既节省存储空间,又减少主表的一定体积,一定程度优化了性能,关键做到一点,在线数据和历史数据可以做到统一的查询入口,不需要其他的连接方式,通过一条SQL就可以实现离线数据的查询。
容灾多活目前就是要构建高可用、高并发、零故障的零售中台,因为石化面向的用户非常庞大,要保证3个9,甚至以后要做到4个9,目前已经实现同城双活,下一步要考虑异地多活,通过负载均衡+数据同步,实现跨地域的机房部署,确保系统出现规章的时候可以自动流量切换,同时还要采用实时灾备和数据恢复技术,确保数据安全性和完整性。极致提效意味着提高零售中台的运行效率,减少不必要的资源浪费,后面会引入阿里云的技术,通过优化系统架构减少冗余组件,通过极致提效可以提高零售中台的处理能力,满足不断增长的业务需求。AI加持意味着需要用人工智能技术,提升中台的智能化水平,通过机器学习、深度学习实现对用户使用行为的深度理解,提供更精准的个性化推荐。我们可以利用自然语言等技术实现对用户需求的理解,为客户提供便捷服务。/ END /