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) {

Reply via email to