Class SeriesReader
- java.lang.Object
-
- org.apache.iotdb.db.query.reader.series.SeriesReader
-
- Direct Known Subclasses:
AlignedSeriesReader
public class SeriesReader extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceSeriesReader.TimeOrderUtils
-
Field Summary
Fields Modifier and Type Field Description protected java.util.Set<java.lang.String>allSensorsprotected org.apache.iotdb.tsfile.read.common.BatchDatacachedBatchDataprotected java.util.PriorityQueue<org.apache.iotdb.tsfile.file.metadata.IChunkMetadata>cachedChunkMetadataprotected QueryContextcontextprotected intcurSeqFileIndexprotected intcurUnseqFileIndexprotected QueryDataSourcedataSourceprotected org.apache.iotdb.tsfile.file.metadata.enums.TSDataTypedataTypeprotected TsFileFilterfileFilterprotected org.apache.iotdb.tsfile.file.metadata.IChunkMetadatafirstChunkMetadataprotected org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReaderfirstPageReaderprotected org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadatafirstTimeSeriesMetadataprotected booleanhasCachedNextOverlappedPageprotected PriorityMergeReadermergeReaderprotected SeriesReader.TimeOrderUtilsorderUtilsprotected java.util.List<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader>seqPageReadersprotected java.util.List<org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata>seqTimeSeriesMetadataprotected org.apache.iotdb.commons.path.PartialPathseriesPathprotected org.apache.iotdb.tsfile.read.filter.basic.FiltertimeFilterprotected java.util.PriorityQueue<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader>unSeqPageReadersprotected java.util.PriorityQueue<org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata>unSeqTimeSeriesMetadataprotected org.apache.iotdb.tsfile.read.filter.basic.FiltervalueFilter
-
Constructor Summary
Constructors Constructor Description SeriesReader(org.apache.iotdb.commons.path.PartialPath seriesPath, java.util.Set<java.lang.String> allSensors, org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType, QueryContext context, java.util.List<TsFileResource> seqFileResource, java.util.List<TsFileResource> unseqFileResource, org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter, org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter, boolean ascending)SeriesReader(org.apache.iotdb.commons.path.PartialPath seriesPath, java.util.Set<java.lang.String> allSensors, org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType, QueryContext context, QueryDataSource dataSource, org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter, org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter, TsFileFilter fileFilter, boolean ascending)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description org.apache.iotdb.tsfile.file.metadata.statistics.StatisticscurrentFileTimeStatistics()protected org.apache.iotdb.tsfile.read.filter.basic.FiltergetAnyFilter()protected DescPriorityMergeReadergetDescPriorityMergeReader()SeriesReader.TimeOrderUtilsgetOrderUtils()protected PriorityMergeReadergetPriorityMergeReader()org.apache.iotdb.tsfile.read.filter.basic.FiltergetValueFilter()booleanisEmpty()protected org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadataloadTimeSeriesMetadata(TsFileResource resource, org.apache.iotdb.commons.path.PartialPath seriesPath, QueryContext context, org.apache.iotdb.tsfile.read.filter.basic.Filter filter, java.util.Set<java.lang.String> allSensors)protected voidtryToUnpackAllOverlappedFilesToTimeSeriesMetadata()unpack all overlapped seq/unseq files and find the first TimeSeriesMetadataprotected voidunpackAllOverlappedTsFilesToTimeSeriesMetadata(long endpointTime)protected voidunpackOneTimeSeriesMetadata(org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata timeSeriesMetadata)protected voidunpackSeqTsFileResource()protected voidunpackUnseqTsFileResource()
-
-
-
Field Detail
-
orderUtils
protected SeriesReader.TimeOrderUtils orderUtils
-
seriesPath
protected final org.apache.iotdb.commons.path.PartialPath seriesPath
-
allSensors
protected final java.util.Set<java.lang.String> allSensors
-
dataType
protected final org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType
-
context
protected final QueryContext context
-
timeFilter
protected final org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter
-
valueFilter
protected final org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter
-
fileFilter
protected final TsFileFilter fileFilter
-
dataSource
protected final QueryDataSource dataSource
-
curSeqFileIndex
protected int curSeqFileIndex
-
curUnseqFileIndex
protected int curUnseqFileIndex
-
firstTimeSeriesMetadata
protected org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata firstTimeSeriesMetadata
-
seqTimeSeriesMetadata
protected final java.util.List<org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata> seqTimeSeriesMetadata
-
unSeqTimeSeriesMetadata
protected final java.util.PriorityQueue<org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata> unSeqTimeSeriesMetadata
-
firstChunkMetadata
protected org.apache.iotdb.tsfile.file.metadata.IChunkMetadata firstChunkMetadata
-
cachedChunkMetadata
protected final java.util.PriorityQueue<org.apache.iotdb.tsfile.file.metadata.IChunkMetadata> cachedChunkMetadata
-
firstPageReader
protected org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader firstPageReader
-
seqPageReaders
protected final java.util.List<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader> seqPageReaders
-
unSeqPageReaders
protected final java.util.PriorityQueue<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader> unSeqPageReaders
-
mergeReader
protected final PriorityMergeReader mergeReader
-
hasCachedNextOverlappedPage
protected boolean hasCachedNextOverlappedPage
-
cachedBatchData
protected org.apache.iotdb.tsfile.read.common.BatchData cachedBatchData
-
-
Constructor Detail
-
SeriesReader
public SeriesReader(org.apache.iotdb.commons.path.PartialPath seriesPath, java.util.Set<java.lang.String> allSensors, org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType, QueryContext context, QueryDataSource dataSource, org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter, org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter, TsFileFilter fileFilter, boolean ascending)- Parameters:
seriesPath- For querying aligned series, the seriesPath should be AlignedPath. All selected series belonging to one aligned device should be all in this one AlignedPath's measurementList.allSensors- For querying aligned series, allSensors are not used.
-
SeriesReader
public SeriesReader(org.apache.iotdb.commons.path.PartialPath seriesPath, java.util.Set<java.lang.String> allSensors, org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType, QueryContext context, java.util.List<TsFileResource> seqFileResource, java.util.List<TsFileResource> unseqFileResource, org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter, org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter, boolean ascending)
-
-
Method Detail
-
getPriorityMergeReader
protected PriorityMergeReader getPriorityMergeReader()
-
getDescPriorityMergeReader
protected DescPriorityMergeReader getDescPriorityMergeReader()
-
isEmpty
public boolean isEmpty() throws java.io.IOException- Throws:
java.io.IOException
-
currentFileTimeStatistics
public org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentFileTimeStatistics() throws java.io.IOException- Throws:
java.io.IOException
-
unpackOneTimeSeriesMetadata
protected void unpackOneTimeSeriesMetadata(org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata timeSeriesMetadata) throws java.io.IOException- Throws:
java.io.IOException
-
tryToUnpackAllOverlappedFilesToTimeSeriesMetadata
protected void tryToUnpackAllOverlappedFilesToTimeSeriesMetadata() throws java.io.IOExceptionunpack all overlapped seq/unseq files and find the first TimeSeriesMetadataBecause there may be too many files in the scenario used by the user, we cannot open all the chunks at once, which may cause OOM, so we can only unpack one file at a time when needed. This approach is likely to be ubiquitous, but it keeps the system running smoothly
- Throws:
java.io.IOException
-
unpackAllOverlappedTsFilesToTimeSeriesMetadata
protected void unpackAllOverlappedTsFilesToTimeSeriesMetadata(long endpointTime) throws java.io.IOException- Throws:
java.io.IOException
-
unpackSeqTsFileResource
protected void unpackSeqTsFileResource() throws java.io.IOException- Throws:
java.io.IOException
-
unpackUnseqTsFileResource
protected void unpackUnseqTsFileResource() throws java.io.IOException- Throws:
java.io.IOException
-
loadTimeSeriesMetadata
protected org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata loadTimeSeriesMetadata(TsFileResource resource, org.apache.iotdb.commons.path.PartialPath seriesPath, QueryContext context, org.apache.iotdb.tsfile.read.filter.basic.Filter filter, java.util.Set<java.lang.String> allSensors) throws java.io.IOException
- Throws:
java.io.IOException
-
getAnyFilter
protected org.apache.iotdb.tsfile.read.filter.basic.Filter getAnyFilter()
-
getOrderUtils
public SeriesReader.TimeOrderUtils getOrderUtils()
-
getValueFilter
public org.apache.iotdb.tsfile.read.filter.basic.Filter getValueFilter()
-
-