public class SeriesReader extends Object
| 限定符和类型 | 类和说明 |
|---|---|
static interface |
SeriesReader.TimeOrderUtils |
| 构造器和说明 |
|---|
SeriesReader(PartialPath seriesPath,
Set<String> allSensors,
TSDataType dataType,
QueryContext context,
List<TsFileResource> seqFileResource,
List<TsFileResource> unseqFileResource,
Filter timeFilter,
Filter valueFilter,
boolean ascending) |
SeriesReader(PartialPath seriesPath,
Set<String> allSensors,
TSDataType dataType,
QueryContext context,
QueryDataSource dataSource,
Filter timeFilter,
Filter valueFilter,
TsFileFilter fileFilter,
boolean ascending) |
| 限定符和类型 | 方法和说明 |
|---|---|
Statistics |
currentFileTimeStatistics() |
protected Filter |
getAnyFilter() |
protected DescPriorityMergeReader |
getDescPriorityMergeReader() |
SeriesReader.TimeOrderUtils |
getOrderUtils() |
protected PriorityMergeReader |
getPriorityMergeReader() |
Filter |
getValueFilter() |
boolean |
isEmpty() |
protected ITimeSeriesMetadata |
loadTimeSeriesMetadata(TsFileResource resource,
PartialPath seriesPath,
QueryContext context,
Filter filter,
Set<String> allSensors) |
protected void |
tryToUnpackAllOverlappedFilesToTimeSeriesMetadata()
unpack all overlapped seq/unseq files and find the first TimeSeriesMetadata
Because 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.
|
protected void |
unpackAllOverlappedTsFilesToTimeSeriesMetadata(long endpointTime) |
protected void |
unpackOneTimeSeriesMetadata(ITimeSeriesMetadata timeSeriesMetadata) |
protected void |
unpackSeqTsFileResource() |
protected void |
unpackUnseqTsFileResource() |
protected SeriesReader.TimeOrderUtils orderUtils
protected final PartialPath seriesPath
protected final TSDataType dataType
protected final QueryContext context
protected final Filter timeFilter
protected final Filter valueFilter
protected final TsFileFilter fileFilter
protected final QueryDataSource dataSource
protected int curSeqFileIndex
protected int curUnseqFileIndex
protected ITimeSeriesMetadata firstTimeSeriesMetadata
protected final List<ITimeSeriesMetadata> seqTimeSeriesMetadata
protected final PriorityQueue<ITimeSeriesMetadata> unSeqTimeSeriesMetadata
protected IChunkMetadata firstChunkMetadata
protected final PriorityQueue<IChunkMetadata> cachedChunkMetadata
protected org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader firstPageReader
protected final List<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader> seqPageReaders
protected final PriorityQueue<org.apache.iotdb.db.query.reader.series.SeriesReader.VersionPageReader> unSeqPageReaders
protected final PriorityMergeReader mergeReader
protected boolean hasCachedNextOverlappedPage
protected BatchData cachedBatchData
public SeriesReader(PartialPath seriesPath, Set<String> allSensors, TSDataType dataType, QueryContext context, QueryDataSource dataSource, Filter timeFilter, Filter valueFilter, TsFileFilter fileFilter, boolean ascending)
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.public SeriesReader(PartialPath seriesPath, Set<String> allSensors, TSDataType dataType, QueryContext context, List<TsFileResource> seqFileResource, List<TsFileResource> unseqFileResource, Filter timeFilter, Filter valueFilter, boolean ascending)
protected PriorityMergeReader getPriorityMergeReader()
protected DescPriorityMergeReader getDescPriorityMergeReader()
public boolean isEmpty()
throws IOException
IOExceptionpublic Statistics currentFileTimeStatistics() throws IOException
IOExceptionprotected void unpackOneTimeSeriesMetadata(ITimeSeriesMetadata timeSeriesMetadata) throws IOException
IOExceptionprotected void tryToUnpackAllOverlappedFilesToTimeSeriesMetadata()
throws IOException
Because 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
IOExceptionprotected void unpackAllOverlappedTsFilesToTimeSeriesMetadata(long endpointTime)
throws IOException
IOExceptionprotected void unpackSeqTsFileResource()
throws IOException
IOExceptionprotected void unpackUnseqTsFileResource()
throws IOException
IOExceptionprotected ITimeSeriesMetadata loadTimeSeriesMetadata(TsFileResource resource, PartialPath seriesPath, QueryContext context, Filter filter, Set<String> allSensors) throws IOException
IOExceptionprotected Filter getAnyFilter()
public SeriesReader.TimeOrderUtils getOrderUtils()
public Filter getValueFilter()
Copyright © 2022 The Apache Software Foundation. All rights reserved.