作者:阿里巴巴菜鸟物流团队(弃疾,孝江,姜继忠)

一、业务背景

菜鸟智能物流分析引擎是基于搜索架构建设的物流查询平台,日均处理包裹事件几十亿,承载了菜鸟物流数据的大部分处理任务。
智能物流分析引擎将基于运配网络的各类应用场景集中到了统一的一个技术架构,以此提供强大的吞吐和计算能力。基于原架构的数据处理流程为:Datahub实时采集数据源,包含仓、配、运和订单等数据,实时计算Flink基于流批一体的模式对数据预处理,形成一个以订单为单位,包含订单跟踪事件的宽表,写入存储引擎HBase中,再供外部查询。

在数据处理部分,随着数据量的增加,原有的存储系统HBase在维表全量导入中所需要的时间越来越长,这就需要耗费大量的资源,另外其单机吞吐的表现不是很好,单位成本高。在数据量较小时,成本不是需要考虑的关键因素,但当数据量规模变大时,成本的重要性就体现出来了。菜鸟智能物流每天需要处理大批量的数据,这也就意味着每天将会浪费大量的资源。

同时,在我们的场景中,有些表是作为Flink维表基于PK进行PointQuery,有些表需要进行OLAP分析,而HBase并不能两种场景都满足。为了OLAP分析,需要将数据同步到批处理系统中,为了KV查询,需要将数据同步到KVStore。不同的查询需求就需要借助多个系统,数据在不同系统之间的导入导出不仅会加深数据同步的负担,也会带来冗余存储,也极容易出现数据不一致的情况,并且多个系统也会给开发和运维带来一定的成本。

基于以上背景,当前我们最需要解决的问题是降低整体的资源消耗成本,那么就需要有一款产品既能提供存储能力还要提供高性能的写入能力。而在查询场景上,若是这款产品能同时满足KV查询和复杂OLAP查询将会是加分项,这样就会解决多个系统带来的数据孤岛问题,一次性满足所有需求。

我们在集团内对多个产品进行了调研,最终选择了Hologres替换现有的HBase。

二、业务架构

菜鸟物流引擎需要处理大量的表和数据,全量任务快递线和仓配线通过MaxCompute(原ODPS)表的日分区快照做驱动源,增量任务通过对应的事件流做驱动,来进行引擎数据写入。
全量任务会根据包裹的历史履行进度进行聚合,生成这个包裹的客观履行和历史属性信息,并通过Flink Job实时同步更新到Hologres里,提供给数据任务进行关联。实时数据在接收到一条事件消息后,首先会去关联这条包裹历史履行,并会调用算法服务链,进行拆合单、末端网点预测、路由选择、时效预测等,生成新的预测履行进度。新的预测履行会作为回流数据写入TT(消息中间件,类似Kafka)和Hologres中,并再提供给数据任务进行关联。
通过数据任务之间的互相协同,我们对数据关系进行了梳理,并尽量降低数据之间的依赖,最终业务处理架构如下图所示:

  • 数据驱动层 在数据驱动层中,包含几个部分:全量任务的主表驱动、增量任务的主表驱动、业务辅表的驱动。
  • 数据关联层 数据关联层主要包括各种Flink的SQL Operator。为了提升全量任务和增量任务的吞吐,通过存储和计算优化,将数据关联尽可能的分布到不同的数据分区上,来进行性能提升。
  • 数据交互层 索引数据通过Swift Sink的方式写入到索引构建服务中;要持久化的内部数据,通过写入接口保存到存储服务中。

三、业务价值

将HBase替换成Hologres之后,给业务带来的价值主要有以下几个方面:

1.整体硬件资源成本下降60%+
对比HBase,相同配置的Hologres有着更强的写入性能,能够提供更好的吞吐量,也就是说我们可以用更少的资源来满足现有数据规模的处理需求。在实际业务应用中,整体硬件资源成本下降60%+,解决了我们最棘手的问题。

2.更快的全链路处理速度(2亿记录端到端3分钟)
全量数据处理所需的时间是非常重要的指标,设想某一天新发布的数据处理代码有bug,新产出的数据不可用,即使修复了代码,还得继续解决已经存在的错误数据,此时就要跑一次全量,用正常的数据覆盖错误的数据。全量任务的运行时间决定了故障的持续时间,全量运行的速度越快,故障才能越快解决。
在物流分析引擎的全量中,我们需要先通过所有维表的数据,确保维表自身的数据是正确的,这是一个非常耗时的操作。以其中一张表为例,2亿多的数据量,使用Hologres同步只需要3分钟左右,这也意味着可以更快的执行完毕全量数据,以便我们能够更从容应对突发情况。

3.一个系统,满KV和OLAP两个场景,没有数据冗余
Hologres在存储上支持行存和列存两种存储模式。列存适合海量数据的交互式分析,而行存适合基于Primary Key的整行读取。这就意味着我们可以将所有的数据存储在Hologres中,需要PointQuery就选择行存模式,需要复杂OLAP分析就选择列存模式,满足了OLAP和KV查询,无需再借助其他系统,既保证了数据存储的唯一性,也避免了各种系统之间的导入导出和复杂运维。

4.大维表实时SQL查询
以前如果想查一下维表中的数据,由于是KV接口,并不是很方便。Hologres兼容PostgreSQL生态,可以直接使用psql客户端访问,通过标准的PostgreSQL语法查询表中的数据,支持各种过滤条件,能够很方便的实时检查数据是不是有问题。

