Package org.apache.druid.timeline
Class DataSegment
- java.lang.Object
-
- org.apache.druid.timeline.DataSegment
-
- All Implemented Interfaces:
Comparable<DataSegment>
,Overshadowable<DataSegment>
public class DataSegment extends Object implements Comparable<DataSegment>, Overshadowable<DataSegment>
Metadata of Druid's data segment. An immutable object. DataSegment's equality (equals(java.lang.Object)
/hashCode()
) andcompareTo(org.apache.druid.timeline.DataSegment)
methods consider only theSegmentId
of the segment.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
DataSegment.Builder
static class
DataSegment.PruneSpecsHolder
This class is needed for optional injection of pruneLoadSpec and pruneLastCompactionState, see github.com/google/guice/wiki/FrequentlyAskedQuestions#how-can-i-inject-optional-parameters-into-a-constructor
-
Field Summary
Fields Modifier and Type Field Description static String
TOMBSTONE_LOADSPEC_TYPE
-
Constructor Summary
Constructors Constructor Description DataSegment(String dataSource, org.joda.time.Interval interval, String version, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, Integer binaryVersion, long size)
DataSegment(String dataSource, org.joda.time.Interval interval, String version, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, CompactionState lastCompactionState, Integer binaryVersion, long size)
DataSegment(String dataSource, org.joda.time.Interval interval, String version, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, CompactionState lastCompactionState, Integer binaryVersion, long size, DataSegment.PruneSpecsHolder pruneSpecsHolder)
DataSegment(SegmentId segmentId, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, CompactionState lastCompactionState, Integer binaryVersion, long size)
-
Method Summary
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.druid.timeline.Overshadowable
containsRootPartition
-
-
-
-
Field Detail
-
TOMBSTONE_LOADSPEC_TYPE
public static final String TOMBSTONE_LOADSPEC_TYPE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
DataSegment
public DataSegment(SegmentId segmentId, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, CompactionState lastCompactionState, Integer binaryVersion, long size)
-
DataSegment
public DataSegment(String dataSource, org.joda.time.Interval interval, String version, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, Integer binaryVersion, long size)
-
DataSegment
public DataSegment(String dataSource, org.joda.time.Interval interval, String version, Map<String,Object> loadSpec, List<String> dimensions, List<String> metrics, ShardSpec shardSpec, @Nullable CompactionState lastCompactionState, Integer binaryVersion, long size)
-
DataSegment
public DataSegment(String dataSource, org.joda.time.Interval interval, String version, @Nullable Map<String,Object> loadSpec, @Nullable List<String> dimensions, @Nullable List<String> metrics, @Nullable ShardSpec shardSpec, @Nullable CompactionState lastCompactionState, Integer binaryVersion, long size, DataSegment.PruneSpecsHolder pruneSpecsHolder)
-
-
Method Detail
-
getDataSource
public String getDataSource()
Get dataSource- Returns:
- the dataSource
-
getInterval
public org.joda.time.Interval getInterval()
-
getVersion
public String getVersion()
- Specified by:
getVersion
in interfaceOvershadowable<DataSegment>
-
getShardSpec
public ShardSpec getShardSpec()
-
getLastCompactionState
@Nullable public CompactionState getLastCompactionState()
-
getBinaryVersion
public Integer getBinaryVersion()
-
getSize
public long getSize()
-
getId
public SegmentId getId()
-
isTombstone
public boolean isTombstone()
-
overshadows
public boolean overshadows(DataSegment other)
Description copied from interface:Overshadowable
Returns true if this overshadowable overshadows the other.- Specified by:
overshadows
in interfaceOvershadowable<DataSegment>
-
getStartRootPartitionId
public int getStartRootPartitionId()
Description copied from interface:Overshadowable
All overshadowables have root partition range. First-generation overshadowables have (partitionId, partitionId + 1) as their root partition range. Non-first-generation overshadowables are the overshadowables that overwrite first or non-first generation overshadowables, and they have the merged root partition range of all overwritten first-generation overshadowables. Note that first-generation overshadowables can be overwritten by a single non-first-generation overshadowable if they have consecutive partitionId. Non-first-generation overshadowables can be overwritten by another if their root partition ranges are consecutive.- Specified by:
getStartRootPartitionId
in interfaceOvershadowable<DataSegment>
-
getEndRootPartitionId
public int getEndRootPartitionId()
Description copied from interface:Overshadowable
See doc ofOvershadowable.getStartRootPartitionId()
.- Specified by:
getEndRootPartitionId
in interfaceOvershadowable<DataSegment>
-
getMinorVersion
public short getMinorVersion()
- Specified by:
getMinorVersion
in interfaceOvershadowable<DataSegment>
-
getAtomicUpdateGroupSize
public short getAtomicUpdateGroupSize()
Description copied from interface:Overshadowable
Return the size of atomicUpdateGroup. An atomicUpdateGroup is a set of segments which should be updated all together atomically inVersionedIntervalTimeline
.- Specified by:
getAtomicUpdateGroupSize
in interfaceOvershadowable<DataSegment>
-
toDescriptor
public SegmentDescriptor toDescriptor()
-
withLoadSpec
public DataSegment withLoadSpec(Map<String,Object> loadSpec)
-
withDimensions
public DataSegment withDimensions(List<String> dimensions)
-
withMetrics
public DataSegment withMetrics(List<String> metrics)
-
withShardSpec
public DataSegment withShardSpec(ShardSpec newSpec)
-
withSize
public DataSegment withSize(long size)
-
withVersion
public DataSegment withVersion(String version)
-
withBinaryVersion
public DataSegment withBinaryVersion(int binaryVersion)
-
withLastCompactionState
public DataSegment withLastCompactionState(CompactionState compactionState)
-
compareTo
public int compareTo(DataSegment dataSegment)
- Specified by:
compareTo
in interfaceComparable<DataSegment>
-
builder
public static DataSegment.Builder builder()
-
builder
public static DataSegment.Builder builder(DataSegment segment)
-
hasData
public boolean hasData()
- Specified by:
hasData
in interfaceOvershadowable<DataSegment>
-
-