This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/master by this push: new 84d9fff KYLIN-4712 Fix some bugs when ingest cube 84d9fff is described below commit 84d9ffff537a093745d1de3f93d0f5f6f425219a Author: yaqian.zhang <598593...@qq.com> AuthorDate: Mon Sep 28 19:04:45 2020 +0800 KYLIN-4712 Fix some bugs when ingest cube --- .../apache/kylin/metadata/model/DataModelManager.java | 12 +++++++++--- .../java/org/apache/kylin/tool/CubeMetaIngester.java | 19 +++++++++++-------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelManager.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelManager.java index f483a2c..50f92fb 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelManager.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/DataModelManager.java @@ -90,9 +90,15 @@ public class DataModelManager { getDataModelImplClass(), dataModelDescMap) { @Override protected DataModelDesc initEntityAfterReload(DataModelDesc model, String resourceName) { - String prj = (null == model.getProjectName() - ? ProjectManager.getInstance(config).getProjectOfModel(model.getName()).getName() - : model.getProjectName()); + String prj; + try { + prj = ProjectManager.getInstance(config).getProjectOfModel(model.getName()).getName(); + } catch (IllegalStateException e) { + prj = model.getProjectName(); + if (model.getProjectName() == null) { + throw e; + } + } if (!model.isDraft()) { model.init(config, getAllTablesMap(prj)); } diff --git a/tool/src/main/java/org/apache/kylin/tool/CubeMetaIngester.java b/tool/src/main/java/org/apache/kylin/tool/CubeMetaIngester.java index e856310..db41600 100644 --- a/tool/src/main/java/org/apache/kylin/tool/CubeMetaIngester.java +++ b/tool/src/main/java/org/apache/kylin/tool/CubeMetaIngester.java @@ -121,7 +121,7 @@ public class CubeMetaIngester extends AbstractApplication { } File zipFile = new File(srcPath); if (zipFile.isDirectory() || !zipFile.exists()) { - throw new IllegalArgumentException(OPTION_SRC.getArgName() + " file does does exist"); + throw new IllegalArgumentException(OPTION_SRC.getArgName() + " file does not exist"); } Path tempPath = Files.createTempDirectory("_unzip"); @@ -158,6 +158,7 @@ public class CubeMetaIngester extends AbstractApplication { for (CubeInstance cube : srcCubeManager.listAllCubes()) { logger.info("add " + cube + " to " + targetProjectName); projectManager.addModelToProject(cube.getModel().getName(), targetProjectName); + srcModelManager.reloadDataModel(cube.getModel().getName()); projectManager.moveRealizationToProject(RealizationType.CUBE, cube.getName(), targetProjectName, null); } @@ -192,33 +193,35 @@ public class CubeMetaIngester extends AbstractApplication { logger.warn("Overwriting the old table desc: {}", tableDesc.getIdentity()); } } - tableDesc.setUuid(RandomUtil.randomUUID().toString()); - tableDesc.setLastModified(0); - metadataManager.saveSourceTable(tableDesc, targetProjectName); + if (existing == null) { + tableDesc.setUuid(RandomUtil.randomUUID().toString()); + tableDesc.setLastModified(0); + metadataManager.saveSourceTable(tableDesc, targetProjectName); + } requiredResources.add(tableDesc.getResourcePath()); } DataModelManager modelManager = DataModelManager.getInstance(kylinConfig); for (DataModelDesc dataModelDesc : srcModelManager.listDataModels()) { - checkExesting(modelManager.getDataModelDesc(dataModelDesc.getName()), "model", dataModelDesc.getName()); + checkExisting(modelManager.getDataModelDesc(dataModelDesc.getName()), "model", dataModelDesc.getName()); requiredResources.add(DataModelDesc.concatResourcePath(dataModelDesc.getName())); } CubeDescManager cubeDescManager = CubeDescManager.getInstance(kylinConfig); for (CubeDesc cubeDesc : srcCubeDescManager.listAllDesc()) { - checkExesting(cubeDescManager.getCubeDesc(cubeDesc.getName()), "cube desc", cubeDesc.getName()); + checkExisting(cubeDescManager.getCubeDesc(cubeDesc.getName()), "cube desc", cubeDesc.getName()); requiredResources.add(CubeDesc.concatResourcePath(cubeDesc.getName())); } CubeManager cubeManager = CubeManager.getInstance(kylinConfig); for (CubeInstance cube : srcCubeManager.listAllCubes()) { - checkExesting(cubeManager.getCube(cube.getName()), "cube", cube.getName()); + checkExisting(cubeManager.getCube(cube.getName()), "cube", cube.getName()); requiredResources.add(CubeInstance.concatResourcePath(cube.getName())); } } - private void checkExesting(RootPersistentEntity existing, String type, String name) { + private void checkExisting(RootPersistentEntity existing, String type, String name) { if (existing != null) { if (!forceIngest) { throw new IllegalStateException("Already exist a " + type + " called " + name);