源码阅读(数据写入)
HoodieSparkSqlWriter.write(){
// 数据写入
checkWriteStatus(){
// 提交数据
client.commit(commitTime, writeStatuses)
AbstractHoodieWriteClient.commit(){
// 提交状态
commitStats(instantTime, stats, Option<Map<String, String>> ){
// 保存完成
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<HoodieCleanerPlan> cleanerPlanOpt = requestClean(instantTime);
// 清理
runClean(table, HoodieTimeline.getCleanRequestedInstant(instantTime), cleanerPlan);
}
关于大数据方面技术问题可以咨询,替你解决你的苦恼。参考WX:hainanzhongjian