5.强Schema
原有的维表存储是一个弱Schema的存储服务,在Flink任务中,即使访问不存在的字段也不会报错,只是获取到的字段值为空。代码里不小心写错了字段名,一是很难立刻发现,通常要等到数据产出时候才能发现,甚至只能等用户发现,另外排查起来也很麻烦,没法直接定位。使用Hologres的时候字段名写错立即报错,错误信息很明确,避免了潜在的错误风险,还能节省时间。

原文链接
本文为阿里云原创内容,未经允许不得转载。

菜鸟+Hologres=智能物流相关推荐

  1. 阿里菜鸟回答2018:智能物流骨干网里的4张技术面孔

    乾明 李根 发自 江浙沪  量子位 报道 | 公众号 QbitAI 物流行业会怎样回答他们的2018? 阿里菜鸟网络说,在11月20日那天,便交上了答卷. 今年的双11物流,9天,10亿包裹全部送完. ...

  2. 【智能物流】谈笔1000亿的生意:揭秘菜鸟全球智能仓配技术实践

    作为与零售.金融并列的"商业基础设施",阿里巴巴的菜鸟网络成立的四年间里已经建构了一张数据化.智能化和社会化的物流网络干络,以支撑全社会的商品配送需求.2017年,阿里称未来五年继 ...

  3. 投入千亿的菜鸟网络智慧物流做得怎么样?

    AI前线导读: 2018年双十一,阿里当日成交额再创新高,达到了2135亿元,而双十一产生的物流包裹数量也达到了惊人的10.42亿,1亿包裹签收时间从2013年的9天缩短到2018年的2.6天:一周送 ...

  4. 电商谋定重整智能物流生态-李玉庭:对话中国经济和信息化

    电商谋定重整智能物流生态-李玉庭:对话中国经济和信息化 中国经济和信息化新闻网 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 万赢信采编:我国网络零售额目前已经占到 ...

  5. 菜鸟、京东物流再提速,快递业卷出新高度

    随着行业的成熟,物流快递行业的服务效率之争再次提速.3月31日,天猫超市宣布在杭州启动半日达服务,这意味着其快递包裹从下单到签收仅需半天.据公开资料显示,此次半日达服务从2022年底就开始筹备了.作为 ...

  6. 菜鸟打造智慧物流平台 引领物流新风潮

    本文讲的是菜鸟打造智慧物流平台 引领物流新风潮[IT168 云计算]"全球快递业经过10多年爆发式增长,已经面临拐点,需要完成智慧转型,才能支撑未来电商经济的持续增长.物流从产生就是连接上游 ...

  7. 【智能物流】未来3年中国物流大生态趋势,从京东物流的战略说起

    (作者:@黄刚 2017.12.22) 未来3年后的中国物流生态是怎的?这个话题值得很多人关注.因为可以大胆的预测,未来3年中国物流大生态会发生巨大的变革,关键因素就是:互联网. 2007-2017, ...

  8. 菜鸟智慧新物流核心技术全解析

    2018 年天猫双 11 全球狂欢节已正式落下帷幕,最终成交额定格在 2135 亿元,物流订单总数飙升至 10.42 亿单,再次刷新历史记录.与往年的双 11 不同的是,为解决庞大的包裹量,数字化和精 ...

  9. IAR在写结构体时不提示_智能物流装车系统的结构优化与改进

    文|滇西应用技术大学管理学院 鄢良国.姚敏.孙荷琴.杨晓 滇西应用技术大学基础实验实训中心 朱丹 智能物流装车系统主要用于烟草生产基地和物流配送中心之间往返运输的自动化装车业务中.本文针对智能物流装车 ...

最新文章

  1. 今天大佬告诉你Spring Boot 实现通用 Auth 认证的 4 种方式!
  2. How to Build a User Experience Team
  3. ustc小道消息20211229
  4. 荐读|属性与可直接访问的数据成员之间应该如何选
  5. 写日历的程序员,你必须弄懂的中国农历算法。
  6. 链接选项 rpath 的原理和应用
  7. java程序员饱和了吗?
  8. html悬停显示图片,JS实现悬停单元格显示图片
  9. Personal Leetcode solution(Python) 1~20
  10. python 根据开头时间戳 合并两个文件
  11. android 手势操作垂直滑动,Android-水平和垂直方向都可滑动的RecycleView
  12. 与其纠结,不如放弃!
  13. html 倒计时 插件,jquery.jcountdown.js倒计时插件(推荐)
  14. 什么是OXC(全光交叉)?
  15. 一川烟草,满城飞絮,梅子黄时雨
  16. 怎么调整gif表情包的比例?
  17. sqlserver ssis
  18. 【Linux】VMware使用 - 虚拟机克隆
  19. Hyperledger Fabric 实战(十二): Fabric 源码本地调试
  20. 关于计算机的网络作文,关于网络的作文:网络_450字

热门文章

  1. Java后端开发需要具备哪些知识结构
  2. vb ftp linux,VB FTP上传和下载模块
  3. 18awg线材最大电流_小米生态链拉车线:2.4A大电流,苹果MFi认证,高速充电不断裂...
  4. 编译php时的configure,PHP编译configure时常见错误
  5. xshell怎么让程序后台运行_使程序在Linux下后台运行
  6. springboot 中文文档_还在用 Swagger生成接口文档?我推荐你试试它
  7. php中常用的全局变量有,在PHP中如何使用全局变量的方法详解
  8. 调用kmeans_聚类分析—KMeans
  9. svn mysql认证_SVN基于MySQL认证
  10. 服务器基线加固脚本_Linux 基线检查,安全加固脚本