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
,用户可以基于Zookeeper
和HiveMetastore
来提供锁服务,后续还会考虑提供基于文件的锁服务。
想了解更多并发写入细节,请参考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
源码下载
- 源码下载 : Apache Hudi 0.8.0 Source Release (asc, sha512)
- maven仓库包地址: [地址](