public static void createSavepointFile(String basePath, String commitTime, Configuration configuration) throws IOException { Path commitFile = new Path(basePath + "/" + HoodieTableMetaClient.METAFOLDER_NAME + "/" + HoodieTimeline.makeSavePointFileName(commitTime)); FileSystem fs = FSUtils.getFs(basePath, configuration); FSDataOutputStream os = fs.create(commitFile, true); HoodieCommitMetadata commitMetadata = new HoodieCommitMetadata(); try { // Write empty commit metadata os.writeBytes(new String(commitMetadata.toJsonString().getBytes(StandardCharsets.UTF_8))); } finally { os.close(); } }
/** * Get the filename for this instant */ public String getFileName() { if (HoodieTimeline.COMMIT_ACTION.equals(action)) { return isInflight() ? HoodieTimeline.makeInflightCommitFileName(timestamp) : HoodieTimeline.makeCommitFileName(timestamp); } else if (HoodieTimeline.CLEAN_ACTION.equals(action)) { return isInflight() ? HoodieTimeline.makeInflightCleanerFileName(timestamp) : HoodieTimeline.makeCleanerFileName(timestamp); } else if (HoodieTimeline.ROLLBACK_ACTION.equals(action)) { return isInflight() ? HoodieTimeline.makeInflightRollbackFileName(timestamp) : HoodieTimeline.makeRollbackFileName(timestamp); } else if (HoodieTimeline.SAVEPOINT_ACTION.equals(action)) { return isInflight() ? HoodieTimeline.makeInflightSavePointFileName(timestamp) : HoodieTimeline.makeSavePointFileName(timestamp); } else if (HoodieTimeline.DELTA_COMMIT_ACTION.equals(action)) { return isInflight() ? HoodieTimeline.makeInflightDeltaFileName(timestamp) : HoodieTimeline.makeDeltaFileName(timestamp); } else if (HoodieTimeline.COMPACTION_ACTION.equals(action)) { if (isInflight()) { return HoodieTimeline.makeInflightCompactionFileName(timestamp); } else if (isRequested()) { return HoodieTimeline.makeRequestedCompactionFileName(timestamp); } else { return HoodieTimeline.makeCommitFileName(timestamp); } } throw new IllegalArgumentException("Cannot get file name for unknown action " + action); }