Class SeriesScanUtil

    • Field Detail

      • allSensors

        protected final java.util.Set<java.lang.String> allSensors
      • dataType

        protected final org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType
      • 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
      • hasCachedNextOverlappedPage

        protected boolean hasCachedNextOverlappedPage
      • cachedTsBlock

        protected org.apache.iotdb.tsfile.read.common.block.TsBlock cachedTsBlock
    • Constructor Detail

      • SeriesScanUtil

        public SeriesScanUtil​(org.apache.iotdb.commons.path.PartialPath seriesPath,
                              java.util.Set<java.lang.String> allSensors,
                              org.apache.iotdb.tsfile.file.metadata.enums.TSDataType dataType,
                              FragmentInstanceContext context,
                              org.apache.iotdb.tsfile.read.filter.basic.Filter timeFilter,
                              org.apache.iotdb.tsfile.read.filter.basic.Filter valueFilter,
                              boolean ascending)
    • Method Detail

      • initQueryDataSource

        public void initQueryDataSource​(QueryDataSource dataSource)
      • initQueryDataSource

        public void initQueryDataSource​(java.util.List<TsFileResource> seqFileResource,
                                        java.util.List<TsFileResource> unseqFileResource)
      • isEmpty

        public boolean isEmpty()
                        throws java.io.IOException
        Throws:
        java.io.IOException
      • hasNextFile

        public boolean hasNextFile()
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • currentFileStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentFileStatistics​(int index)
                                                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • currentFileTimeStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentFileTimeStatistics()
                                                                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • hasNextChunk

        public boolean hasNextChunk()
                             throws java.io.IOException
        This method should be called after hasNextFile() until no next chunk, make sure that all overlapped chunks are consumed
        Throws:
        java.io.IOException
      • unpackOneTimeSeriesMetadata

        protected void unpackOneTimeSeriesMetadata​(org.apache.iotdb.tsfile.file.metadata.ITimeSeriesMetadata timeSeriesMetadata)
                                            throws java.io.IOException
        Throws:
        java.io.IOException
      • currentChunkStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentChunkStatistics​(int index)
                                                                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • currentChunkTimeStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentChunkTimeStatistics()
                                                                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • hasNextPage

        public boolean hasNextPage()
                            throws java.io.IOException
        This method should be called after hasNextChunk() until no next page, make sure that all overlapped pages are consumed
        Throws:
        java.io.IOException
      • currentPageStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentPageStatistics​(int index)
                                                                                             throws java.io.IOException
        Throws:
        java.io.IOException
      • currentPageTimeStatistics

        protected org.apache.iotdb.tsfile.file.metadata.statistics.Statistics currentPageTimeStatistics()
                                                                                                 throws java.io.IOException
        Throws:
        java.io.IOException
      • nextPage

        public org.apache.iotdb.tsfile.read.common.block.TsBlock nextPage()
                                                                   throws java.io.IOException
        This method should only be used when the method isPageOverlapped() return true.
        Throws:
        java.io.IOException
      • tryToUnpackAllOverlappedFilesToTimeSeriesMetadata

        protected void tryToUnpackAllOverlappedFilesToTimeSeriesMetadata()
                                                                  throws java.io.IOException
        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. 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
      • 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
      • getTsDataTypeList

        protected java.util.List<org.apache.iotdb.tsfile.file.metadata.enums.TSDataType> getTsDataTypeList()
      • getPointReader

        protected org.apache.iotdb.tsfile.read.reader.IPointReader getPointReader​(org.apache.iotdb.tsfile.read.common.block.TsBlock tsBlock)