阿里技术双实时物流订单最佳实践
随着双11的开启,物流业也迎来了年度大考。2021年双11期间,递四方作为物流仓储服务方,布局仓库和分拣点超40+个,50w+平米作业场地,单日订单峰值达千万级别,海量购物订单由递四方配送到家,消费者由尾款人秒变收货人。
一 业务介绍
递四方成立于2004年,创业在深圳,是国内最早的国际物流和全球仓储服务物流供应链服务商,主要为从事跨境电商的客户、平台以及普通用户提供仓储物流服务,以GPN(直发订单)和GFN(海外仓储)两张网络为客户提供更好的全球跨境电商优质生态环境,致力于帮助中国企业走向全球,目前在全球超过100+家分支机构,服务全球约100万家跨境电商商户与超过2亿跨境电商终端用户。
二 业务挑战
为了应对双11单日峰值达到千万级别订单的状况,递四方运用大数据合理优化资源,提前做好全球仓储人力、物力、运力配置,保障仓储各流程高效、有序进行。从今年10月中下旬开始,上海转运中心和东莞转运中心相继启动。截至目前,递四方陆续在华东、华北、华南新建、扩建超级枢纽、揽收仓至40余个,继续加大在全国的布局;在国内拥有40个+分公司/分拨服务网点,全国50万+平方米办公/作业场地面积。
在业务方面,递四方借助自主研发分拣系统和云技术,快速进行条码识别,按指令分拣,实现称重分拣一体化全面覆盖,保证每一票货物都可自动识别、精准分拣出库。称重及分拣,已从传统人工模式升级为100%人工管控模式。此外,递四方信息科技的黑科技硬件——红光在此次“双11”首次亮相。在分拣效率不变的情况下,递四方信息科技用光幕等技术手段,对分拣机落格包裹进行核验,将库内错分率降低至万分之三,达到业界领先水平。尤其针对仓库环节,不断加大对库内的自动化、数字化、智能化建设,结合大数据、AI算法、云计算等手段进行系统的研发升级,引进高科技设备来提升产能、保障时效。
随着双11期间订单量剧增、应用的复杂度提升,我们的业务系统也经受着严峻的挑战,原来的实时数仓架构已经不能满足业务当前的需求。在寻找新的解决方案时,我们对比了业界常用的大数据实时查询数据库,比如HBase、ClickHouse、Druid,但在千亿级别数据多表连接查询时都遇到了瓶颈,无法满足业务实时性、服务稳定性的要求。
实时数仓在递四方的应用场景应用主要有以下几个方面:揽收、库内操作、仓间调拨、清关交邮预警监控,这里面包含着单票运转操作的每一个步骤。这些场景都需要做到实时监控,并且实时做出决策来提高物流的的整体时效。尤其是在双十一高峰期的情况下,如果人力或资源分配不足,很容易使某一环节堵塞,进而影响整体物流的时效。在技术的层面,我们有很多个业务系统,这些系统之间既有一致性也有独立性,一个复杂指标涉及到多个系统多张表,因此我们实时数仓对表连接查询能力非常强,而且对数据的更新插入速度也有着很高的要求。
今年双11,我们对支撑业务的实时数仓系统进行了升级,通过新一代基于flink+hologres的实时数仓系统,在物流订单量相较于去年增加多倍的情况下,仍然能够实时监控每一票订单的物流情况、每一个仓库的作业情况,并且实时数仓整体成本下降50%,真正做到了“多、快、好、省”。
下面我们将会具体介绍递四方实时数仓的升级演进之路。
三 递四方实时数仓之路
1 实时数仓1.0
在刚开始做第一版实时数仓的时候,时间窗口比较紧,我们要把有限的精力放到数据建模以及业务开发中,所以在对比了数据库的吞吐性以及处理能力后,我们选择了ADB。ADB在数量大很大的情况下,查询速度、插入速度都很快,而且支持DTS、OTTER等数据同步接入,同步性能很好。
数据源是阿里云的PolarDB、MySQL、RDS等数据库,采用阿里云的DataWork数据同步,把增量数据实时同步到ADB中,然后在ADB中做数据实时的计算,数据的任务调度在DataWork中完成。
但是当时遇到了一个非常大的问题,就是ADB的并发有限,计算任务耗费了大量的资源。在各种大屏、实时报表拉取数据的时候,高并发的情况下,ADB的延迟很高,给我们实时服务稳定性带来了非常大的挑战。
2 实时数仓2.0
经历了第一个版本的实时数仓后,我们总结了实时数仓的两个重要特性,一是实时,二是服务的稳定性。
第一个版本的实时数仓不能很好地满足稳定性,我们决定对新的实时数仓进行一个深入的研究和探索,在阿里云上看到了很多关于Hologres的应用,其性能表现极其出色,带来了不错的效果。在对比了业界不同的实时数仓架构后,我们最终选择了Flink+Hologres组合作为实时数仓。
这里一共有2条路径:
- 第一条路径是:通过DTS把Binlog数据同步到DataHub,然后使用Flink从DataHub中消费数据,把计算结果存储在Hologres中,这条路径主要是用于计算一些访问频率高且数据量大的数据,比如待揽收单量、入库单量、待完成单量等。
- 第二条路径是:业务系统的Binlog数据通过DataWorks同步到Hologres中。Hologres中分了3层,ODS层用于存放原始数据,直接加载原始日志、数据,数据保持原貌不做处理。一般情况下,以增量的方式从业务系统导入到ODS层,数据模型和粒度都与业务系统保持一致。DWD层数据明细层,对ODS层数据进行清洗。DWS为汇总层,主要存放宽表。这里主要是考虑到粒度的不一样,在Hologres中多表连接查询能够发挥其最大的作用。整个架构的任务调度依赖于DataWorks。
本次采用的批流一体即席计算查询混合模式,既发挥了Flink流计算的能力,也充分利用了Hologres强大的连表查询能力。互联网普遍运用的HBase、ClickHouse、Druid等作为实时查询数据库,我们的业务复杂度是互联网的若干倍,这些实时数据库并不能完全满足我们的需求,架构互有优劣,但我们的架构是未来五六年内业务高速增长的最佳选择。
四 递四方与实时数仓Hologres
1 为什么选择Hologres
那么为什么会选择Hologres呢?通过调研发现它有几个特点,比较适合实际情况。
- 第一是Hologres的实时能力,满足目前递四方的实时数仓需求,支持百亿级表与亿级表之间的JOIN,秒级查询响应,还支持实时写入、批量数据导入,拥有超高导入性能,且并发能力极强。
- 第二是Hologres 采用存储计算分离架构,数据存储在阿里云分布式文件系统pangu中(类比开源HDFS),方便按需单独扩展计算或者存储。对快速行业来说,大促和日常所需要资源不一样,能够快速扩缩容,满足业务的动态需求。同时Hologres支持异构数据源交互分析以及离线数据和实时数据的联邦查询,Hologres已经和MaxCompute无缝打通,能够直接在Hologres中加速查询MaxCompute离线表。
- 第三是维护成本低、运行稳定,Hologres作为实时数仓存储成本大约是ADB的1/3。资源灵活性高,可以像MaxCompute一样灵活的升降配置,与阿里云大数据组件兼容性高,能降低运维成本和提高研发效能,不会
- 原文作者:知识铺
- 原文链接:https://index.zshipu.com/geek/post/%E4%BA%92%E8%81%94%E7%BD%91/%E9%98%BF%E9%87%8C%E6%8A%80%E6%9C%AF%E5%8F%8C%E5%AE%9E%E6%97%B6%E7%89%A9%E6%B5%81%E8%AE%A2%E5%8D%95%E6%9C%80%E4%BD%B3%E5%AE%9E%E8%B7%B5/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com