You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by xx...@apache.org on 2020/09/29 01:50:50 UTC

[kylin] branch kylin-on-parquet-v2 updated: KYLIN-4712 Fix some bugs when ingest cube

This is an automated email from the ASF dual-hosted git repository.

xxyu pushed a commit to branch kylin-on-parquet-v2
in repository https://gitbox.apache.org/repos/asf/kylin.git


The following commit(s) were added to refs/heads/kylin-on-parquet-v2 by this push:
     new 1faff2b  KYLIN-4712 Fix some bugs when ingest cube
1faff2b is described below

commit 1faff2b74f60a108759799b954e9a20333734aac
Author: yaqian.zhang <59...@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 47e2c3d..a8afb89 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
@@ -87,9 +87,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);