Hudi|技术干货 | Uber基于Apache Hudi构建PB级数据湖实践( 三 )


Hudi|技术干货 | Uber基于Apache Hudi构建PB级数据湖实践
本文插图
Hudi团队开发了一种数据压缩策略 , 用于读时合并表 , 以便频繁将最近的分区转化为列式存储 , 减少了查询端的计算成本
有了Hudi , Uber每天向超过150PB数据湖中插入超过5,000亿条记录 , 每天使用30,000多个core , 超过10,000多个表和数千个数据管道 , Hudi每周在Uber的各种服务中提供超过100万个查询 。
5. Apache Hudi经验总结
Uber在2017年开源了Hudi , 为其他人带来了该解决方案的好处 , 该解决方案可大规模提取和管理数据存储 , 从而将流处理引入大数据 。 当Hudi毕业于Apache软件基金会下的顶级项目时 , Uber的大数据团队总结了促使其构建Hudi的各种考虑因素 , 包括:

  • 如何提高数据存储和处理效率?
  • 如何确保数据湖包含高质量的表?
  • 随着业务的增长 , 如何继续大规模有效地提供低延迟的数据?
  • 在分钟级别的场景中 , 我们如何统一服务层?
如果没有良好的标准化和原语 , 数据湖将很快成为无法使用的"数据沼泽" 。 这样的沼泽不仅需要花费大量时间和资源来协调、清理和修复表 , 而且还迫使各个服务所有者构建复杂的算法来进行调整、改组和交易 , 从而给技术栈带来不必要的复杂性 。
如上所述 , Hudi通过无缝地摄取和管理分布式文件系统上的大型分析数据集来帮助用户控制其数据湖 , 从而弥补了这些差距 。 建立数据湖是一个多方面的问题 , 需要在数据标准化、存储技术、文件管理实践 , 数据摄取与数据查询之间折衷性能等方面进行取舍 。 在Uber建立Hudi时与大数据社区的其他成员交谈时 , 了解到这些问题在许多工程组织中普遍存在 。 Uber希望在过去的几年中 , 开源和与Apache社区的合作 , 在Hudi基础上发展可以使其他人在不同行业对大数据运营有更深入的了解 。 在Uber之外 , Apache Hudi已在多家公司用于生产 , 其中包括阿里云 , 腾讯云 , AWS、Udemy等 。
6. 未来计划
Hudi|技术干货 | Uber基于Apache Hudi构建PB级数据湖实践
本文插图
图4. Apache Hudi场景包括数据分析和基础架构运行状况监视

Hudi通过对数据集强制schema , 帮助用户构建更强大、更新鲜的数据湖 , 从而提供高质量的见解 。
在Uber , 拥有全球最大的事务数据湖之一为其提供了各种Apache Hudi用例场景的机会 , 由于以这种规模解决问题并提高效率可能会产生重大影响 , 因此有直接的动机促使Uber更加深入 。 在Uber , 已经使用了先进的Hudi原语 , 如增量拉取来帮助建立链式增量流水线 , 从而减少了作业的计算空间 , 而这些作业本来会执行大型扫描和写入 。 根据特定的用例场景和要求调整读时合并表的压缩策略 。 自从将Hudi捐赠给Apache基金会以来 , 最近几个月 , Uber贡献了一些功能 , 例如嵌入式时间轴服务以实现高效的文件系统访问 , 删除重命名以支持云友好的部署并提高增量拉取性能 。
在接下来的几个月中 , Uber计划为Apache Hudi社区贡献更多新功能 。 其中一些功能可通过优化计算使用量以及改善数据应用程序的性能来帮助降低成本 , 还将更深入地研究如何根据访问模式和数据应用程序需求来改善存储管理和查询性能 。
有关Uber如何计划实现这些目标的更多信息 , 您可以阅读一些RFC , 包括支持列索引和O(1)查询计划的智能元数据 , 将Parquet表高效引导到Hudi , 记录级别索引支持更快速插入 , 这些RFC由Uber的Hudi团队向Apache社区提出 。
【Hudi|技术干货 | Uber基于Apache Hudi构建PB级数据湖实践】随着Apache Hudi毕业成为Apache顶级项目 , Uber很高兴为该项目雄心勃勃的路线图做出贡献 。 Hudi使Uber和其他公司可以使用开放源文件格式 , 在未来证明其数据湖的速度 , 可靠性和交易能力 , 从而消除了许多大数据挑战 , 并构建了丰富而可移植的数据应用程序 。


推荐阅读