金蝶管易云作为国内头部的电商ERP,一直保持着和电商平台的密切合作,致力于让最成熟高效的技术成为提高客户生产力的能量源泉,目前,管易云底层的数据库已升级成实时数仓技术DataWorks+Hologres+Flink,海量数据也可以做到稳定可靠和秒级响应,让订单处理更加丝滑高效、让数据分析更加实时智能、让外部系统对接更加通畅稳定。
一、业务架构
管易云ERP系统的业务架构中,主要的业务流程包括:电商平台对接(数据下载、存储),基础数据量庞大;订单处理流程(数据的审核、打印、配货、发货),数据的调用频率极高;报表分析汇总(商品、库存、订单、利润等数据的分析汇总),数据的分析、计算能力都会面临极大的挑战;集成网关(奇门、API等接口数据处理),数据能够进行精准的接口转化处理;三方系统数据互通(金蝶、用友等财务系统、快递系统等),三方数据互通极其容易造成数据漏抓取等问题。对于电商行业的客户来说,数据的准确性和处理的高效性都是非常重要的,尤其是现在整个电商行业已经进入业财税时代,任何一笔订单的数据错误、遗漏都会导致整个业财相关的部门花费大量的人力去复查。由上图可看出,管易云业务中需要数据的高效率分析、存储和分析。原先底层架构使用的是RDS for MySQL和PolarDB for MySQL,PolarDB 主要是用于存储交易类的数据分析,如订单、会员、商品等分析;RDS 主要用于存储读写相对不是很频繁的数据,如:采购、调拨、调整、盘点等。但由于存量数据的不断增长,这套技术方案面临着很大挑战,主要包括:1、因为业务在增长,数据量也面临着极速的增长,但是查询效率却越来越慢,无法快速满足业务实时取数的需求,影响业务决策。2、由于数据量庞大,即使是简单的数据库DDL操作都需要花费相当长的时间周期,这对管易和产研团队来说都成了急需攻破的难关。因此,管易云考虑采用更先进的技术来实现对海量数据的实时写入、更新和实时查询的方案。
二、升级为实时数仓Flink+Hologres
为了解决这些挑战,管易的技术团队一直在积极评估和探索新的技术方案,包括阿里云XDB、TiDB、Hadoop等。然而,在探索的过程中,也并非一帆风顺。一方面,试错的成本过高,每次调整,都可能会对业务稳定性和客户使用体验造成冲击。另一方面,现存相关案例中也缺乏电商领域特性的示例,如海量数据处理、高并发和实时更新等。在经过一番艰难的探索后,一次偶然的机会,管易看到了一个物流行业的案例分享,案例中使用了实时数仓Flink+Hologres来支撑物流订单的实时查询和实时监控等。尽管物流行业与电商有相当大的区别,但物流作为电商领域中的重要一环,其技术特性与电商领域还是有很多相似之处。因此,管易选择了阿里云Hologres作为解决方案。
为了确保Hologres技术方案的可行性,管易内部多次拉通多个业务部门参与研讨,以确定具体的应用场景,这样做的目的是避免因数据库切换而对用户体验造成影响。经过多次讨论后,最终决定以报表查询场景作为验证方案开始执行。选择报表查询场景是因为目前管易的报表存量数据巨大(约有上百TB),查询场景非常复杂,客户查询几十万数据的响应往往要30秒以上,但该报表查询对客户使用来说又是使用非常频繁,如:客户的运营人员需要时时查询某产品一定时间范围内的销量以制定促销计划;客户的财务人员需随时查询各类订单、产品的销量、利润从而制定采购计划等等,而这些查询操作所产生的数据检索都是相当大的,查询速度过慢对于客户来说体验会相当差。
下图确定验证方案后,报表场景基于Hologres+Flink的数据流转图:1、数据源存储在RDS中,包括订单、库存、商品等数据。2、通过DataWorks数据集成的整库同步将RDS的数据同步到Hologres,包括全量数据离线同步、增量数据实时同步以及分库分表合并成一张Hologres表等。3、然后在Hologres中进行数仓分层,ODS-DWD-DWS,大多数是通过DataWorks的分钟级调度来做,然后在Hologres提供近实时查询。但有些场景对数据的实时性要求非常高,比如实时物流跟踪,因此用Flink读取Hologres Binlog进行数据处理,然后再写入Hologres的方案,使得数据能够实时写入实时查询,满足部分业务的实时查询。4、由Hologres提供统一的对外查询应用,包括实时物流跟踪、数据参谋、实时大屏、运营分析等,这样不用把数据再写一份到MySQL提供线上服务,减少开发操作。为了将现有的报表数据整合到Hologres中,管易安排了4名开发人员(包括DBA和开发),共计投入了3个月的时间完成了从RDS到Hologres的报表数据迁移工作。在完成了数据和任务迁移之后,开始了逐步使用Hologres提供业务查询,直到后面完全上生产。上完生产之后,发现带来的好处有几个方面:1、延迟降低到秒级:之前通过MySQL的查询至少是30s+,现在新系统的查询基本都在10s内,报表查询的整体响应速度都有了质的飞跃,同时,在物流管家模块中,借助Hologres强大的实时分析聚合能力,成功解决了之前客户普遍反映的数据统计延迟问题。2、业务更加敏捷:现在新架构的主要产品就是DataWorks+Flink+Hologres,由Hologres提供统一的查询应用,架构变得更加精简,对于业务的一些临时需求也能做到更快的响应,同时开发和运维也变得更加敏捷,减少了很多不必要的操作,报表查询的稳定性也得到提升。
三、最终呈现
鉴于Flink+Hologres+DataWorks这套新的架构在管易报表场景的有效验证,后续也将会持续基于这套架构做更多的业务场景探索,搭建更大规模的数据中心平台,通过整合和管理海量数据,提供更高效、可靠的数据服务,实现销售渠道、业务中台以及财务系统的全面关联,打造一个更加智能的ERP平台,让数据赋能业务价值。