1. hudi清理策略
代碼位置
org.apache.hudi.table.action.clean.CleanPlanner getDeletePaths(String partitionPath)
1.1 策略一:KEEP_LATEST_FILE_VERSIONS
相關(guān)參數(shù):hoodie.cleaner.fileversions.retained=3 默認(rèn)值
每個(gè)file group保留3個(gè)版本。如果不需要多個(gè)版本,保留一個(gè)就行。
1.2.策略二: KEEP_LATEST_COMMITS (默認(rèn)策略)
相關(guān)參數(shù):hoodie.cleaner.commits.retained=10 默認(rèn)值
每個(gè)file group的文件,除最新的一個(gè)文件外,額外保留最近10次commit命中過(guò)的文件的版本。
1.3.KEEP_LATEST_COMMITS 策略注意事項(xiàng):
- 使用KEEP_LATEST_COMMITS 策略,如果某個(gè)parquet文件每次commit都命中,則會(huì)有11個(gè)文件版本
- 不同分區(qū)的文件,共享commit版本數(shù)。所以歷史分區(qū)的文件,如果在最近10次commit都沒(méi)有文件命中,則只會(huì)保留最新的一個(gè)版本
- 如果不使用增量查詢,則應(yīng)減少hoodie.cleaner.commits.retained的值,節(jié)省hdfs空間