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