回顾 2023:Hudi 的重点新功能一览

简介: 回顾 2023:Hudi 的重点新功能一览

Apache Hudi PMC 全体成员向 Hudi 社区的广大贡献者和用户表示感谢 -- 你们的贡献与支持让 Hudi 的 2023 与众不同。

开发亮点回顾

2023 年是 Hudi 非常高产的一年,有许多重大的进步和创新。这一年有三个主要版本发布:0.13.0[1]0.14.0[2],和开拓性的 1.0.0-beta1[3] 。这些版本共同重塑了 Hudi 数据湖仓上的数据库体验。以下是针对一些关键的功能和提升做的高亮总结。

索引能力提升到了一个新高度

Hudi 新的记录级索引(Record Level Index)[4]是一个颠覆性的功能,它可以大幅提高写入性能。通过存储每个记录的位置,它能在索引查找期间实现快速检索。基准测试表明,与全局简单索引(Global Simple Index)相比,写入延迟降低了 72%。同时,等值匹配查询的延迟也能被显著降低。新的一致性哈希索引(Consistent Hash Index)[5]能动态调整基于哈希的索引桶。通过解决桶索引(Bucket Index)的数据倾斜问题,它可以在写入过程中实现与记录级索引相似的高速查找。函数索引(Functional Index)[6]允许在特定字段上创建和删除索引,为用户提供更多手段来加速查询并调整分区。

写入吞吐量取得了显著提升

开发人员选择 Hudi 的一个常见原因是其业界领先的写入吞吐量和性能[7]。社区在写入性能方面继续进行创新,包括用于 OCC 的早期冲突检测[8]:该检测会在并发写把数据写入磁盘前主动验证冲突,从而避免大量的资源浪费并提高吞吐量。1.0 中引入的非阻塞并发控制(Non-Blocking Concurrency Control)[9]允许冲突在之后的查询中或通过 compaction 解决,进一步优化了并发写的吞吐量。响应了社区的普遍需求,partial update 功能[10]已实现,允许仅更新已更改的字段,对于宽的维度表非常适用。

全新的 API 接口

HoodieRecordMerger[11]是一个全新的抽象,它统一了合并语义并充分利用了引擎原生的记录模型。基准测试显示,upsert 性能提高了大约 10-20%。File Group Reader[12]是一个将文件组访问标准化的 API,可将 MoR 表的读取延迟降低约 20%。启用位置合并和页面跳过在一些场景下甚至可以加速快照查询约 5.7 倍。

易用性得到了密切关注

Table-valued function hudi_table_changes[13]简化了通过 SQL 执行增量查询。自动主键生成[14]允许用户省略记录的主键字段,特别适用于 append-only 表。在许多其他易用性的提升中,有两个值得一提的是添加了 hudi-cli-bundle jar[15]改进过的配置页面[16].

平台化能力得到了大力增强

变更数据捕获(Changed Data Capture)[17]是通过写入器记录额外信息来支持的。变更的数据,包括 beforeafter 快照,可以通过增量查询来获取,从而提供丰富的分析性情报。Metaserver[18]为湖仓项目提供了能够管理海量表格的中心化服务,标志着 Hudi 的平台化功能迈出了一大步。HoodieStreamer[19](以前的HoodieDeltaStreamer)依然是一项非常流行的数据摄取工具:新添加的 Protobuf Kafka 源、GCS 增量源和 Pulsar 源等新的 Source 类进一步扩展了平台集成能力。

生态系统的集成获得了大量拓展

在 AWS 上,Athena 支持了 Hudi 0.12.2 和 Hudi 元数据表[20],整体提升了查询性能。AWS Glue crawlers 新增了 Hudi 支持[21]并使得 Glue 4.0 能兼容 Hudi 0.12.1,AWS EMR 也扩展了支持矩阵[22],涵盖了 Hudi 0.13 和 0.14。GCP 提升了Hudi 与 BigQuery的集成[23]:实现了清单文件的集成以提高性能。Starburst 也添加了 Hudi 连接器[24]。执行引擎的支持也升级到了更新的版本,包括 Spark 3.4 和 3.5 以及 Flink 1.16、1.17 和 1.18。

互操作性至关重要

