1
0

[HUDI-1393] Add compaction action in archive command (#2246)

This commit is contained in:
hongdd
2020-11-23 16:53:01 +08:00
committed by GitHub
parent 537502a8ef
commit 971f028aaf

View File

@@ -30,6 +30,7 @@ import org.apache.hudi.common.table.log.HoodieLogFormat;
import org.apache.hudi.common.table.log.HoodieLogFormat.Reader;
import org.apache.hudi.common.table.log.block.HoodieAvroDataBlock;
import org.apache.hudi.common.table.timeline.HoodieTimeline;
import org.apache.hudi.common.util.Option;
import org.apache.avro.generic.GenericRecord;
import org.apache.avro.generic.IndexedRecord;
@@ -172,49 +173,38 @@ public class ArchivedCommitsCommand implements CommandMarker {
return HoodiePrintHelper.print(header, new HashMap<>(), sortByField, descending, limit, headerOnly, allCommits);
}
private Comparable[] readCommit(GenericRecord record, boolean skipMetadata) {
private Comparable[] commitDetail(GenericRecord record, String metadataName,
boolean skipMetadata) {
List<Object> commitDetails = new ArrayList<>();
try {
switch (record.get("actionType").toString()) {
case HoodieTimeline.CLEAN_ACTION: {
commitDetails.add(record.get("commitTime"));
commitDetails.add(record.get("actionType").toString());
if (!skipMetadata) {
commitDetails.add(record.get("hoodieCleanMetadata").toString());
}
break;
}
case HoodieTimeline.COMMIT_ACTION:
case HoodieTimeline.DELTA_COMMIT_ACTION: {
commitDetails.add(record.get("commitTime"));
commitDetails.add(record.get("actionType").toString());
if (!skipMetadata) {
commitDetails.add(record.get("hoodieCommitMetadata").toString());
}
break;
}
case HoodieTimeline.ROLLBACK_ACTION: {
commitDetails.add(record.get("commitTime"));
commitDetails.add(record.get("actionType").toString());
if (!skipMetadata) {
commitDetails.add(record.get("hoodieRollbackMetadata").toString());
}
break;
}
case HoodieTimeline.SAVEPOINT_ACTION: {
commitDetails.add(record.get("commitTime"));
commitDetails.add(record.get("actionType").toString());
if (!skipMetadata) {
commitDetails.add(record.get("hoodieSavePointMetadata").toString());
}
break;
}
default:
return commitDetails.toArray(new Comparable[commitDetails.size()]);
}
} catch (Exception e) {
e.printStackTrace();
commitDetails.add(record.get("commitTime"));
commitDetails.add(record.get("actionType").toString());
if (!skipMetadata) {
commitDetails.add(Option.ofNullable(record.get(metadataName)).orElse("{}").toString());
}
return commitDetails.toArray(new Comparable[commitDetails.size()]);
}
private Comparable[] readCommit(GenericRecord record, boolean skipMetadata) {
try {
switch (record.get("actionType").toString()) {
case HoodieTimeline.CLEAN_ACTION:
return commitDetail(record, "hoodieCleanMetadata", skipMetadata);
case HoodieTimeline.COMMIT_ACTION:
case HoodieTimeline.DELTA_COMMIT_ACTION:
return commitDetail(record, "hoodieCommitMetadata", skipMetadata);
case HoodieTimeline.ROLLBACK_ACTION:
return commitDetail(record, "hoodieRollbackMetadata", skipMetadata);
case HoodieTimeline.SAVEPOINT_ACTION:
return commitDetail(record, "hoodieSavePointMetadata", skipMetadata);
case HoodieTimeline.COMPACTION_ACTION:
return commitDetail(record, "hoodieCompactionMetadata", skipMetadata);
default: {
return new Comparable[]{};
}
}
} catch (Exception e) {
e.printStackTrace();
return new Comparable[]{};
}
}
}