private DimensionColumnChunkReader getDimensionColumnChunkReader(FileReader fileReader) { ColumnarFormatVersion version = ColumnarFormatVersion.valueOf(blockInfos.get(index).getDetailInfo().getVersionNumber()); if (fileReader.isReadPageByPage()) { return CarbonDataReaderFactory.getInstance().getDimensionColumnChunkReader(version, blockInfos.get(index).getDetailInfo().getBlockletInfo(), dimensionLens, blockInfos.get(index).getFilePath(), true); } else { return CarbonDataReaderFactory.getInstance().getDimensionColumnChunkReader(version, blockInfos.get(index).getDetailInfo().getBlockletInfo(), dimensionLens, blockInfos.get(index).getFilePath(), false); } }
private MeasureColumnChunkReader getMeasureColumnChunkReader(FileReader fileReader) { ColumnarFormatVersion version = ColumnarFormatVersion.valueOf(blockInfos.get(index).getDetailInfo().getVersionNumber()); if (fileReader.isReadPageByPage()) { return CarbonDataReaderFactory.getInstance().getMeasureColumnChunkReader(version, blockInfos.get(index).getDetailInfo().getBlockletInfo(), blockInfos.get(index).getFilePath(), true); } else { return CarbonDataReaderFactory.getInstance().getMeasureColumnChunkReader(version, blockInfos.get(index).getDetailInfo().getBlockletInfo(), blockInfos.get(index).getFilePath(), false); } }
private CarbonInputSplit convertToCarbonInputSplit(ExtendedBlocklet blocklet) throws IOException { CarbonInputSplit split = CarbonInputSplit .from(blocklet.getSegmentId(), blocklet.getBlockletId(), new FileSplit(new Path(blocklet.getPath()), 0, blocklet.getLength(), blocklet.getLocations()), ColumnarFormatVersion.valueOf((short) blocklet.getDetailInfo().getVersionNumber()), blocklet.getDataMapWriterPath()); split.setDetailInfo(blocklet.getDetailInfo()); return split; }
private static DataFileFooter getDataFileFooter(TableBlockInfo tableBlockInfo, boolean forceReadDataFileFooter) throws IOException { BlockletDetailInfo detailInfo = tableBlockInfo.getDetailInfo(); if (detailInfo == null || forceReadDataFileFooter) { AbstractDataFileFooterConverter fileFooterConverter = DataFileFooterConverterFactory.getInstance() .getDataFileFooterConverter(tableBlockInfo.getVersion()); return fileFooterConverter.readDataFileFooter(tableBlockInfo); } else { DataFileFooter fileFooter = new DataFileFooter(); fileFooter.setSchemaUpdatedTimeStamp(detailInfo.getSchemaUpdatedTimeStamp()); ColumnarFormatVersion version = ColumnarFormatVersion.valueOf(detailInfo.getVersionNumber()); AbstractDataFileFooterConverter dataFileFooterConverter = DataFileFooterConverterFactory.getInstance().getDataFileFooterConverter(version); List<ColumnSchema> schema = dataFileFooterConverter.getSchema(tableBlockInfo); fileFooter.setColumnInTable(schema); SegmentInfo segmentInfo = new SegmentInfo(); segmentInfo.setColumnCardinality(detailInfo.getDimLens()); fileFooter.setSegmentInfo(segmentInfo); return fileFooter; } }