Apache Hudi 0.8.0版本重磅发布

1. 重点特性

1.1 Flink集成

自从Hudi 0.7.0版本支持Flink写入后,Hudi社区又进一步完善了Flink和Hudi的集成。包括重新设计性能更好、扩展性更好、基于Flink状态索引的写入Pipeline;支持Flink写入MOR表;Flink批量读取COW和MOR表;流式读取MOR表;同时支持了Hudi作为Source和Sink的Flink SQL Connector,在Hudi 0.8.0版本发布后,用户可以使用Flink1.11+体验上述所有新特性。

想了解更多Flink写入Hudi的细节,请参考 RFC-24

具体教程可参考:重磅!解锁Apache Flink读写Apache Hudi新姿势

1.2 并发写

单表支持并发写特性在Hudi社区呼声比较高,0.8.0版本Hudi使用乐观锁并发控制支持多客户端并发写同一张表,Hudi支持文件级别乐观锁并发控制,如两个commit(或写入客户端)同时写入一张表,如果两个commit修改的文件不相同,两个客户端的写入都可以成功,现在这个功能标记为experimental,用户可以基于ZookeeperHiveMetastore来提供锁服务,后续还会考虑提供基于文件的锁服务。

想了解更多并发写入细节,请参考RFC-22,想使用并发写功能,可参考并发控制配置。

1.3 写入端改进

  • Flink客户端支持InsertOverwrite
  • Java客户端支持COW表

1.4 查询端改进

  • 支持Spark Structured Streaming流式读取Hudi表
  • 改进Metadata Table的性能
  • 改进Clustering的性能

2. 迁移指南

  • 如果从小于0.5.3版本迁移,请参考每个版本迁移指南
  • 0.6.0版本之后未引入新的表版本
  • HoodieRecordPayload接口被标记为deprecated,重新引入了包含properties参数的接口,欢迎迁移至新接口,老接口将在0.9.0版本移除,请尽快迁移。

3. 总结

0.8.0版本与Flink做了更深度的集成,借助Flink和Hudi构建更实时的数据湖,同时0.8.0版本还支持了Flink和Spark的流批读写,Hudi可作为流批一体的统一数据存储层。

4. 感谢

感谢参与0.8.0版本的所有贡献者,欢迎广大数据湖爱好者加入Apache Hudi社区,欢迎star & fork https://github.com/apache/hudi

源码下载

posted @ 2021-04-13 19:01  leesf  阅读(621)  评论(0编辑  收藏  举报