Repository: kylin Updated Branches: refs/heads/v1.6.0-rc2 50933a6c8 -> 783d39917
KYLIN-2173 add back check for empty segment Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/783d3991 Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/783d3991 Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/783d3991 Branch: refs/heads/v1.6.0-rc2 Commit: 783d399175ab0e821f703dc53c6cd0791ffb85d4 Parents: 50933a6 Author: shaofengshi <shaofeng...@apache.org> Authored: Tue Nov 22 13:43:04 2016 +0800 Committer: shaofengshi <shaofeng...@apache.org> Committed: Tue Nov 22 13:43:04 2016 +0800 ---------------------------------------------------------------------- .../kylin/storage/gtrecord/GTCubeStorageQueryBase.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/783d3991/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java ---------------------------------------------------------------------- diff --git a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java index bd62f15..76a8c7b 100644 --- a/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java +++ b/core-storage/src/main/java/org/apache/kylin/storage/gtrecord/GTCubeStorageQueryBase.java @@ -122,6 +122,14 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery { List<CubeSegmentScanner> scanners = Lists.newArrayList(); for (CubeSegment cubeSeg : cubeInstance.getSegments(SegmentStatusEnum.READY)) { CubeSegmentScanner scanner; + if (cubeSeg.getInputRecords() == 0) { + if (!skipZeroInputSegment(cubeSeg)) { + logger.warn("cube segment {} input record is 0, " + "it may caused by kylin failed to get the job counter " + "as the hadoop history server wasn't running", cubeSeg); + } else { + logger.warn("cube segment {} input record is 0, skip it ", cubeSeg); + continue; + } + } try { scanner = new CubeSegmentScanner(cubeSeg, cuboid, dimensionsD, groupsD, metrics, filterD, context, getGTStorage()); } catch (IllegalArgumentException ex) { @@ -141,6 +149,10 @@ public abstract class GTCubeStorageQueryBase implements IStorageQuery { return new SequentialCubeTupleIterator(scanners, cuboid, dimensionsD, metrics, returnTupleInfo, context); } + protected boolean skipZeroInputSegment(CubeSegment cubeSegment) { + return false; + } + protected abstract String getGTStorage(); private void buildDimensionsAndMetrics(SQLDigest sqlDigest, Collection<TblColRef> dimensions, Collection<FunctionDesc> metrics) {