You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2015/07/20 09:04:42 UTC
[2/4] incubator-kylin git commit: KYLIN-897 CubeMigrationCLI should
copy cube statistics and models as well
KYLIN-897 CubeMigrationCLI should copy cube statistics and models as well
Project: http://git-wip-us.apache.org/repos/asf/incubator-kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-kylin/commit/2afbf3ad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-kylin/tree/2afbf3ad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-kylin/diff/2afbf3ad
Branch: refs/heads/0.8
Commit: 2afbf3add4076f94afcd3ba0c954de47e81ab5be
Parents: d6ac4f0
Author: shaofengshi <sh...@apache.org>
Authored: Mon Jul 20 14:47:28 2015 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Mon Jul 20 14:47:28 2015 +0800
----------------------------------------------------------------------
.../java/org/apache/kylin/job/tools/CubeMigrationCLI.java | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-kylin/blob/2afbf3ad/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
----------------------------------------------------------------------
diff --git a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
index 30b6b19..ef6663c 100644
--- a/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
+++ b/job/src/main/java/org/apache/kylin/job/tools/CubeMigrationCLI.java
@@ -123,7 +123,7 @@ public class CubeMigrationCLI {
copyFilesInMetaStore(cube, overwriteIfExists);
renameFoldersInHdfs(cube);
changeHtableHost(cube);
- addCubeIntoProject(cubeName, projectName);
+ addCubeIntoProject(cubeName, projectName, cube.getModelName());
if (realExecute.equalsIgnoreCase("true")) {
doOpts();
@@ -195,12 +195,12 @@ public class CubeMigrationCLI {
}
}
- private static void addCubeIntoProject(String cubeName, String projectName) throws IOException {
+ private static void addCubeIntoProject(String cubeName, String projectName, String modelName) throws IOException {
String projectResPath = ProjectInstance.concatResourcePath(projectName);
if (!dstStore.exists(projectResPath))
throw new IllegalStateException("The target project " + projectName + "does not exist");
- operations.add(new Opt(OptType.ADD_INTO_PROJECT, new Object[] { cubeName, projectName }));
+ operations.add(new Opt(OptType.ADD_INTO_PROJECT, new Object[] { cubeName, projectName, modelName }));
}
private static void listCubeRelatedResources(CubeInstance cube, List<String> metaResource, List<String> dictAndSnapshot) throws IOException {
@@ -217,6 +217,7 @@ public class CubeMigrationCLI {
for (CubeSegment segment : cube.getSegments()) {
dictAndSnapshot.addAll(segment.getSnapshotPaths());
dictAndSnapshot.addAll(segment.getDictionaryPaths());
+ metaResource.add(segment.getStatisticsResourcePath());
}
}
@@ -382,11 +383,14 @@ public class CubeMigrationCLI {
case ADD_INTO_PROJECT: {
String cubeName = (String) opt.params[0];
String projectName = (String) opt.params[1];
+ String modelName = (String) opt.params[2];
String projectResPath = ProjectInstance.concatResourcePath(projectName);
Serializer<ProjectInstance> projectSerializer = new JsonSerializer<ProjectInstance>(ProjectInstance.class);
ProjectInstance project = dstStore.getResource(projectResPath, ProjectInstance.class, projectSerializer);
project.removeRealization(RealizationType.CUBE, cubeName);
project.addRealizationEntry(RealizationType.CUBE, cubeName);
+ if( project.getModels().contains(modelName) == false)
+ project.getModels().add(modelName);
dstStore.putResource(projectResPath, project, projectSerializer);
logger.info("Project instance for " + projectName + " is corrected");
break;