Uber 大规模运行 Apache Pinot实践.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Uber 大规模运转 Apache Pinot实践 Uber 有一个简单的“市场”,由乘客、司机、食客、餐厅等组成。在全球范围内运营该市场需要实时的情报和决策。例如,识别延迟的 Uber Eats 订单或放弃的购物车有助于我们的社区运营团队实行订正措施。对于日常运营、大事分类和财务情报来说,拥有一个包含不同大事的实时仪表板是至关重要的,这些大事包括消费者需求、司机可用性或城市中发生的行程等等。 在过去的几年里,我们已经建立了一个自主服务平台来支持这样的用例,以及 Uber 不同部门的很多其他用例。该平台的核心构件是 Apache Pinot,这是一个分布式的在线分析处理(OnLine Analytical Processing,OLAP)系统,该系统用于对 TB 级数据执行低延迟的分析查询。在本文中,我们引见了这一平台的细节,以及它如何融入 Uber 的生态系统。我们重点引见了 Pinot 在 Uber 内部的演化,以及我们如何从少数用例扩展到多集群,全自动部署,为数百个用例供应支持,以毫秒级的延迟查询 TB 级规模的数据。 用例概述 上图描述了实时分析用例的典型需求。Uber 内部的不同用例可以分为以下几个大类: 仪表板 分析应用程序 近实时探究 仪表板 Uber 的很多工程团队使用 Ponot 为各自的产品构建定制的仪表板。Uber Eats Restaurant Manager (餐厅经理)就是其中的一个例子: 这个仪表板可以让餐厅老板从 Uber Eats 订单中获得有关客户满足度、抢手菜单、销售和服务质量分析的信息。Pinot 支持以不同的方式对原始数据进行切片和分片,并支持低延迟查询,从而为餐厅老板带来丰富的体验。 类似地,我们的城市运营团队已经构建了定制的仪表板,利用 Pinot 的实时和历史数据相结合的力量,猎取供需、特别大事(例如,最近五分钟内延迟的订单)、实时订单等方面的目标。这是我们日常运营的重要工具,有助于及早发觉问题。 分析应用程序 另一类用例源于作为很多后端服务的一部分执行分析查询的需求。这类用例的次要区分要求是数据的新颖度和查询延迟,他们本质上需要是实时性的。例如,实时识别 Uber 乘客分组的地理热点对于良好的用户体验至关重要。同样,马上识别出司机取消或遗弃的 Uber Eats 购物车,可以快速实行订正措施(以消息 / 嘉奖的方式)。 近实时探究 数据探究通常是在传统的批处理和仓库系统(如 Hadoop)上完成的。但是,有很多情况下,用户需要能够对实时数据执行简单的 SQL 查询。例如,工程师经常需要通过加入微服务记录的各种大事来对大事进行分流。在其他情况下,实时时间可能需要与 Hive 中的批数据集连接。在 Uber 内部,我们在 Apache Pinot 之上供应了一个丰富的(Presto)SQL 接口,以开启对底层实时数据集上的探究。此外,该接口与我们全部的内部商业智能工具(如 Dashbuilder)无缝对接,这对我们全部的客户都格外有用。例如,下面是一张简约的 Sunburst 图表,显示了 Uber Eats 在五分钟内的订单明细,针对特定地区按工作形态分组。这是使用 Dashbuilder 通过在 Pinot 之上运转 Presto 查询在几秒钟之内构建的。 今日,生产中数百个关键业务用例由 Apache Pinot 供应支持。在过去的几年里,我们已经从一个 10 节点的小型集群进展到每个区域数百个节点。由 Pinot 管理的总数据占用空间已经从晚期的几十 GB 增长到今日的几十 TB。同样地,每个区域的每秒查询量也添加了 30 倍(今日生产中的每秒查询量高达数千次)。 在下面的章节中,我们将具体引见我们的平台,争辩 Uber 对 Apache Pinot 做出的独特贡献,并具体阐述在大规模运营该平台的过程中所学到的阅历教训。 Uber 的 Pinot 平台 为了服务这样的用例,我们围绕 Apache Pinot 构建了一个自助服务平台,如下图所示: 该架构的不同组件可以分为三个阶段: 猎取 存储 查询 猎取 这也成为数据预备阶段,担任使数据可供 Pinot 使用。一般来说,Pinot 可从流数据源(例如 Apache Kafka)以及批处理 / 脱机数据源(例如 Apache Hadoop)中猎取数据(请参阅 Pinot 文档)。在 Uber 内部中,我们添加了更多的功能,如下所述: 实时源:数以千计的微服务不断地将它们的日志和大事写入 Apache Kafaka (发布 - 订阅系统)中的主题。Pinot 可以直接使用这些主题中的很多内容,以使数据可用于实时查询。例如,跨不同维度(如时间、位置或产品线)的用户需求目标可以很简约地从用户关注的 Kafka 流中猎取的 Pinot

文档评论(0)

bob157641554 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档