共计 5757 个字符,预计需要花费 15 分钟才能阅读完成。
摘要: 本文整顿自满帮实时数据团队 TL 欧锐,在 FFA 2022 行业案例专场的分享。本篇内容次要分为四个局部:
- 满帮业务及平台架构介绍
- 实时数据
- 实时产品
- 将来打算
点击查看直播回放 & 演讲 PPT
一、满帮业务及平台架构介绍
满帮团体全心全意帮忙司机和货主,助力物流降本增效,利用挪动互联网、大数据、人工智能等新技术,打造智慧物流生态平台,晋升“车找货、货找车”的智能化和标准化,改变传统物流行业“小、乱、散、弱”的情况。旗下运满满货运平台一站式解决货运全链路问题,百万司机一秒响应。
满帮实时数据矩阵图
满帮的实时数据矩阵图次要采纳了云原生和 OLAP 平台的架构,次要采纳了阿里云 Flink+Hologres 的利用架构。在实时数仓层面,建设了用户、货源、流量、领取、交易、营销以及 CRM 根底层,同时还建设了咱们特有的数仓分层,叫实时供需层,相当于传统公司的 ADM 层。在这一层咱们建设了线路司机散布状况、沿途货源散布状况、二级货类散布状况、实时离线供需交融状况以及每个登程城市或者线路沿途的疫情和天气情况。
在数仓上咱们还往前更近了一层,做了实时特色。基于分钟级或者秒级的实时数仓去做数据,疾速高效的赋能给算法和经营业务。包含司机和货主的行为特色、司机行为概率分布、货源行为状态散布、路线货源价格散布。同时,咱们团队在实时策略上也做了相应开发,比如说司机有拼单的志愿,或者说司机有漫游行为、人群流量实时预测、Push 流量实时预测和调配。
对于为了满足实时业务的实时数据产品,它和离线数仓有一个本质区别,就是实时数据须要更多直接触达业务。那么咱们怎么去定义实时数据产品呢?咱们想把它变成一个实时的决策平台,蕴含如下几个环节:
- 第一步是数据洞察;
- 第二步是智能归因;
- 第三步是实时预警,指标归因进去后把数据告警给相干的业务方;
- 第四步是人群画像,指在告警时,须要把相干人群的画像被动勾画进去;
- 第五步通过高效的 OLAP 和 Flink 计算开发一条简略的策略;
- 而后导入到规定引擎,让算法和经营来调取;
- 最初通过 A/B 成果实现整个决策平台的产品构建。
线上实时决策平台和底层数仓,次要的服务对象蕴含页面排序、搜寻排序、智能召回、Push 收归、司机会员、委托定价等权利或价格的策略,实时决策基本上都用到了实时特色和实时数据。
在做实时数据的时候,咱们思考了三个维度。第一是价值。咱们须要去了解和洞察业务,而后通过实时决策平台赋能业务。第二是闭环,咱们不仅只是把数据做到位,还须要思考整个业务的闭环成果。第三是老本,次要是基于价值去掂量 ROI,如果投入与产出不成正比,咱们就须要在老本上绝对收敛一些。
满帮实时计算平台架构
接下来分享一下满帮实时计算平台的架构。满帮的数据分布在不同的机房,当然也散布在不同的云厂商。从下图能够看到 A 机房次要是生产零碎和实时计算,B 机房次要是离线机房,即离线集群。
在这种数据架构下做实时数据的全链路能力,咱们做了如下几件事:
- 咱们做了全链路稳定性建设。数据源到最上游的数据生产做到分钟级,即一分钟、十几秒甚至几秒钟,业务零碎就要生产到底层传来的数据。
- 咱们在实时计算数据源上进行了稳定性治理。在前端埋点采纳了业内比拟当先的架构,后端埋点在一些要害的业务点上进行了一些打点,让数据能够做到秒级达到实时数据仓库。
- 咱们对立了数据规范。在数据源治理完后,把所有的实时数据放到一个数据总线里,保障实时数据的生产是对立数据规范。
- 咱们已经采纳过传统的 Doris 和自建的一些架构,但发现运维老本都绝对比拟高,所以最终采纳了阿里的 Hologres 集群。
- 咱们要做一个残缺的数据服务生态圈。在把数据赋能到业务方和调用方的时候,咱们须要提供一些 API 和音讯队列。这里咱们排汇了阿里云 OneService 的建设思路,构建了一个对立数据服务。
- 咱们和算法平台一起做了实时样本归因平台,同时配合他们做了一个实时训练的框架,保障算法和经营的实时决策。
从自建 Flink 到迁徙云原生的阿里云实时计算 Flink 版平台降本增效
以上是实时计算平台架构的分享,接下来分享一下,咱们从自建的 Flink 迁徙到云原生的阿里云实时计算 Flink 版平台的起因。 原有自建集群上运行实时作业稳定性差,重大影响业务,自建整体运维老本较高,须要将重心从平台建设向业务优化歪斜,技术倒退路线从开源自建向托管云服务迁徙。 具体如下:
- 第一点,阿里云实时计算 Flink 版平台采纳了云原生全托管架构,部署、资源隔离在下面都具备人造的架构先进性,CU 级别智能弹性扩缩容无效晋升性价比。
- 第二点,咱们在本人搭建 Flink on Yarn 的时候,发现底层的资源隔离和资源之间的影响有很大的波动性,阿里云实时计算 Flink 版平台的云原生资源隔离能力能够实现作业级和代码级的隔离,缩小相互影响,技术当先性发明平台稳定性。
- 第三点,阿里云实时计算 Flink 版开发平台,它的 metrics 采集零碎、SQL 开发、资源调优明显改善开发效率,运维工作量和老本显著升高。
上面咱们来看一下,下半年把运满满的整个实时计算 Flink 工作全副迁徙到阿里云,收益是怎么样的?
咱们迁徙的 Flink 工作有 560 个,迁徙工夫仅需 1.5 个月。迁徙过后,通过一段时间的察看,咱们发现 SLA 的指标从 95% 晋升到了 99%。另外在运维人效方面,从原来的三个人到当初的一个人,全年节约了 420 人天。
在开发的效率方面,每个工作的开发、调优、上线能够提前两天。如果依照每年 300 个工作,就是节俭了 600 人天。最初基于阿里云对 Flink SQL 和底层 state 状态的深度优化,咱们发现均匀一个 Flink SQL 工作耗费 6.67CU 的资源,而上了阿里云过后,能够节俭 40% 的资源。这样算下来,整体能够达到 35% 的资源节俭。
二、实时数据
目前咱们应用阿里云 Flink+Hologres 这套架构来基于分钟级或者秒级的实时数仓去做数据,疾速高效的赋能给算法和经营业务。包含司机和货主的行为特色、司机行为概率分布、货源行为状态散布、路线货源价格散布等。利用场景次要分成两个局部。第一局部是特色计算,第二局部是样本归因。样本归因即把用户的行为数据、特色数据、回流数据关联起来。
咱们采纳这套架构的起因是,Hologres 反对读写拆散和实时数仓,其中读写拆散的性能给咱们带来很大的收益。另外咱们在做特色的二次计算时,也采纳了阿里云 Flink+Hologres 的最佳实际,实时计算 Flink 版在实时作业的稳定性上给了咱们很大的惊喜,同时定时调优的策略使得资源效率显著进步,很好的为实时决策提供了数据撑持。
从实时数据到实时决策
实时决策蕴含两局部,别离是在算法场景的实时决策、在经营场景的实时决策。上面先分享一些咱们怎么用实时数据决策算法场景。
在一个传统的举荐算法链路上,它的链条是绝对比拟长的。司机从 APP 进行搜寻,而后通过 AB 流、子场景、召回、粗排、截断、精排,最初到实时策略。其中召回的环节,可能会带来千条的数据,所以要通过后边的环节逐渐缩小数据量。
从下图能够看到,AB 分流到实时策略的过程须要实时指标把它们串联起来,实时指标的数据在 AB 分流、召回、粗排、截断、精排等环节都会被用到。另外在精排的时候,用分钟级模型也要用到实时指标的数据。所以要了解实时数据的决策,首先要了解实时数据对每一个算法子模块的作用。
接下来咱们思考一个问题,要怎么去推导实时数据问题定义、指标、策略和价值呢?
首先,如果咱们在算法场景用实时数据赋能业务,须要思考以下三个方面:
- 零碎实时性,须要实时获取最新的模型和数据。
- 特色实时性,须要实时获取数据的散布。
- 模型实时性,须要保障实时拟合数据的散布。
而后咱们须要确定子目标,确保特色的更实时、模型的更实时、样本的更实时。咱们给本人定义的指标是,第一计算提早全链路小于 3 分钟,关键点链路要做到 10 秒甚至 20 秒;第二整体数据提早小于 5 分钟;第三样本准确率大于 97%。
接下来制订策略。在计算提早方面,咱们采纳 阿里云 Flink+OLAP。在数据低延方面,须要思考样本提早、特色提早、全链路提早监控、数据治理、链路优化。在样本准确率方面,除了应用传统的一些样本技术,咱们还须要留神样本数据品质监控和模型成果在线监控。咱们采纳了阿里云 Flink+Hologres 这套架构。
最初明确价值。在业务价值方面,基于搜寻天模型根底,有 3% 业务的晋升。技术价值方面,积攒积淀实时特色模型,晋升算法模型更新时效性,赋能算法业务,服务不同特色算法场景;买通增量学习全链路,为增量学习平台打下技术根底。
具备实时特色计算的实时数仓建设
上面分享基于阿里云 Flink+Hologres 实现的实时数仓的建设。咱们的数仓是以地位关系、运力、供需三个维度为外围,进行双向推导和形象。和个别的物流公司差不多,咱们的实时根底数据也都蕴含用户、货源、车辆、流量、交易、车油、金融、风控。但咱们更关注的其实是司机和货主的地位状态,因为这决定了咱们的匹配效率,所以咱们的实时数仓和传统的离线数仓有很大不一样。
咱们基于地位构建了一套实时数仓,因为业务决策的实时必要性,产生了对数据的实时性要求,因而咱们在构建数仓时, 数据一部分通过 Flink CDC 同步到 Hologres,实时入仓,一部分通过实时计算后落到数仓中,造成一体化剖析服务。 通过地位把货源、车辆、用户、交易、流量、营销等数据关联起来。另外咱们还须要深刻业务,在车货匹配、定价决策、调度决策、供需监控、客服决策等方面,实时做决策。
但在这一过程中,业务应用还是会和数仓之间有一层 Gap。
- 实时数仓对业务的形象度不够,要怎么办?
- 实时数仓到底能给业务带来什么价值?怎么度量?
- 实时数据怎么开掘特有业务的指标和特色?所以咱们形象了一个实时供需引擎。
换句话来说就是在业务和实时数仓上,形象了一个虚构的产品层供业务应用。咱们在数仓建设的时候进行了两次形象。第一次形象是自下而上,形象出一个实时数仓。第二次形象是也是自下而上,形象出一个供需引擎。
建设实时数仓过后,咱们还在进行了实时特色和实时指标的开发。在这一过程中咱们发现,对接业务的时候,咱们往往很被动。客户提出一个需要,咱们就逐渐去开发,这样往往会破费大量的工夫。
比方业务提出了一个需要,数据的同学就须要大略 8 天的工夫去做架构设计和数据开发。等把特色开发完后,算法同学还要进行数据的回流和模型训练及验证,这个过程又须要大略 10 天左右。整个过程须要 20 天甚至一个月能力全链路上线。
那么怎样才能进步整个链路的开发和迭代效率呢?
咱们做了一个批量实时特色计算框架。举个例子,在咱们的环境中,有一个点击数据须要依据算法不同的工夫工夫维度去看。有的算法要求 5 分钟,有的算法要求 1 个小时,有的算法要求 10 秒,这个工夫是无奈预估的,在算法上线之前咱们无奈晓得哪一个工夫纬度对它最无效。
除此之外,还须要看每次点击次数的分位数、近 5 分钟的散布、排名、近 5 分钟排名 log、group by 的状态、daytime 分桶特色等等。在后面根底上咱们还会做一些穿插特色,比方减去常有的均匀次数,当天天气情况和以后疫情状况等。所以用户提出一个数据的背地其实隐含了很多特色。
咱们采纳了一套阿里云实时计算 Flink 版架构,来确保用户提出数据后,能尽最大可能满足业务需要。用 Window 的滑动窗口、滚动窗口保障能够做到工夫上的切片和滑动。sum 代表计算,咱们能够做 5 分钟、10 分钟、30 分钟的开发计算。而后通过 function 调用计算函数,主动计算出实时特色。function 定义的函数包含 log、ration、cnt、dayCategory 等。
在做了这套计算框架后,咱们在研发效率上有显著晋升,撑持特色批量开发,开发周期从 3 天升高到 2 天,目前还在大规模的推广,咱们指标是从 3 天升高到 0.5 天。资源利用方面,咱们把 120 个工作合并成 16 个,资源耗费缩小 200 Core 资源。在性能和稳定性方面,咱们每分钟计算出 1000+ 特色,且工作保持稳定运行。值得一提的是,如此宏大的计算得益于阿里云实时计算 Flink 版云上能力的不断更新,比方将相似 Window table-valued 函数加强、CAST 和类型零碎加强、双流 Join 算子反对主动推导开启 KV 拆散优化等,能力欠缺的同时作业运行性能显著进步,对业务决策进行了无力的撑持。
三、实时产品
解决了实时数据的问题,咱们在实时数仓的根底之上,构建了以实时线上决策零碎为外围定位的产品,以实时预警作为出发点开始,目前咱们做了以下这些事。
第一个是实时指标告警平台烽火台,它的作用是解决实时指标的展现和告警。从下图中左边的窗口能够看到,咱们能够通过实时指标烽火台把用户关怀的指标展现进去;从左边的窗口能够看到,还能够对指标进行配置告警,被动触达业务告警。
第二个是实时数据服务平台,它的作用是解决实时数据服务能力。当业务方须要调用数据时,咱们不能间接吐到它的音讯队列里,所以心愿有一套 API 接口或者一套服务来解决它调用咱们数据的问题。因而咱们和离线数仓共用一套 OneService,而后把咱们提供的数据服务展现在一个数据超市里。业务方只须要通过一些简略的配置,就能生成 API,供用户间接调用,最初进行计费。
四、将来打算
2006 年咱们上了 Hadoop;2018-2019 次要以 Spark Streaming 为主;2020 年上了 Flink DataStream;2021 年上了实时数仓和 Flink SQL;2022 年,咱们搭建了实时特色、实时服务、烽火台;2022 年 Q4 咱们将 Flink 迁徙到了阿里云上,降级了特色平台,还对实时决策平台进行了初步结构。
2023 年,咱们将把实时数据和业务进行更深度的交融,做实时决策平台 2.0;摸索 Flink on AI 并大规模应用。除此之外,咱们还会基于阿里云 Hologres 和别的云厂商产品,去构建咱们本人的跨云 OLAP 引擎平台。
点击查看直播回放 & 演讲 PPT
更多内容
流动举荐
阿里云基于 Apache Flink 构建的企业级产品 - 实时计算 Flink 版现开启流动:
99 元试用 实时计算 Flink 版(包年包月、10CU)即有机会取得 Flink 独家定制卫衣;另包 3 个月及以上还有 85 折优惠!
理解流动详情:https://www.aliyun.com/produc…