From 003a729e7cc30027a040b64b30a8e457ea3c8d5e Mon Sep 17 00:00:00 2001 From: "peng.jianhua" Date: Mon, 25 Sep 2017 17:15:00 +0800 Subject: [PATCH 1/1] KYLIN 2901 update Cardinality after truncate table --- .../java/org/apache/kylin/metadata/model/TableExtDesc.java | 13 ++++++++++++- .../hive/cardinality/HiveColumnCardinalityUpdateJob.java | 4 ++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java index 18fefc23b..de9d328b3 100644 --- a/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java +++ b/core-metadata/src/main/java/org/apache/kylin/metadata/model/TableExtDesc.java @@ -99,7 +99,18 @@ public class TableExtDesc extends RootPersistentEntity { } return cardinality.toString(); } - + + public String resetCardinality(){ + StringBuffer cardinality = new StringBuffer(); + int columnSize=this.columnStats.size(); + this.columnStats.clear(); + for (int i = 0;i < columnSize; i++){ + ColumnStats columnStat = new ColumnStats(); + this.columnStats.add(columnStat); + } + return cardinality.toString(); + } + public void setCardinality(String cardinality) { if (null == cardinality) return; diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java index 246822c55..91b9ca23d 100644 --- a/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java +++ b/source-hive/src/main/java/org/apache/kylin/source/hive/cardinality/HiveColumnCardinalityUpdateJob.java @@ -120,6 +120,10 @@ public class HiveColumnCardinalityUpdateJob extends AbstractHadoopJob { tableExt.setCardinality(scardi); metaMgr.saveTableExt(tableExt); } else { + MetadataManager metaMgr = MetadataManager.getInstance(KylinConfig.getInstanceFromEnv()); + TableExtDesc tableExt = metaMgr.getTableExt(tableName); + tableExt.resetCardinality(); + metaMgr.saveTableExt(tableExt); throw new IllegalArgumentException("No cardinality data is collected for table " + tableName); } } -- 2.11.0.windows.1