虽然 Hudi 继续保持着强劲的増势,社区的一些同行们也认为,是时候开始搭建跨越诸如 Delta Lake、Iceberg 等湖仓格式的互操作性的桥梁了。OneTable 最近宣布开源[25],意味着替想要构建数据湖仓架构的开发人员迈出了一大步。这一进展不仅强调了 Hudi 对开放性的承诺,还使得更多用户能够体验到 Hudi 所提供的技术优势。

期待 2024

文件组读取器 API 有望被广泛使用,为众多查询引擎带来所期望的好处。我们预计非阻塞并发控制也将被广泛采用。除此之外,还有更多令人期待的功能,包括无限时间线、二级索引、多表事务以及对非结构化数据的支持。关于最新进展和更多说明,欢迎参考路线图[26]

互动起来

回顾丰富的 2023,Hudi 社区持续发展,欢迎各种形式的参与。想建立联系的同学,欢迎加入 Slack 空间[27]问问题,这里有 Hudi 专家和基于LLM的问答机器人。当然也欢迎通过 Apache Hudi 公众号索取微信和钉钉群。您也可以参与每周问答[28]月同步会[29]。了解最新动态,欢迎关注 Hudi 的 LinkedIn[30]X (Twitter)[31]YouTube[32],还有 Apache Hudi 微信公众号。

如果遇到问题或有功能请求,欢迎提交 GitHub issue[33]JIRA[34]。参与更多深度讨论,订阅(发送空邮件至)开发者邮件列表[35]是个不错的选择。

对于感兴趣参与直接贡献的同学,可以从这个贡献指南[36]开始。无论是贡献代码,分享想法,还是简单地给 GitHub 仓库[37]点个星,我们都很重视。让我们一起继续塑造 Hudi 的未来,在开源社区中推动创新。期待一个更加充满活力的成就的 2024!

相关实践学习
数据库实验室挑战任务-初级任务
本场景介绍如何开通属于你的免费云数据库,在RDS-MySQL中完成对学生成绩的详情查询,执行指定类型SQL。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
目录
相关文章
|
敏捷开发 存储 搜索推荐
《阿里巴巴Java开发手册v1.4.0(详尽版)》更新,新增16条设计规约
阿里巴巴集团推出的《阿里巴巴Java开发手册》是阿里巴巴近万名开发同学集体智慧的结晶,以开发视角为中心,详细列举如何开发更加高效、更加容错、更加有协作性,力求知其然,更知其不然,结合正反例,让Java开发者能够提升协作效率、提高代码质量。
730345 3
|
7天前
|
数据采集 监控 数据管理
《数据治理简易速速上手小册》第2章 数据治理框架的建立(2024 最新版)
《数据治理简易速速上手小册》第2章 数据治理框架的建立(2024 最新版)
26 0
|
1月前
|
运维 监控 流计算
TDengine 3.2.3.0 版本发布,流计算等八大板块功能更新
据了解,3.2.3.0 版本涉及到的更新内容包括流计算、传输压缩、授权机制、监控、数据接入、Explorer、性能优化、运维优化八大模块。
97 2
|
1月前
|
存储 SQL Apache
Apache Hudi 1.x 版本重磅功能展望与讨论
Apache Hudi 1.x 版本重磅功能展望与讨论
37 4
|
2月前
|
API Nacos
【想进大厂还不会阅读源码】ShenYu源码-重构同步数据服务
ShenYu源码阅读📚。我们看下PR的标题和Concersation的头一句,大概意思就是重构注册中心数据同步到ShenYu网关的方式。大家看看重构了有没好处呢?不仅获得了知识,还获得了一次开源贡献,何乐而不为呢
52 3
|
9月前
|
机器学习/深度学习 算法 安全
隐语v0.7版本升级,功能详情一览
隐语v0.7版本升级,功能详情一览
169 0
|
SQL 消息中间件 Kafka
Flink1.7稳定版发布:新增功能为企业生产带来哪些好处
Flink1.7稳定版发布:新增功能为企业生产带来哪些好处
247 0
|
监控 安全 网络协议
架构:第一章:项目架构的演变历史
架构:第一章:项目架构的演变历史
110 0
架构:第一章:项目架构的演变历史
|
SQL 机器学习/深度学习 存储
大数据开发笔记(九):Flink综合学习)(一)
Flink 是一个框架和分布式处理引擎,用于对无界和有界数据流进行有状态计算。并且 Flink 提供了数据分布、容错机制以及资源管理等核心功能。Flink提供了诸多高抽象层的API以便用户编写分布式任务
171 0
大数据开发笔记(九):Flink综合学习)(一)