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]是通过写入器记录额外信息来支持的。变更的数据,包括 before
和 after
快照,可以通过增量查询来获取,从而提供丰富的分析性情报。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!