最近,Apache 软件基金会宣布 Apache Hudi 1.0 正式发布。这是一个支持近实时分析的事务型数据湖平台,最初于 2017 年推出。Apache Hudi 提供了一种做过专门优化的开放式表格式,可实现增量数据管道的高效写入,提供可靠的查询性能。
最初,Hudi 是作为 Apache Hadoop 上的增量处理框架在 Uber 开发的,并于 2019 年提交给 Apache 软件基金会,旨在弥合类似数据库的功能与开放的数据湖架构之间的差距。Hudi 的主要优势在于能够同时支持近实时查询和批量查询。
最新版本引入的新特性旨在将数据湖转化为项目社区所认为的完备的 “数据湖管理系统”(DLMS)。Uber Hudi 项目创建者、Onehouse 首席执行官 Vinoth Chandar 写道:
Hudi 的亮点在于提供了高性能的开放式表格格式以及全面的开源软件栈,可对数据湖进行摄取、存储、优化和有效的自管理。在 Hudi 所处的大型供应商生态系统中,开放格式和开放软件之间的区别经常被忽略。尽管如此,对于 Hudi 的用户来说,避免 与任何特定的数据供应商的计算锁定仍然是一个重要的考虑因素。
Hudi 1.0 (遵循 Apache 2.0 许可)引入了新的二级索引系统,旨在提高查询性能并降低数据扫描成本。现在,用户可以在二级列上创建基于 SQL 的索引,从而大大加快查询执行速度。该版本还包括基于表达式的索引,和 PostgreSQL 中的一项功能类似,它取代了传统的分区策略,使数据组织更加灵活高效。去年,当预览版发布时,Snyk 首席软件工程师 Boris Litvak 曾经写道:
在对象存储的三大 ACID 存储格式中,Apache Hudi 1.0(测试版)是第一个引入数据 “函数索引 ”的格式。在 SQL DB 术语中,我们通常称之为 “二级索引”。Delta.io 和 Apache Iceberg 何时会跟进?
图片来源:Apache Hudi 博客
该版本引入了对部分更新的支持,允许对特定字段而不是整行进行更新,从而提高了存储和计算效率。此外,非阻塞并发控制使多个流作业可以写入同一个数据集,而且不会造成瓶颈或故障。在谈到数据库架构时,Chandar 补充道:
至于完备的 DLMS 功能,Hudi 1.0 可以通过 Apache Spark 提供最接近的体验。用户可以部署安装了 Hudi 1.0 的 Spark 服务器(或 Spark Connect),提交 SQL/ 任务,通过 SQL 命令协调表服务,尽情使用二级索引功能,从而像 DBMS 一样加快查询速度。
Hudi 1.0 增强了存储引擎,包括采用日志结构合并(LSM)树来实现高效的时间线管理。这样就可以支持长期数据保留,并确保高性能查询规划,即使是包含数十亿条记录的数据集也不例外。Onehouse 和 Apache Hudi PMC 软件工程师 Bhavani Sudha Saktheeswaran 评论 说:
无论是要构建开放式数据平台,将数据流导入数据湖仓,并摒弃数据仓库,还是要优化高性能查询,Hudi 1.0.0 都能让你比以往更轻松地使用数据湖仓。
在旧金山 QCon 大会上,Saktheeswaran 和 Uber 软件工程师 Saketh Chintapalli 发表了关于使用 Apache Hudi 进行增量数据处理的演讲。会议录音可从 InfoQ 上获取。
原文链接:
https://www.infoq.com/news/2025/01/apache-hudi/
声明:本文为 InfoQ 翻译,未经许可禁止转载。