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;