当前位置:   article > 正文

Hudi extraMetadata 研究总结

Hudi extraMetadata 研究总结

前言

研究总结 Hudi extraMetadata ,记录研究过程。主要目的是通过 extraMetadata 保存 source 表的 commitTime (checkpoint), 来实现增量读Hudi表写Hudi表时,保存增量读状态的事务性,实现类似于流任务中的 exactly-once

背景需求

有个需求:增量读Hudi表关联其他Hudi表然后做一些复杂的业务处理逻辑,然后将结果表保存到目标Hudi表中

然后就有问题:如何保证保存目标Hudi表和保存 endCommiTime 是事务的。具体如下
1、Spark支持增量读Hudi表,需要传入起(始) commitTime。
2、上一批数据处理完成后应该保存上次增量读的的 endCommiTime,作为下一批增量读的的 beginCommitTime
3、可以选择将上一批的 endCommiTime 保存到 HDFS 或者数据库表中,但是不能保证事务。(并且还需要借助外部表或者存储目录,如果能通过Hudi本身解决,就比较完美了)
4、也就是可能存在保存目标Hudi表成功,但是保存 endCommiTime 失败的情况

这时就想到了 DeltaStreamer 中是通过设置 checkpoint 来实现的,具体是通过将 commitTime 的值保存到目标表 .commit 元数据文件中(extraMetadata->deltastreamer.checkpoi

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/744026
推荐阅读
相关标签
  

闽ICP备14008679号