随着双11的开启,物流行业也迎来了一年一度的大考。2021年双11期间,地四方作为物流仓储服务商,拥有40余个仓库和分拣点,50万+平米的工作面积,单日单日订单高峰达千万级。海量购物订单由迪斯方送货上门。从最终付款人秒变收货人。一、业务介绍迪斯方成立于2004年,起步于深圳。是中国最早的国际物流和全球仓储服务物流供应链服务商。主要为从事跨境电子商务的客户、平台和普通用户提供仓储物流服务。以GPN(直购)和GFN(海外仓)两大网络为客户提供更好的全球跨境电商优质生态环境,致力于助力中国企业走出去。目前在全球拥有100多家分支机构,服务全球约100万跨境电商商户和2亿多跨境电商终端用户。2、业务挑战为应对双11单日高峰千万级订单,四方利用大数据合理优化资源,提前准备全球仓储人力、物力、运力确保仓储流程高效有序地进行。从今年10月中下旬开始,上海转运中心和东莞转运中心相继上线。截至目前,迪斯方先后在华东、华北、华南建设和扩建超级枢纽,收购40余家仓库,持续加大在全国的布局;它在中国拥有40多个分支机构/分销服务网点,以及50个全国10,000+平方米的办公/工作场所。在业务方面,迪斯方利用自主研发的分拣系统和云技术,快速识别条码、指令分拣,实现计重分拣一体化全面覆盖,确保每张票都能自动识别、准确分拣。图书馆。称重分拣由传统的人工方式升级为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的组合作为实时数仓。这里有两条路径:第一条路径是:通过DTS将Binlog数据同步到DataHub,然后使用Flink从DataHub消费数据,计算结果存储到Hologres。该路径主要用于计算一些访问频率高、数据量大的数据,比如要采集的订单数、要接收的订单数、要完成的订单数。第二条路径是:业务系统的Binlog数据通过DataWorks同步到Hologres。Hologres分为3层。ODS层用于存储原始数据,直接加载原始日志和数据,保留原始数据不做任何处理。一般情况下,从业务系统以增量方式导入到ODS层,数据模型和粒度与业务系统保持一致。DWD层数据细节层清理ODS层数据。DWS是汇总层,主要存储宽表。这里主要是考虑到粒度的差异,多表连接查询在Hologres中才能发挥最大的作用。整个架构的任务调度依赖于DataWorks。此次采用的批流一体的即席计算查询混合模式,既发挥了Flink流计算的能力,又充分利用了Hologres强大的链接查询能力。互联网一般使用HBase、ClickHouse、Druid等作为实时查询数据库。我们的业务复杂度是互联网的数倍。六年内业务高速增长的最佳选择。四、四方与实时数仓Hologres1、为什么选择Hologres?那为什么选择Hologres?通过研究,发现它有几个特点,比较适合实际情况。首先是Hologres的实时能力,满足四方目前的实时数仓需求,支持百亿表和亿表之间的JOIN,秒级查询响应,也支持实时写入和批量数据导入。导入性能好,并发能力极强。二是Hologres采用存储计算分离架构,数据存储在阿里云分布式文件系统盘古(类比开源HDFS),方便计算或存储按需单独扩展。对于快节奏的行业,大促不同于日常所需的资源,可以快速扩展和收缩以满足业务的动态需求。同时,Hologres支持异构数据源的交互分析,支持离线数据和实时数据的联合查询。Hologres已经和MaxCompute无缝对接,可以直接在Hologres中查询MaxCompute离线表。三是维护成本低,运行稳定。Hologres作为实时数仓的存储成本约为ADB的1/3。资源灵活性高,可以像MaxCompute一样灵活升级配置。与阿里云大数据组件兼容性高,可以降低运维成本,提升研发效率,不会给技术架构带来很大负担。2、Hologres应用场景在面向分析的OLAP系统中,Hologres承担了实时和离线数据的查询。因为Hologres不仅支持高并发写入,还可以满足及时查询,还可以支持OLAP分析。在我们不同粒度的表连接起来的时候,可以充分发挥它的优势。下面列举两种不同的场景进行详细说明。场景一:库内运行场景的实时数据从Binlog解析到ODS层,同时微批任务计算分钟级别(可调范围)的统计数据到DWS宽表,同时与离线数据进行插入和更新,可以得到实时全量数据表,调度采用DataWorks的调度,每5分钟调度一次。场景二:跨仓中转场景针对一些数据量较小的表,依托Hologres强大的Join能力,通过视图构建DWS中间层,如下图所示:DWD是ODS层过滤后的视图,而DWS层就是DWD层,对于聚合层中的宽表,每查询一次DWS层,就相当于重新查询所有的表。这种查询语句非常复杂。对于关系型数据库,可能存在性能瓶颈会很慢。但对于Hologres来说,在毫秒级完成查询毫无压力,实现实时响应,节省调度资源,提高查询灵活性。3、Hologres目前存在的不足在使用Hologres的过程中,也发现了一些不符合实际需求的地方:一是无法对非空列进行索引,上亿没有索引时查询速度会下降——水平表连接。二是Hologres兼容Postgre生态,但支持的功能不多。与MaxCompute相比,开发难度更高。5、业务价值整个双11期间,四方升级了基于Flink+Hologres的实时数仓技术,支持实时大屏高频刷新接入,物流动态实时监控,促进业务高效化操作。消费者快递到家更快。整个架构升级给业务带来的价值有以下几个方面:稳定性:基于Hologres持续高稳定的输出,整体双11期间无论是实时数据写入还是数据读取都表现出了很强的稳定性。双11期间,故障率真正为零。实时性:收款、出仓、调拨等实时大屏,为我们的操作提供了非常强大的实时数据支持。整体时效较去年提升不少,为用户带来良好的物流体验。提高公司的服务水平。CloudNative:除了以上两个核心价值外,由于双11是流量高峰期,比日常流量高出数千倍,Hologres可以实现动态扩缩容以满足我们对资源的不同需求,从而减少运维和维护成本。这是迪斯方参加的第七次双十一,迪斯方在这次物流考试中交出了一份满意的答卷。随着业务的快速增长,迪斯方也在不断演进背后的实时数仓技术,以支持更丰富的仓储物流场景,逐步实现物流从“人工”到“智能”的转变。
