[HUDI-1393] Add compaction action in archive command (#2246)
This commit is contained in:
@@ -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[]{};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user