【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

Uber Freight 近实时分析架构,晚点取消的比例下降了 0.4%

作者:Claudio Masolo

  • 2022-11-26
    北京
  • 本文字数:1048 字

    阅读完需:约 3 分钟

Uber Freight近实时分析架构,晚点取消的比例下降了0.4%

Uber Freight是 Uber 的一个平台,致力于为托运人和承运人提供连接服务。为托运人提供可靠的服务对 Uber Freight 来说至关重要,这也就是为什么他们要开发承运人记分卡(Carrier Scorecard),其中包含了准时取货/送货、跟踪自动化和晚点取消等指标。关键在于他们要在 Carrier App 上近乎实时地显示这些信息,而且提供这种服务的架构必须足够快,快到可以满足这些指标需求。

 

这个架构的要求是数据新鲜度、延迟、可靠性和准确性。一旦运单完成或退回,将以较低的延迟更新绩效分数。每个承运人都可以在低延迟的情况下在应用中查看自己的绩效分数。数据的处理和服务具有较高的可靠性,如果发生了故障,整个系统可以进行优雅的恢复。性能指标必须得到精确的计算。

 

在设计和实现最终的架构之前,他们考虑了一些潜在的解决方案,特别是在聚合指标方面。这些潜在的解决方案包括使用MySQL进行动态聚合和使用 MySQL 进行数据预聚合。这两种解决方案都有一些缺点,主要的问题是需要批量插入或更新记录,以确保历史数据被正确更新。他们考虑的另一个解决方案是使用两张OLAP数据库表,一张存储原始数据,然后使用事件触发器异步函数来更新另一个表中的指标,但是这个解决方案是不可伸缩的,特别是在写入流量很高的情况下。

 


最终的架构图

 

最终的架构使用了KafkaFlinkPinot。后端服务生成的 Kafka 事件通过 Flink 来聚合。聚合的数据被摄取到 Pinot 中,它使用 Kafka 的实时摄取来保留最后三天的数据,历史数据被摄取到 HDFS 中。

 

Apache Pinot 提供了 JSON、排序列和星树等索引优化技术,以加速查询的性能。快速查询为承运人提供了更好的交互体验。为了实现 250 毫秒的表查询延迟,他们在 Pinot 表上创建了两种索引——倒排索引排序索引。倒排索引可以将带有 WHERE 子句的查询速度提高 10 倍,根据承运人的惟一 ID 对索引进行排序,将表的大小减小了一半,这也减小了查询延迟。

 

Neutrino 是用于访问 Pinot 数据集的查询网关,它是Presto的另一种部署方式,其中协调器和 Worker 运行在不同的主机上,可以独立执行查询。Neutrino 接受PrestoSQL查询,并将其翻译成 Pinot 查询语言。Neutrino 前面添加了 Redis 缓存,可以存储聚合指标最多 12 小时,缓存命中率超过了 90%。

 

根据Uber的观察发现,自从它开始向 Freight 司机提供绩效信息以来,所有关键指标都有了显著提升——晚点取消的比例下降了 0.4%,准时取货的比例提高了 0.6%,准时卸货的比例提高了 1%,自动跟踪的比例提高了 1%。这些绩效改进在 2021 年估计节省了 150 万美元的成本。

 

原文链接

https://www.infoq.com/news/2022/11/uber-freight-analysis/

2022-11-26 08:006343

评论

发布
暂无评论
发现更多内容

软件测试 | 测试开发 | Java or Python?测试开发工程师如何选择合适的编程语言?

测吧(北京)科技有限公司

测试

如何优雅地编写一个高逼格的JS插件?

茶无味的一天

JavaScript 前端 js JS插件

GitLab + Jenkins + Harbor 工具链快速落地指南

胡说云原生

DevOps gitlab cicd Harbor jenkins

旺链科技入选2022“科创中国”创新成果名单

旺链科技

区块链 金融科技 产业区块链

《编程的原则》读书笔记(二): 编程理论的三个思想和六个实现原则

Chares

软件工程 软件开发 编程原理 软件开发原则

Zebec即将推出公链并开放节点申请,潜力几何?

西柚子

【iOS逆向】某运营商签名算法分析

小陈

逆向思维 逆向 iOS逆向 逆向分析

如何快速打造BI大屏进行数据赋能

力软低代码开发平台

具有资质的昆明等保测评公司新名单看这里!

行云管家

等保 堡垒机 等级保护

软件测试 | 测试开发 | Google 测试总监聊如何经营成功的测试职业生涯

测吧(北京)科技有限公司

测试

Vue网站自动提交百度链接

源字节1号

软件开发 后端开发 Vue网站

Linux性能问题分析流程与性能优化思路

五分钟学大数据

Linux 10月月更

leetcode 145. Binary Tree Postorder Traversal 二叉树的后序遍历 (中等)

okokabcd

LeetCode 数据结构与算法

大数据ELK(十九):使用FileBeat采集Kafka日志到Elasticsearch

Lansonli

Filebeat 10月月更

C语言中的内存模型

C++后台开发

内存模型 C语言 C/C++ linux开发 C++开发

两将军问题和TCP三次握手

有态度的马甲

TCP协议 两将军问题

使用最小花费爬楼梯

掘金安东尼

算法 10月月更

【Nacos源码之配置管理 九】客户端获取配置数据的流程

石臻臻的杂货铺

nacos 10月月更

你好,广州!openGauss广州用户组招募计划正式开启

openGauss

网络安全漏洞分析之远程代码执行

网络安全学海

黑客 网络安全 信息安全 渗透测试 漏洞挖掘

如何从InfluxDB/OpenTSDB无缝连接到TDengine

TDengine

数据库 tdengine 开源 时序数据库

实时云渲染的关键技术是什么?

Finovy Cloud

人工智能 云渲染 实时渲染

zookeeper-四字监控命令和工具

zarmnosaj

10月月更

Flowable 中 ReceiveTask 怎么玩?

江南一点雨

Java springboot workflow flowable JavaEE

【一Go到底】第九天---进制

指剑

Go golang 10月月更

DAG 任务调度与 go-streams 结合的应用实践

KaiwuDB

ESP32-C3 应用程序的启动流程

矜辰所致

ESP32-C3 10月月更 ESP-IDF

如何低成本实现客户服务自动化?

Baklib

易操作、可观测、可扩展,EMQX如何简化物联网应用开发

EMQ映云科技

运维 物联网 IoT emqx 10月月更

智能合约系统开发Web3.0实现核心

薇電13242772558

智能合约

【荣耀帐号服务FAQ】AuthorizationCode有效期是多久?

荣耀开发者服务平台

手机 服务 安卓 荣耀 honor

Uber Freight近实时分析架构,晚点取消的比例下降了0.4%_架构_InfoQ精选文章