Hudi 0.6.0 源码阅读(数据写入)

源码阅读(数据写入)

HoodieSparkSqlWriter.write(){
    // 数据写入
    checkWriteStatus(){
        // 提交数据
        client.commit(commitTime, writeStatuses)
        AbstractHoodieWriteClient.commit(){
            // 提交状态
            commitStats(instantTime, stats, Option> ){
            
                // 保存完成
                activeTimeline.saveAsComplete()
                
                // 提交
                postCommit(metadata, commitTime, extraMetadata){
                    // 压缩操作
                    forceCompact(extraMetadata);
                    // 归档
                    archiveLog.archiveIfRequired(jsc);
                    // clean操作
                    clean(instantTime);
                }
                
                // 提交Metrics
                emitCommitMetrics(instantTime, metadata, actionType);
            }
        }
    }
}

源码阅读(数据清理)

CleanActionExecutor.execute(){
    // get clean plan
    Option cleanerPlanOpt = requestClean(instantTime);
    
    // 清理
    runClean(table, HoodieTimeline.getCleanRequestedInstant(instantTime), cleanerPlan);
}

关于大数据方面技术问题可以咨询,替你解决你的苦恼。参考WX:hainanzhongjian

你可能感兴趣的:(Hudi 0.6.0 源码阅读(数据写入))