10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

Uber 2019 年数据平台建设实践

  • 2019-12-26
  • 本文字数:2775 字

    阅读完需:约 9 分钟

Uber 2019 年数据平台建设实践

Uber 的外卖服务 (Uber Eats) 自 2015 年 12 月在多伦多推出以来,已经在全球超过 40 个国家 400 个城市上线并持续快速发展。再加上其他业务,就构成了如此庞大的业务,如果 Uber 的数据平台做不到信息智能化,很难想象如何支撑起这样庞大规模的业务。今天,InfoQ 翻译并分享 Uber 是如何做到数据平台智能化的。


对 Uber 来说,2019 是繁忙的一年,包括:迎来了第十亿单 Uber 外卖订单;在平台上,自行车和两轮电动车的外卖骑手覆盖了 2400 万英里;以及前往帝国大厦、埃菲尔铁塔和金门大桥等热门景点的旅行。然而,在所有这些活动的背后,都有一个关于数据的故事,以及我们为支持平台服务而对数据基础设施进行的创新。


在我们现有的规模和全球范围内,对 Uber 平台的全天候支持意味着高达数拍字节(petabytes,PB)级别的数据在我们的基础设施中流动。我们不仅要使用这些数据向人们展示外卖骑手的位置或最新的餐厅菜单,还要不断分析汇总的、匿名的趋势以了解我们的服务在哪些方面还可以运行得更顺畅。


译注:拍字节或拍它字节(Petabyte、PB)是一种信息计量单位,现今通常在标示网络硬盘总容量,或具有大容量的保存媒介之保存容量时使用。1PB = 1,000 TB (兆) = 1,000,000 GB (十亿),所以中文的全称是:1 千兆。


我们发现一个很有希望提高效率的领域是,将数据科学的实践应用到我们的基础设施中,使我们能够计算最优的数据存储和硬件使用率。为了更好地管理我们数据,在持续增长的情况下,能够保持数据的新鲜度和质量,为此,我们在内部启动了新项目。我们建立了一个新的分析平台,这样,我们就可以在短短几秒钟内获得关键的业务洞见。


虽然这些项目并非我们 2019 年数据平台工作的全部,但它们代表了关键的冰山一角。

利用数据科学优化我们的数据平台

建立有效的数据基础设施远不止是建立数据库并向其填充数据那么简单。对于我们的一些用例,每天每时每刻都有新的数据出现,记录需要不断地更新。而在其他情况下,数据到达的节奏较慢,需要的更新也较少。同样,我们的一些分析需要实时数据,而另一些分析则依赖于历史数据模式。


这些不同的用例为通过数据科学、计算成本函数和其他确定数据最佳存储方式的方法进行优化打开了大门。在一个这样的优化项目中,我们的数据科学和数据仓库团队一起分析了数据仓库中表的效用,确定哪些表需要对我们的低延迟分析引擎中保持可用,哪些表可以转移到成本较低的选项上。


我们的数据科学家开发的模型考虑了各种因素,如查询的数量和单个表的用户数量、维护成本以及表之间的依赖关系等。卸载低效用的特定表可以使数据库成本降低 30%,我们的团队目前正在考虑如何应用人工智能来进一步推进这项工作。


同样,我们的团队也在考虑如何优化 Vertica,这是 Uber 正在使用的一个流行的交互式数据分析平台。随着我们需求的发展,最直接的解决方案将涉及在我们的基础设施中复制 Vertica 集群。但是,这种解决方案并不具有成本效益。


取而代之的是,我们设计了一种方法来部分复制 Vertica 集群,以更有效的方式在它们之间分发数据。我们的数据科学团队提出了一个成本函数,用于展示部分复制是如何工作的,而数据仓库团队构建了组件来让解决方案在生产环境中实现无缝工作。这个解决方案能够显著降低 30% 以上的总体磁盘使用量,同时继续提供相同级别的计算可伸缩性和数据库可用性。


