You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by qh...@apache.org on 2015/07/28 09:24:09 UTC

incubator-kylin git commit: KYLIN-911

Repository: incubator-kylin
Updated Branches:
  refs/heads/0.7-staging f9a490df0 -> 54323c992


KYLIN-911


Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/54323c99
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/54323c99
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/54323c99

Branch: refs/heads/0.7-staging
Commit: 54323c9929cbea7e37a72d524ebf2bea5b038626
Parents: f9a490d
Author: qianhao.zhou <qi...@ebay.com>
Authored: Tue Jul 28 15:21:49 2015 +0800
Committer: qianhao.zhou <qi...@ebay.com>
Committed: Tue Jul 28 15:21:49 2015 +0800

----------------------------------------------------------------------
 .../java/org/apache/kylin/job/cube/CubingJob.java  | 12 ++++++++++--
 .../apache/kylin/job/cube/CubingJobBuilder.java    |  1 +
 .../org/apache/kylin/rest/service/JobService.java  | 17 ++++++++++-------
 3 files changed, 21 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/54323c99/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
index 483b44d..eeaab0f 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJob.java
@@ -21,7 +21,10 @@ package org.apache.kylin.job.cube;
 import java.net.InetAddress;
 import java.net.UnknownHostException;
 import java.util.Date;
+import java.util.List;
 
+import com.google.common.collect.Lists;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.commons.lang3.tuple.Pair;
 
 import org.apache.kylin.job.common.MapReduceExecutable;
@@ -55,11 +58,15 @@ public class CubingJob extends DefaultChainedExecutable {
         return getParam(CUBE_INSTANCE_NAME);
     }
 
+    void setSegmentIds(List<String> segmentIds) {
+        setParam(SEGMENT_ID, StringUtils.join(segmentIds, ","));
+    }
+
     void setSegmentId(String segmentId) {
         setParam(SEGMENT_ID, segmentId);
     }
-
-    public String getSegmentId() {
+    
+    public String getSegmentIds() {
         return getParam(SEGMENT_ID);
     }
 
@@ -125,4 +132,5 @@ public class CubingJob extends DefaultChainedExecutable {
     public void setMapReduceWaitTime(long t) {
         addExtraInfo(MAP_REDUCE_WAIT_TIME, t + "");
     }
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/54323c99/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
index a4a44bc..d583c34 100644
--- a/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
+++ b/job/src/main/java/org/apache/kylin/job/cube/CubingJobBuilder.java
@@ -85,6 +85,7 @@ public final class CubingJobBuilder extends AbstractJobBuilder {
         checkPreconditions(appendSegment, mergeSegment);
 
         CubingJob result = initialJob(mergeSegment, "BUILD");
+        result.setSegmentIds(Lists.newArrayList(new String[]{appendSegment.getUuid(), mergeSegment.getUuid()}));
         final String jobId = result.getId();
         final String appendRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/append_cuboid/";
         final String mergedRootPath = getJobWorkingDir(jobId) + "/" + appendSegment.getCubeInstance().getName() + "/cuboid/";

http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/54323c99/server/src/main/java/org/apache/kylin/rest/service/JobService.java
----------------------------------------------------------------------
diff --git a/server/src/main/java/org/apache/kylin/rest/service/JobService.java b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
index d4f7d1d..a0b3407 100644
--- a/server/src/main/java/org/apache/kylin/rest/service/JobService.java
+++ b/server/src/main/java/org/apache/kylin/rest/service/JobService.java
@@ -23,6 +23,7 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.FluentIterable;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Sets;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.kylin.common.util.Pair;
 import org.apache.kylin.cube.CubeInstance;
 import org.apache.kylin.cube.CubeSegment;
@@ -180,7 +181,7 @@ public class JobService extends BasicService {
         final JobInstance result = new JobInstance();
         result.setName(job.getName());
         result.setRelatedCube(cubeJob.getCubeName());
-        result.setRelatedSegment(cubeJob.getSegmentId());
+        result.setRelatedSegment(cubeJob.getSegmentIds());
         result.setLastModified(cubeJob.getLastModified());
         result.setSubmitter(cubeJob.getSubmitter());
         result.setUuid(cubeJob.getId());
@@ -205,7 +206,7 @@ public class JobService extends BasicService {
         final JobInstance result = new JobInstance();
         result.setName(job.getName());
         result.setRelatedCube(cubeJob.getCubeName());
-        result.setRelatedSegment(cubeJob.getSegmentId());
+        result.setRelatedSegment(cubeJob.getSegmentIds());
         result.setLastModified(output.getLastModified());
         result.setSubmitter(cubeJob.getSubmitter());
         result.setUuid(cubeJob.getId());
@@ -295,12 +296,14 @@ public class JobService extends BasicService {
         //            getExecutableManager().stopJob(cubeJob.getId());
         //        }
 
-        final String segmentId = job.getRelatedSegment();
+        final String[] segmentIds = StringUtils.split(job.getRelatedSegment(), ",");
         CubeInstance cubeInstance = getCubeManager().getCube(job.getRelatedCube());
-        final CubeSegment segment = cubeInstance.getSegmentById(segmentId);
-        if (segment.getStatus() == SegmentStatusEnum.NEW) {
-            cubeInstance.getSegments().remove(segment);
-            getCubeManager().updateCube(cubeInstance);
+        for (String segmentId : segmentIds) {
+            final CubeSegment segment = cubeInstance.getSegmentById(segmentId);
+            if (segment.getStatus() == SegmentStatusEnum.NEW) {
+                cubeInstance.getSegments().remove(segment);
+                getCubeManager().updateCube(cubeInstance);
+            }
         }
         getExecutableManager().discardJob(job.getId());
         return job;