超级繁忙的2019年包括我们的第10亿份优步外卖订单,在我们的平台上骑自行车和摩托车的人行驶了2400万英里,以及去帝国大厦、埃菲尔铁塔和金门大桥等顶级目的地的旅行。然而,在所有这些活动的背后,有一个关于数据的故事,以及我们对数据基础设施的创新,以支持我们的平台服务。
在我们的规模和全球范围内,全天候实时支持Uber平台意味着我们的基础设施中有pb级的数据。我们不仅用这些数据向人们展示滑板车的位置最新的餐厅菜单但要持续分析聚合的、匿名的趋势,看看我们的服务在哪里可以更顺利地运行。
我们发现一个有希望提高效率的领域涉及到应用实践数据科学到我们的基础设施,这使我们能够计算最佳的数据存储和硬件使用情况。我们还在内部推出了新的项目,以更好地管理我们的数据,在持续增长的情况下保持数据的新鲜度和质量。我们建立了一个新的分析平台,因此我们可以在几秒钟内获得关键的商业见解。
虽然这些项目并不是2019年我们数据平台工作的全部,但它们只是冰山一角。
利用数据科学优化我们的数据平台
构建有效的数据基础设施远远不只是简单地建立数据库并将数据填充其中。对于我们的一些用例,每天每一秒都有新数据出现,记录需要不断更新。在其他情况下,数据到达的节奏较慢,需要的更新较少。同样,我们的一些分析需要实时数据,而另一些则依赖历史数据模式。
这些不同的用例为通过数据科学、计算成本函数和其他确定最佳数据存储方式的方法进行优化打开了大门。在其中一个优化项目在美国,我们的数据科学团队和数据仓库团队一起分析数据仓库中表的效用,确定哪些表需要保留给我们的低延迟分析引擎使用,哪些表可以离开,使用成本更低的选项。
我们的数据科学家开发的模型考虑了诸如单个表的查询和用户数量、它们的维护成本以及表之间的依赖关系等因素。卸载效用较低的特定表可能会使我们的数据库成本降低30%,我们的团队目前正在考虑如何应用人工智能来进一步开展这项工作。
类似地,我们的团队也考虑了如何优化Vertica这是优步使用的一个流行的交互式数据分析平台。随着我们需求的发展,最直接的解决方案将涉及在我们的基础设施中复制Vertica集群。然而,这种解决方案并不具有成本效益。
相反,我们设计了一种部分复制Vertica集群的方法,以更有效的方式在它们之间分发数据。我们的数据科学团队提出了一个成本函数来展示部分复制是如何工作的,而数据仓库团队构建了组件以使解决方案在生产中无缝工作。该解决方案能够显著减少超过30%的总体磁盘消耗,同时继续提供相同级别的计算可伸缩性和数据库可用性。
有了这样规模的数据基础设施在美国,即使是很小的优化也会带来巨大的收益,在加快查询速度的同时需要更少的资源,并最终使优步的服务运行更加顺畅。
数据管理
为多个完全不同的业务线服务,如Uber Freight(促进承运人和托运人之间的货物运输)和Uber Eats(连接送货员、餐厅和食客),都需要同样不同的数据。理解数据的整个生命周期(从它的起源、各种转换到最终目的地)对于保证数据质量和保真度至关重要。
我们的内部产品,uLineage,追踪数据的来源,去过哪里,以及如何被转换。这个全面的系统从数据通过Uber服务传入的那一刻开始维护信息,当数据通过Apache Kafka传输时,以及当数据存储在Apache Hive中时。uLineage传播数据新鲜度和质量信息,同时支持高级搜索和图形设置。
虽然范围有限,但对我们的业务具有同等价值,我们还推出了大型Apache Hadoop表的全局索引这是我们大数据基础设施的另一部分。我们的全局索引充当记账组件,显示特定数据块存储在何处的服务,以便它们可以进行更新或显示查询结果。使用Apache HBase(一个非关系分布式数据库)作为我们的全局索引确保了高吞吐量、强一致性和水平可伸缩性。
我们为Apache Hadoop数据湖构建了另一个组件,DBEvents,作为变更数据捕获系统。我们围绕三个原则设计了dbevent:数据新鲜度、数据质量和效率。DBEvents在从MySQL、Apache Cassandra和Schemaless等源摄入数据期间捕获数据,从而更新我们的Hadoop数据湖。该解决方案通过标准化的变更日志管理pb级的数据,确保服务对可用数据有统一的理解。
有效的分析
通过我们的平台或任何其他服务,分析关于拼车、自行车和滑板车出行的数据,既可以排除故障,也可以主动改进。例如,如果数据显示,乘客等待与司机合作伙伴连接的时间比平均水平长,我们可以实时分析这个问题,看看我们的运营团队是否可以提供帮助。我们还可以分析有关我们服务的历史数据,并开发新的功能来改进它们,比如让乘客更容易在拥挤的上客区找到司机伙伴。
我们需要及时和可用的分析,这促使我们构建了一个新的平台,该平台目前支持多个业务关键的仪表板。该平台(其仪表板如图2所示)整合了现有的实时分析系统,包括AresDB而且Apache黑比诺,成为一个统一的自助服务平台,让内部分析用户通过该平台提交查询转眼间,一个开源的分布式SQL查询引擎我们的工程师支持.
考虑到它对SQL查询的支持,新平台还使我们的内部用户在做出关键业务决策时更容易访问数据分析。同样重要的是,它以较低的延迟交付结果,让我们能够快速地对问题采取行动。
建设未来
维护可靠地支持质量和新鲜度的数据基础设施是优步未来的重要组成部分。数据必须尽可能准确和及时,以支持我们平台上的服务。在过去的几年里,我们努力建设基础设施,以适应我们的全球24/7运营。我们当前工作的一个关键部分是使我们的基础设施高效运行,并支持我们所有的内部用户。
我们的工程师在2019年取得了巨大进步,比本文中记录的要多很多。我们期待在新的一年里进一步优化我们的数据基础设施,让Uber的平台服务运行得比以往任何时候都更好。
有兴趣为优步数据平台在2020年及以后的增长做出贡献吗?申请一个角色在我们的数据团队中!






