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);

Reply via email to