[HUDI-1646] Provide mechanism to read uncommitted data through InputFormat (#2611)
This commit is contained in:
@@ -157,6 +157,13 @@ public class HoodieDefaultTimeline implements HoodieTimeline {
|
||||
details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HoodieDefaultTimeline findInstantsBeforeOrEquals(String instantTime) {
|
||||
return new HoodieDefaultTimeline(instants.stream()
|
||||
.filter(s -> HoodieTimeline.compareTimestamps(s.getTimestamp(), LESSER_THAN_OR_EQUALS, instantTime)),
|
||||
details);
|
||||
}
|
||||
|
||||
@Override
|
||||
public HoodieTimeline filter(Predicate<HoodieInstant> filter) {
|
||||
return new HoodieDefaultTimeline(instants.stream().filter(filter), details);
|
||||
|
||||
@@ -176,6 +176,11 @@ public interface HoodieTimeline extends Serializable {
|
||||
*/
|
||||
HoodieTimeline findInstantsBefore(String instantTime);
|
||||
|
||||
/**
|
||||
* Create new timeline with all instants before or equals specified time.
|
||||
*/
|
||||
HoodieTimeline findInstantsBeforeOrEquals(String instantTime);
|
||||
|
||||
/**
|
||||
* Custom Filter of Instants.
|
||||
*/
|
||||
|
||||
@@ -169,14 +169,21 @@ public class FileSystemViewManager {
|
||||
|
||||
public static HoodieTableFileSystemView createInMemoryFileSystemView(HoodieEngineContext engineContext, HoodieTableMetaClient metaClient,
|
||||
HoodieMetadataConfig metadataConfig) {
|
||||
|
||||
return createInMemoryFileSystemViewWithTimeline(engineContext, metaClient, metadataConfig,
|
||||
metaClient.getActiveTimeline().getCommitsTimeline().filterCompletedInstants());
|
||||
|
||||
}
|
||||
|
||||
public static HoodieTableFileSystemView createInMemoryFileSystemViewWithTimeline(HoodieEngineContext engineContext,
|
||||
HoodieTableMetaClient metaClient,
|
||||
HoodieMetadataConfig metadataConfig,
|
||||
HoodieTimeline timeline) {
|
||||
LOG.info("Creating InMemory based view for basePath " + metaClient.getBasePath());
|
||||
if (metadataConfig.useFileListingMetadata()) {
|
||||
return new HoodieMetadataFileSystemView(engineContext, metaClient,
|
||||
metaClient.getActiveTimeline().getCommitsTimeline().filterCompletedInstants(),
|
||||
metadataConfig);
|
||||
return new HoodieMetadataFileSystemView(engineContext, metaClient, timeline, metadataConfig);
|
||||
}
|
||||
return new HoodieTableFileSystemView(metaClient,
|
||||
metaClient.getActiveTimeline().getCommitsTimeline().filterCompletedInstants());
|
||||
return new HoodieTableFileSystemView(metaClient, timeline);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user