Class Statistics<T extends java.io.Serializable>
- java.lang.Object
-
- org.apache.iotdb.tsfile.file.metadata.statistics.Statistics<T>
-
- Direct Known Subclasses:
BinaryStatistics,BooleanStatistics,DoubleStatistics,FloatStatistics,IntegerStatistics,LongStatistics,TimeStatistics
public abstract class Statistics<T extends java.io.Serializable> extends java.lang.ObjectThis class is used for recording statistic information of each measurement in a delta file. While writing processing, the processor records the statistics information. Statistics includes maximum, minimum and null value count up to version 0.0.1.
Each data type extends this Statistic as super class.
For the statistics in the Unseq file TimeSeriesMetadata, only firstValue, lastValue, startTime and endTime can be used.
-
-
Field Summary
Fields Modifier and Type Field Description protected booleanisEmptyisEmpty being false means this statistic has been initialized and the max and min is not null.
-
Constructor Summary
Constructors Constructor Description Statistics()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract longcalculateRamSize()booleancontainedByTimeFilter(Filter timeFilter)abstract voiddeserialize(java.io.InputStream inputStream)deserialize data from the inputStream.static Statistics<? extends java.io.Serializable>deserialize(java.io.InputStream inputStream, TSDataType dataType)abstract voiddeserialize(java.nio.ByteBuffer byteBuffer)static Statistics<? extends java.io.Serializable>deserialize(java.nio.ByteBuffer buffer, TSDataType dataType)booleanequals(java.lang.Object o)longgetCount()longgetEndTime()abstract TgetFirstValue()abstract TgetLastValue()abstract TgetMaxValue()abstract TgetMinValue()intgetSerializedSize()static intgetSizeByType(TSDataType type)longgetStartTime()static Statistics<? extends java.io.Serializable>getStatsByType(TSDataType type)static method providing statistic instance for respective data type.abstract intgetStatsSize()abstract doublegetSumDoubleValue()abstract longgetSumLongValue()abstract TSDataTypegetType()inthashCode()booleanhasNullValue(long timeRowCount)booleanisEmpty()voidmergeStatistics(Statistics<? extends java.io.Serializable> stats)merge parameter to this statistic.protected abstract voidmergeStatisticsValue(Statistics<T> stats)intserialize(java.io.OutputStream outputStream)voidsetCount(int count)voidsetEmpty(boolean empty)voidsetEndTime(long endTime)voidsetStartTime(long startTime)java.lang.StringtoString()voidupdate(long time)voidupdate(long[] time, boolean[] values, int batchSize)voidupdate(long[] time, double[] values, int batchSize)voidupdate(long[] time, float[] values, int batchSize)voidupdate(long[] time, int batchSize)voidupdate(long[] time, int[] values, int batchSize)voidupdate(long[] time, int batchSize, int arrayOffset)voidupdate(long[] time, long[] values, int batchSize)voidupdate(long[] time, Binary[] values, int batchSize)voidupdate(long time, boolean value)voidupdate(long time, double value)voidupdate(long time, float value)voidupdate(long time, int value)voidupdate(long time, long value)voidupdate(long time, Binary value)voidupdateStats(long min, long max)This method with two parameters is only used byunsequencewhich updates/inserts/deletes timestamp.
-
-
-
Method Detail
-
getStatsByType
public static Statistics<? extends java.io.Serializable> getStatsByType(TSDataType type)
static method providing statistic instance for respective data type.- Parameters:
type- - data type- Returns:
- Statistics
- Throws:
UnknownColumnTypeException- if the type is unknown
-
getSizeByType
public static int getSizeByType(TSDataType type)
-
getType
public abstract TSDataType getType()
-
getSerializedSize
public int getSerializedSize()
-
getStatsSize
public abstract int getStatsSize()
-
serialize
public int serialize(java.io.OutputStream outputStream) throws java.io.IOException- Throws:
java.io.IOException
-
deserialize
public abstract void deserialize(java.io.InputStream inputStream) throws java.io.IOExceptiondeserialize data from the inputStream.- Parameters:
inputStream- input stream- Throws:
java.io.IOException- exception when operating stream
-
deserialize
public abstract void deserialize(java.nio.ByteBuffer byteBuffer)
-
deserialize
public static Statistics<? extends java.io.Serializable> deserialize(java.io.InputStream inputStream, TSDataType dataType) throws java.io.IOException
- Throws:
java.io.IOException
-
deserialize
public static Statistics<? extends java.io.Serializable> deserialize(java.nio.ByteBuffer buffer, TSDataType dataType)
-
getMinValue
public abstract T getMinValue()
-
getMaxValue
public abstract T getMaxValue()
-
getFirstValue
public abstract T getFirstValue()
-
getLastValue
public abstract T getLastValue()
-
getSumDoubleValue
public abstract double getSumDoubleValue()
-
getSumLongValue
public abstract long getSumLongValue()
-
mergeStatistics
public void mergeStatistics(Statistics<? extends java.io.Serializable> stats)
merge parameter to this statistic.- Throws:
StatisticsClassException- cannot merge statistics
-
update
public void update(long time, boolean value)
-
update
public void update(long time, int value)
-
update
public void update(long time, long value)
-
update
public void update(long time, float value)
-
update
public void update(long time, double value)
-
update
public void update(long time, Binary value)
-
update
public void update(long time)
-
update
public void update(long[] time, boolean[] values, int batchSize)
-
update
public void update(long[] time, int[] values, int batchSize)
-
update
public void update(long[] time, long[] values, int batchSize)
-
update
public void update(long[] time, float[] values, int batchSize)
-
update
public void update(long[] time, double[] values, int batchSize)
-
update
public void update(long[] time, Binary[] values, int batchSize)
-
update
public void update(long[] time, int batchSize)
-
update
public void update(long[] time, int batchSize, int arrayOffset)
-
mergeStatisticsValue
protected abstract void mergeStatisticsValue(Statistics<T> stats)
-
isEmpty
public boolean isEmpty()
-
setEmpty
public void setEmpty(boolean empty)
-
updateStats
public void updateStats(long min, long max)This method with two parameters is only used byunsequencewhich updates/inserts/deletes timestamp.- Parameters:
min- min timestampmax- max timestamp- Throws:
java.lang.UnsupportedOperationException- throw exception when executing this method
-
getStartTime
public long getStartTime()
-
getEndTime
public long getEndTime()
-
getCount
public long getCount()
-
setStartTime
public void setStartTime(long startTime)
-
setEndTime
public void setEndTime(long endTime)
-
setCount
public void setCount(int count)
-
calculateRamSize
public abstract long calculateRamSize()
-
containedByTimeFilter
public boolean containedByTimeFilter(Filter timeFilter)
-
hasNullValue
public boolean hasNullValue(long timeRowCount)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
-