minor, fix 'CREATE-TABLE-AS-SELECT cannot create external table'
Project: http://git-wip-us.apache.org/repos/asf/kylin/repo Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/83fb144f Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/83fb144f Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/83fb144f Branch: refs/heads/KYLIN-2606 Commit: 83fb144f2c3df127a2b893f96a05507b8de01e7f Parents: 81ed301 Author: Cheng Wang <cheng.w...@kyligence.io> Authored: Tue May 23 19:41:21 2017 +0800 Committer: hongbin ma <m...@kyligence.io> Committed: Tue May 23 19:46:02 2017 +0800 ---------------------------------------------------------------------- .../java/org/apache/kylin/source/hive/HiveMRInput.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/kylin/blob/83fb144f/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java ---------------------------------------------------------------------- diff --git a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java index dffba8a..15d4456 100644 --- a/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java +++ b/source-hive/src/main/java/org/apache/kylin/source/hive/HiveMRInput.java @@ -190,14 +190,16 @@ public class HiveMRInput implements IMRInput { HiveCmdBuilder hiveCmdBuilder = new HiveCmdBuilder(); hiveCmdBuilder.addStatement(hiveInitStatements); for (TableDesc lookUpTableDesc : lookupViewsTables) { + String identity = lookUpTableDesc.getIdentity(); + String intermediate = lookUpTableDesc.getMaterializedName(); if (lookUpTableDesc.isView()) { StringBuilder createIntermediateTableHql = new StringBuilder(); - createIntermediateTableHql.append("DROP TABLE IF EXISTS " + lookUpTableDesc.getMaterializedName() + ";\n"); - createIntermediateTableHql.append("CREATE EXTERNAL TABLE IF NOT EXISTS " + lookUpTableDesc.getMaterializedName() + "\n"); - createIntermediateTableHql.append("LOCATION '" + jobWorkingDir + "/" + lookUpTableDesc.getMaterializedName() + "'\n"); - createIntermediateTableHql.append("AS SELECT * FROM " + lookUpTableDesc.getIdentity() + ";\n"); + createIntermediateTableHql.append("DROP TABLE IF EXISTS " + intermediate + ";\n"); + createIntermediateTableHql.append("CREATE EXTERNAL TABLE IF NOT EXISTS " + intermediate + " LIKE " + identity + "\n"); + createIntermediateTableHql.append("LOCATION '" + jobWorkingDir + "/" + intermediate + "';\n"); + createIntermediateTableHql.append("INSERT OVERWRITE TABLE " + intermediate + " SELECT * FROM " + identity + ";\n"); hiveCmdBuilder.addStatement(createIntermediateTableHql.toString()); - hiveViewIntermediateTables = hiveViewIntermediateTables + lookUpTableDesc.getMaterializedName() + ";"; + hiveViewIntermediateTables = hiveViewIntermediateTables + intermediate + ";"; } }