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;