public interface IndexerMetadataStorageCoordinator
| Modifier and Type | Method and Description |
|---|---|
SegmentIdWithShardSpec |
allocatePendingSegment(String dataSource,
String sequenceName,
String previousSegmentId,
org.joda.time.Interval interval,
PartialShardSpec partialShardSpec,
String maxVersion,
boolean skipSegmentLineageCheck)
Allocate a new pending segment in the pending segments table.
|
Set<DataSegment> |
announceHistoricalSegments(Set<DataSegment> segments)
Attempts to insert a set of segments to the metadata storage.
|
SegmentPublishResult |
announceHistoricalSegments(Set<DataSegment> segments,
DataSourceMetadata startMetadata,
DataSourceMetadata endMetadata)
Attempts to insert a set of segments to the metadata storage.
|
SegmentPublishResult |
commitMetadataOnly(String dataSource,
DataSourceMetadata startMetadata,
DataSourceMetadata endMetadata)
Similar to
announceHistoricalSegments(Set), but meant for streaming ingestion tasks for handling
the case where the task ingested no records and created no segments, but still needs to update the metadata
with the progress that the task made. |
boolean |
deleteDataSourceMetadata(String dataSource)
Removes entry for 'dataSource' from the dataSource metadata table.
|
int |
deletePendingSegments(String dataSource)
Delete all pending segments belonging to the given data source from the pending segments table.
|
int |
deletePendingSegmentsCreatedInInterval(String dataSource,
org.joda.time.Interval deleteInterval)
Delete pending segments created in the given interval belonging to the given data source from the pending segments
table.
|
void |
deleteSegments(Set<DataSegment> segments) |
boolean |
insertDataSourceMetadata(String dataSource,
DataSourceMetadata dataSourceMetadata)
Insert dataSourceMetadata entry for 'dataSource'.
|
boolean |
resetDataSourceMetadata(String dataSource,
DataSourceMetadata dataSourceMetadata)
Resets dataSourceMetadata entry for 'dataSource' to the one supplied.
|
Collection<DataSegment> |
retrieveAllUsedSegments(String dataSource,
Segments visibility)
Retrieve all published used segments in the data source from the metadata store.
|
DataSourceMetadata |
retrieveDataSourceMetadata(String dataSource)
Retrieves data source's metadata from the metadata store.
|
List<DataSegment> |
retrieveUnusedSegmentsForInterval(String dataSource,
org.joda.time.Interval interval)
Retrieve all published segments which include ONLY data within the given interval and are marked as unused from the
metadata store.
|
Collection<Pair<DataSegment,String>> |
retrieveUsedSegmentsAndCreatedDates(String dataSource)
Retrieve all published segments which are marked as used and the created_date of these segments belonging to the
given data source from the metadata store.
|
default Collection<DataSegment> |
retrieveUsedSegmentsForInterval(String dataSource,
org.joda.time.Interval interval,
Segments visibility)
Retrieve all published segments which may include any data in the interval and are marked as used from the
metadata store.
|
Collection<DataSegment> |
retrieveUsedSegmentsForIntervals(String dataSource,
List<org.joda.time.Interval> intervals,
Segments visibility)
Retrieve all published segments which may include any data in the given intervals and are marked as used from the
metadata store.
|
void |
updateSegmentMetadata(Set<DataSegment> segments) |
default Collection<DataSegment> retrieveUsedSegmentsForInterval(String dataSource, org.joda.time.Interval interval, Segments visibility)
dataSource - The data source to queryinterval - The interval for which all applicable and used segmented are requested.visibility - Whether only visible or visible as well as overshadowed segments should be returned. The
visibility is considered within the specified interval: that is, a segment which is visible
outside of the specified interval, but overshadowed within the specified interval will not be
returned if Segments.ONLY_VISIBLE is passed. See more precise description in the doc for
Segments.Collection<DataSegment> retrieveAllUsedSegments(String dataSource, Segments visibility)
dataSource - The data source to querysimilar to this method but also accepts data
interval.Collection<Pair<DataSegment,String>> retrieveUsedSegmentsAndCreatedDates(String dataSource)
Segments "visibility"
parameter. The returned collection may include overshadowed segments and their created_dates, as if Segments.INCLUDING_OVERSHADOWED was passed. It's the responsibility of the caller to filter out overshadowed ones
if needed.dataSource - The data source to queryCollection<DataSegment> retrieveUsedSegmentsForIntervals(String dataSource, List<org.joda.time.Interval> intervals, Segments visibility)
dataSource - The data source to queryintervals - The intervals for which all applicable and used segments are requested.visibility - Whether only visible or visible as well as overshadowed segments should be returned. The
visibility is considered within the specified intervals: that is, a segment which is visible
outside of the specified intervals, but overshadowed on the specified intervals will not be
returned if Segments.ONLY_VISIBLE is passed. See more precise description in the doc for
Segments.List<DataSegment> retrieveUnusedSegmentsForInterval(String dataSource, org.joda.time.Interval interval)
dataSource - The data source the segments belong tointerval - Filter the data segments to ones that include data in this interval exclusively.Set<DataSegment> announceHistoricalSegments(Set<DataSegment> segments) throws IOException
segments - set of segments to addIOExceptionSegmentIdWithShardSpec allocatePendingSegment(String dataSource, String sequenceName, @Nullable String previousSegmentId, org.joda.time.Interval interval, PartialShardSpec partialShardSpec, String maxVersion, boolean skipSegmentLineageCheck)
dataSource - dataSource for which to allocate a segmentsequenceName - name of the group of ingestion tasks producing a segment seriespreviousSegmentId - previous segment in the series; may be null or empty, meaning this is the first
segmentinterval - interval for which to allocate a segmentpartialShardSpec - partialShardSpec containing all necessary information to create a shardSpec for the
new segmentIdmaxVersion - use this version if we have no better version to use. The returned segment
identifier may have a version lower than this one, but will not have one higher.skipSegmentLineageCheck - if true, perform lineage validation using previousSegmentId for this sequence.
Should be set to false if replica tasks would index events in same orderint deletePendingSegmentsCreatedInInterval(String dataSource, org.joda.time.Interval deleteInterval)
created_date field of the pending segments table is checked to find segments to be deleted.
Note that the semantic of the interval (for `created_date`s) is different from the semantic of the interval
parameters in some other methods in this class, such as retrieveUsedSegmentsForInterval(java.lang.String, org.joda.time.Interval, org.apache.druid.indexing.overlord.Segments) (where the
interval is about the time column value in rows belonging to the segment).dataSource - dataSourcedeleteInterval - interval to check the created_date of pendingSegmentsint deletePendingSegments(String dataSource)
similar to this method but also accepts interval for
segments' `created_date`sSegmentPublishResult announceHistoricalSegments(Set<DataSegment> segments, @Nullable DataSourceMetadata startMetadata, @Nullable DataSourceMetadata endMetadata) throws IOException
segments - set of segments to add, must all be from the same dataSourcestartMetadata - dataSource metadata pre-insert must match this startMetadata according to
DataSourceMetadata.matches(DataSourceMetadata). If null, this insert will
not involve a metadata transactionendMetadata - dataSource metadata post-insert will have this endMetadata merged in with
DataSourceMetadata.plus(DataSourceMetadata). If null, this insert will not
involve a metadata transactionIllegalArgumentException - if startMetadata and endMetadata are not either both null or both non-nullRuntimeException - if the state of metadata storage after this call is unknownIOException@Nullable DataSourceMetadata retrieveDataSourceMetadata(String dataSource)
boolean deleteDataSourceMetadata(String dataSource)
dataSource - identifierboolean resetDataSourceMetadata(String dataSource, DataSourceMetadata dataSourceMetadata) throws IOException
dataSource - identifierdataSourceMetadata - value to setIOExceptionboolean insertDataSourceMetadata(String dataSource, DataSourceMetadata dataSourceMetadata)
dataSource - identifierdataSourceMetadata - value to setSegmentPublishResult commitMetadataOnly(String dataSource, DataSourceMetadata startMetadata, DataSourceMetadata endMetadata)
announceHistoricalSegments(Set), but meant for streaming ingestion tasks for handling
the case where the task ingested no records and created no segments, but still needs to update the metadata
with the progress that the task made.
The metadata should undergo the same validation checks as performed by announceHistoricalSegments(java.util.Set<org.apache.druid.timeline.DataSegment>).dataSource - the datasourcestartMetadata - dataSource metadata pre-insert must match this startMetadata according to
DataSourceMetadata.matches(DataSourceMetadata).endMetadata - dataSource metadata post-insert will have this endMetadata merged in with
DataSourceMetadata.plus(DataSourceMetadata).IllegalArgumentException - if either startMetadata and endMetadata are nullRuntimeException - if the state of metadata storage after this call is unknownvoid updateSegmentMetadata(Set<DataSegment> segments)
void deleteSegments(Set<DataSegment> segments)
Copyright © 2011–2020 The Apache Software Foundation. All rights reserved.