在我们这种规模的数据基础设施中,即使是很小的优化也可以带来巨大的收益,在加快查询速度的同时需要更少的资源,并最终使 Uber 的服务运行更加平稳。

数据管理

为多个不同的业务线提供服务,如促进承运人和托运人之间货物运输的 Uber Freight,以及连接骑手、餐厅和食客的 Uber Eats 外卖系统,同样也需要不同的数据。理解数据的整个生命周期,从数据的来源、各种转换到最终目的地,对于保证数据质量和保真度都是至关重要的。


我们的内部产品 uLineage,可以追踪数据的来源、去向和转换方式。这个综合系统从数据通过 Uber 服务进入的那一刻起,当数据由 Apache Kafka 传输时,以及当数据存储在 Apache Hive 中时,都会维护信息。uLineage 传播数据新鲜度和质量信息,同时支持高级搜索和图形设置。



图 1,uLineage 展示了一段数据所在的存储区及其所经历的转换


我们还为大型 Apache Hadoop 表启动了一个全局索引,这是我们的大数据基础设施的另一部分,范围虽然更有限,但对我们的运营来说具有同等价值。我们的全局索引充当簿记组件(bookkeeping component),显示存储特定数据片段的服务,以便它们可以进行更新或显示查询结果。将 Apache HBase(一种非关系型分布式数据库)作为全局索引,可以确保高吞吐量、强一致性和水平伸缩性。


我们为 Apache Hadoop 数据湖构建了另一个组件:DBEvents,作为变更数据捕获系统。我们围绕三个原则来设计 DBEvents:数据新鲜度、数据质量和效率。DBEvents 在从 MySQL、Apache Cassandra 和 Schemaless 等来源获取数据期间捕捉数据,从而更新我们的 Hadoop 数据湖。这个解决方案通过标准化的变更日志来管理拍字节级的数据,确保服务对可用数据有着统一的理解。

高效分析

通过我们的平台或任何其他服务来分析有关拼车、自行车和两轮电动车骑行的数据,既可以排除故障,又可以主动改进。例如,如果数据显示客户等待骑手的时间,比等待司机伙伴的平均时间还要长,我们就可以实时分析问题,看看我们的运营团队是否能够提供帮助。我们还可以分析有关我们服务的历史数据,并开发新的功能来改进它们,例如,让乘客更容易在拥挤的接送区域找到司机伙伴。



图 2:我们新的分析平台为内部用户提供了基于实时数据的业务关键洞见


我们对及时且可用的分析需求,促使我们构建了一个新的平台,该平台目前支持多个关键业务级仪表板提供支持。这个平台的仪表板如图 2 所示,它将现有的实时分析系统(包括 AresDBApache Pinot)整合到一个统一的自助平台中,允许内部分析用户通过 Presto 提交查询,Presto 是一个由我们的工程师支持的开源分布式 SQL 查询引擎。


由于对 SQL 查询的支持,新平台还使我们的内部用户能够更容易地进行数据分析,从而作出关键业务决策。同样重要的是,它还能够以低延迟来交付结果,让我们能够快速处理问题。

为未来而建

维护一个可靠支持质量和新鲜度的数据基础设施是 Uber 未来的重要组成部分。数据必须尽可能准确、及时,以支持我们平台上的服务。过去几年来,我们一直努力构建可以扩至我们全球全天候运营的基础设施。我们当前工作的一个关键部分是,使我们的基础设施高效运行,并支持我们所有的内部用户。


我们的工程师在 2019 年取得了巨大的进步,远远超过本文记载的部分。我们期待在新的一年里,能够进一步优化我们的数据基础设施,让 Uber 的平台服务更上一层楼。


作者介绍:


Nikhil Joshi 是 Uber 数据平台团队的产品经理。 Viv Keswani 是 Uber 产品平台团队的技术总监。


原文链接:


https://eng.uber.com/uber-data-platform-2019/


2019-12-26 13:136274
用户头像
刘燕 InfoQ高级技术编辑

发布了 1112 篇内容, 共 580.4 次阅读, 收获喜欢 1981 次。

