Hi,
  Throw an exception information when using org.apache.kylin.storage.hbase.util 
.CubeMigrationCLI migration cube, kylin version is kylin-1.5.4.1-HBase1.x.

  2016-10-17 14:57:25,595 INFO  [main CubeMigrationCLI:325]: Executing 
operation: ADD_INTO_PROJECT:CUBE[name=testc], testc, test,
  2016-10-17 14:57:25,595 ERROR [main CubeMigrationCLI:307]: error met
  java.lang.ClassCastException: org.apache.kylin.cube.CubeInstance cannot be 
cast to java.lang.String
        at 
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.doOpt(CubeMigrationCLI.java:425)
        at 
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.doOpts(CubeMigrationCLI.java:304)
        at 
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.moveCube(CubeMigrationCLI.java:153)
        at 
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.moveCube(CubeMigrationCLI.java:167)
        at 
org.apache.kylin.storage.hbase.util.CubeMigrationCLI.main(CubeMigrationCLI.java:102)
2016-10-17 14:57:25,597 INFO  [main CubeMigrationCLI:308]: Try undoing previous 
changes

In github , the source code of kylin - 1.5.4.1 - HBase1. X branch:
            case ADD_INTO_PROJECT: {
                String cubeName = (String) opt.params[0];
                String projectName = (String) opt.params[1];
                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);
                dstStore.putResource(projectResPath, project, 
projectSerializer);
                logger.info("Project instance for " + projectName + " is 
corrected");
                break;
            }

This version of kylin 1.5.4.1 -- cdh5.7 is the same.


the source code of master X branch:
        case ADD_INTO_PROJECT: {
            CubeInstance srcCube = (CubeInstance) opt.params[0];
            String cubeName = (String) opt.params[1];
            String projectName = (String) opt.params[2];
            String modelName = srcCube.getDescriptor().getModelName();

            String projectResPath = 
ProjectInstance.concatResourcePath(projectName);
            Serializer<ProjectInstance> projectSerializer = new 
JsonSerializer<ProjectInstance>(ProjectInstance.class);
            ProjectInstance project = dstStore.getResource(projectResPath, 
ProjectInstance.class, projectSerializer);

            project.addModel(modelName);
            project.removeRealization(RealizationType.CUBE, cubeName);
            project.addRealizationEntry(RealizationType.CUBE, cubeName);

            dstStore.putResource(projectResPath, project, projectSerializer);
            logger.info("Project instance for " + projectName + " is 
corrected");
            break;.
        }

I compare the two source code: kylin - 1.5.4.1 - HBase1. X branch 、kylin 
1.5.4.1 -- cdh5.7 and  master, I think in kylin - 1.5.4.1 - HBase1 .x 、kylin 
1.5.4.1 -- cdh5.7 branch , the code of CubeMigrationCLI is wrong?

Thank you!

Reply via email to