This is an automated email from the ASF dual-hosted git repository. yihua pushed a commit to branch branch-0.x in repository https://gitbox.apache.org/repos/asf/hudi.git
commit 84a98695ea602610b5092bd91f8a37f1044f990a Author: Y Ethan Guo <[email protected]> AuthorDate: Wed Apr 24 14:41:57 2024 -0700 [MINOR] Remove unused util methods in LogReaderUtils (#11086) --- .../hudi/common/table/log/LogReaderUtils.java | 57 ---------------------- 1 file changed, 57 deletions(-) diff --git a/hudi-common/src/main/java/org/apache/hudi/common/table/log/LogReaderUtils.java b/hudi-common/src/main/java/org/apache/hudi/common/table/log/LogReaderUtils.java index 8d3c93cc7cf..46adff40a0c 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/table/log/LogReaderUtils.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/table/log/LogReaderUtils.java @@ -18,21 +18,9 @@ package org.apache.hudi.common.table.log; -import org.apache.hudi.common.model.HoodieLogFile; -import org.apache.hudi.common.table.HoodieTableMetaClient; -import org.apache.hudi.common.table.log.HoodieLogFormat.Reader; -import org.apache.hudi.common.table.log.block.HoodieDataBlock; -import org.apache.hudi.common.table.log.block.HoodieLogBlock; import org.apache.hudi.common.table.log.block.HoodieLogBlock.HeaderMetadataType; -import org.apache.hudi.common.table.timeline.HoodieActiveTimeline; -import org.apache.hudi.common.table.timeline.HoodieTimeline; import org.apache.hudi.common.util.Base64CodecUtil; -import org.apache.hudi.common.util.collection.Pair; -import org.apache.hudi.storage.HoodieStorage; -import org.apache.hudi.storage.HoodieStorageUtils; -import org.apache.avro.Schema; -import org.apache.hadoop.conf.Configuration; import org.roaringbitmap.longlong.Roaring64NavigableMap; import java.io.ByteArrayInputStream; @@ -41,56 +29,11 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; /** * Utils class for performing various log file reading operations. */ public class LogReaderUtils { - - private static Schema readSchemaFromLogFileInReverse(HoodieStorage storage, HoodieActiveTimeline activeTimeline, HoodieLogFile hoodieLogFile) - throws IOException { - // set length for the HoodieLogFile as it will be leveraged by HoodieLogFormat.Reader with reverseReading enabled - Schema writerSchema = null; - try (Reader reader = HoodieLogFormat.newReader(storage, hoodieLogFile, null, true)) { - HoodieTimeline completedTimeline = activeTimeline.getCommitsTimeline().filterCompletedInstants(); - while (reader.hasPrev()) { - HoodieLogBlock block = reader.prev(); - if (block instanceof HoodieDataBlock) { - HoodieDataBlock lastBlock = (HoodieDataBlock) block; - if (completedTimeline - .containsOrBeforeTimelineStarts(lastBlock.getLogBlockHeader().get(HeaderMetadataType.INSTANT_TIME))) { - writerSchema = new Schema.Parser().parse(lastBlock.getLogBlockHeader().get(HeaderMetadataType.SCHEMA)); - break; - } - } - } - } - return writerSchema; - } - - public static Schema readLatestSchemaFromLogFiles(String basePath, List<HoodieLogFile> logFiles, Configuration config) - throws IOException { - HoodieTableMetaClient metaClient = HoodieTableMetaClient.builder().setConf(config).setBasePath(basePath).build(); - List<String> deltaPaths = logFiles.stream().sorted(HoodieLogFile.getReverseLogFileComparator()).map(s -> s.getPath().toString()) - .collect(Collectors.toList()); - if (deltaPaths.size() > 0) { - Map<String, HoodieLogFile> deltaFilePathToFileStatus = logFiles.stream().map(entry -> Pair.of(entry.getPath().toString(), entry)) - .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); - for (String logPath : deltaPaths) { - HoodieStorage storage = HoodieStorageUtils.getStorage(logPath, config); - Schema schemaFromLogFile = - readSchemaFromLogFileInReverse(storage, metaClient.getActiveTimeline(), - deltaFilePathToFileStatus.get(logPath)); - if (schemaFromLogFile != null) { - return schemaFromLogFile; - } - } - } - return null; - } - /** * Encodes a list of record positions in long type. * <p>