关注

评论 1 条评论

发布
用户头像
图片太不清晰了。
2019-12-26 13:53
回复
没有更多了
发现更多内容

智能加持:嘉为蓝鲸 WeOps 日志模块从记录到根因分析的跨越

嘉为蓝鲸

日志 智能运维 #WeOps

如何 “硬核” 应对关税风暴?

GPU算力

gpu 算力 高性能计算 GPU服务器 关税

DeepSeek对我国算力的影响力有多大?

GPU算力

开源 算力 国产大模型 DeepSeek DeepSeek R1 模型

武汉同济医院大模型应用通识第2课聚焦提示词工程,和鲸助力开讲

ModelWhale

同济医院 大模型通识课 医疗工程提示词

Java 开发者的 AI 内卷指南:用工具自动补全 90% 代码!

飞算JavaAI开发助手

Java 开发如何用 AI 工具处理分布式事务?飞算 JavaAI 自动生成高可用代码

飞算JavaAI开发助手

如何使用Lucidchart在线生成图表?Lucidchart使用技巧盘点!

职场工具箱

办公软件 AIGC 绘图软件 AI 绘图 Lucidchart

继「智元机器人」后,比亚迪再投人形机器人创企!

机器人头条

科技 大模型 人形机器人 具身智能

深度解析金仓数据库KingbaseES的多表连接视图及其可更新性

金仓技术

KingbaseES 金仓数据库

【实战】一招搞定Shell调度!DolphinScheduler+ProcessBuilder超详细教程

白鲸开源

大数据 开源 Shell Apache DolphinScheduler 任务调度

山东省MBA发展论坛,AI赋能经管学科高质量发展方案重磅亮相

ModelWhale

山东省MBA发展论坛 AI赋能经管

「地平线」创始人余凯:自动驾驶尚未成熟,人形机器人更无从谈起

机器人头条

科技 大模型 人形机器人 具身智能

平衡增长和资金管理,实现企业长期战略目标

智达方通

全面预算管理 资金管理 预算管理

10 种最常见的 Active Directory (AD) 攻击

运维有小邓

AD域管理 AD域审计

Promise 这个新 API 真香!

Immerse

征程 6|YUV 域降噪模块 YNR 简介

地平线开发者

自动驾驶; 算法工具链 地平线征程6

任务运维、循环任务死锁.....DolphinScheduler任务配置经验分享

白鲸开源

大数据 开源 Apache DolphinScheduler 任务调度

拒绝焦虑?飞算 JavaAI 一键生成完整工程代码,让你专注架构设计

飞算JavaAI开发助手

Cursor 最强竞争对手来了,专治复杂大项目,免费一个月

硅基新手村

vscode cusor

向量数据库与知识图谱:智能化运维的知识基石

嘉为蓝鲸

AIOPS 智能运维 DeepSeek

理工科 MCP Server 神器,补足人工智能幻觉短板

阿里巴巴云原生

阿里云 云原生

破解数据加工、融合和验证困境 蚂蚁密算发布密态可信数据空间产品

科技热闻

新一代质量管理QMS系统,产品质量全追溯

万界星空科技

质量管理 QMS 产品质量管理

springboot分页查询并行优化实践

电子尖叫食人鱼

后端 springboot

Java多进程多线程处理详解

量贩潮汐·WholesaleTide

Java

大数据是不是凉了?

Databend

哪些CAD看图软件适合初学者使用?

在路上

cad cad看图 CAD看图王

花式分享、分屏畅聊:华为Pura X让社交生活游刃有余

最新动态

从代码迁移到AIGC:摩尔线程2050大会用全功能GPU解锁Z世代的科技脑洞

新消费日报

物流规划、仓储自动化和算法调度的问题分析

电子尖叫食人鱼

数据库 算法 运维

K8s新手系列之K8s中的资源

不在线第一只蜗牛

Kubernetes 容器

Uber 2019 年数据平台建设实践_数据库_Nikhil Joshi_InfoQ精选文章