You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by li...@apache.org on 2016/12/07 04:29:22 UTC

[05/50] [abbrv] kylin git commit: KYLIN-1875 A good snowflake sample data, and rename 'kylin_metadata' to 'kylin_default_instance'

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/cube_desc/kylin_sales_cube.json b/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
index eb17922..48eef46 100644
--- a/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
+++ b/examples/sample_cube/template/cube_desc/kylin_sales_cube.json
@@ -6,27 +6,32 @@
   "description" : null,
   "null_string" : null,
   "dimensions" : [ {
+    "name" : "TRANS_ID",
+    "table" : "DEFAULT.KYLIN_SALES",
+    "column" : "TRANS_ID",
+    "derived" : null
+  }, {
     "name" : "CAL_DT",
     "table" : "DEFAULT.KYLIN_CAL_DT",
     "column" : "{FK}",
-    "derived" : [ "WEEK_BEG_DT" ]
+    "derived" : [ "WEEK_BEG_DT", "MONTH_BEG_DT", "YEAR_BEG_DT" ]
   }, {
     "name" : "CATEGORY",
     "table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
     "column" : "{FK}",
     "derived" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3" ]
   }, {
-    "name" : "CATEGORY_HIERARCHY",
+    "name" : "META_CATEG_NAME",
     "table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
     "column" : "META_CATEG_NAME",
     "derived" : null
   }, {
-    "name" : "CATEGORY_HIERARCHY",
+    "name" : "CATEG_LVL2_NAME",
     "table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
     "column" : "CATEG_LVL2_NAME",
     "derived" : null
   }, {
-    "name" : "CATEGORY_HIERARCHY",
+    "name" : "CATEG_LVL3_NAME",
     "table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
     "column" : "CATEG_LVL3_NAME",
     "derived" : null
@@ -36,14 +41,54 @@
     "column" : "LSTG_FORMAT_NAME",
     "derived" : null
   }, {
-    "name" : "USER_ID",
+    "name" : "SELLER_ID",
     "table" : "DEFAULT.KYLIN_SALES",
-    "column" : "USER_ID",
+    "column" : "SELLER_ID",
     "derived" : null
   }, {
-    "name" : "REGION",
+    "name" : "BUYER_ID",
     "table" : "DEFAULT.KYLIN_SALES",
-    "column" : "REGION",
+    "column" : "BUYER_ID",
+    "derived" : null
+  }, {
+    "name" : "ACCOUNT_BUYER_LEVEL",
+    "table" : "BUYER_ACCOUNT",
+    "column" : "ACCOUNT_BUYER_LEVEL",
+    "derived" : null
+  }, {
+    "name" : "ACCOUNT_SELLER_LEVEL",
+    "table" : "SELLER_ACCOUNT",
+    "column" : "ACCOUNT_SELLER_LEVEL",
+    "derived" : null
+  }, {
+    "name" : "BUYER_COUNTRY",
+    "table" : "BUYER_ACCOUNT",
+    "column" : "ACCOUNT_COUNTRY",
+    "derived" : null
+  }, {
+    "name" : "SELLER_COUNTRY",
+    "table" : "SELLER_ACCOUNT",
+    "column" : "ACCOUNT_COUNTRY",
+    "derived" : null
+  }, {
+    "name" : "BUYER_COUNTRY_NAME",
+    "table" : "BUYER_COUNTRY",
+    "column" : "NAME",
+    "derived" : null
+  }, {
+    "name" : "SELLER_COUNTRY_NAME",
+    "table" : "SELLER_COUNTRY",
+    "column" : "NAME",
+    "derived" : null
+  }, {
+    "name" : "OPS_USER_ID",
+    "table" : "DEFAULT.KYLIN_SALES",
+    "column" : "OPS_USER_ID",
+    "derived" : null
+  }, {
+    "name" : "OPS_REGION",
+    "table" : "DEFAULT.KYLIN_SALES",
+    "column" : "OPS_REGION",
     "derived" : null
   } ],
   "measures" : [ {
@@ -56,8 +101,7 @@
         "next_parameter" : null
       },
       "returntype" : "decimal(19,4)"
-    },
-    "dependent_measure_ref" : null
+    }
   }, {
     "name" : "GMV_MIN",
     "function" : {
@@ -68,8 +112,7 @@
         "next_parameter" : null
       },
       "returntype" : "decimal(19,4)"
-    },
-    "dependent_measure_ref" : null
+    }
   }, {
     "name" : "GMV_MAX",
     "function" : {
@@ -80,8 +123,7 @@
         "next_parameter" : null
       },
       "returntype" : "decimal(19,4)"
-    },
-    "dependent_measure_ref" : null
+    }
   }, {
     "name" : "TRANS_CNT",
     "function" : {
@@ -92,8 +134,7 @@
         "next_parameter" : null
       },
       "returntype" : "bigint"
-    },
-    "dependent_measure_ref" : null
+    }
   }, {
     "name" : "SELLER_CNT_HLL",
     "function" : {
@@ -104,20 +145,7 @@
         "next_parameter" : null
       },
       "returntype" : "hllc(10)"
-    },
-    "dependent_measure_ref" : null
-  }, {
-    "name" : "SELLER_FORMAT_CNT",
-    "function" : {
-      "expression" : "COUNT_DISTINCT",
-      "parameter" : {
-        "type" : "column",
-        "value" : "LSTG_FORMAT_NAME",
-        "next_parameter" : null
-      },
-      "returntype" : "hllc(10)"
-    },
-    "dependent_measure_ref" : null
+    }
   }, {
     "name" : "TOP_SELLER",
     "function" : {
@@ -132,13 +160,21 @@
         }
       },
       "returntype" : "topn(100)"
-    },
-    "dependent_measure_ref" : null
+    }
   } ],
   "rowkey" : {
     "rowkey_columns" : [ {
+      "column" : "BUYER_ID",
+      "encoding" : "integer:4"
+    }, {
+      "column" : "SELLER_ID",
+      "encoding" : "integer:4"
+    }, {
+      "column" : "TRANS_ID",
+      "encoding" : "integer:4"
+    }, {
       "column" : "PART_DT",
-      "encoding" : "dict"
+      "encoding" : "date"
     }, {
       "column" : "LEAF_CATEG_ID",
       "encoding" : "dict"
@@ -152,17 +188,35 @@
       "column" : "CATEG_LVL3_NAME",
       "encoding" : "dict"
     }, {
-      "column" : "LSTG_FORMAT_NAME",
-      "encoding" : "fixed_length:12"
+      "column" : "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL",
+      "encoding" : "dict"
+    }, {
+      "column" : "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL",
+      "encoding" : "dict"
     }, {
-      "column" : "USER_ID",
+      "column" : "BUYER_ACCOUNT.ACCOUNT_COUNTRY",
       "encoding" : "dict"
     }, {
-      "column" : "REGION",
+      "column" : "SELLER_ACCOUNT.ACCOUNT_COUNTRY",
+      "encoding" : "dict"
+    }, {
+      "column" : "BUYER_COUNTRY.NAME",
+      "encoding" : "dict"
+    }, {
+      "column" : "SELLER_COUNTRY.NAME",
+      "encoding" : "dict"
+    }, {
+      "column" : "LSTG_FORMAT_NAME",
       "encoding" : "dict"
     }, {
       "column" : "LSTG_SITE_ID",
       "encoding" : "dict"
+    }, {
+      "column" : "OPS_USER_ID",
+      "encoding" : "dict"
+    }, {
+      "column" : "OPS_REGION",
+      "encoding" : "dict"
     } ]
   },
   "hbase_mapping" : {
@@ -170,21 +224,34 @@
       "name" : "F1",
       "columns" : [ {
         "qualifier" : "M",
-        "measure_refs" : [ "GMV_SUM", "GMV_MIN", "GMV_MAX", "TRANS_CNT", "TOP_SELLER" ]
+        "measure_refs" : [ "GMV_SUM", "GMV_MIN", "GMV_MAX", "TRANS_CNT" ]
       } ]
     }, {
       "name" : "F2",
       "columns" : [ {
         "qualifier" : "M",
-        "measure_refs" : [ "SELLER_CNT_HLL", "SELLER_FORMAT_CNT" ]
+        "measure_refs" : [ "SELLER_CNT_HLL", "TOP_SELLER" ]
       } ]
     } ]
   },
   "aggregation_groups" : [ {
-    "includes" : [ "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "META_CATEG_NAME", "PART_DT" ],
+    "includes" : [ "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION", 
+                   "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
+    "select_rule" : {
+      "hierarchy_dims" : [ [ "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID" ] ],
+      "mandatory_dims" : [ "PART_DT" ],
+      "joint_dims" : [ [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME" ], [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_COUNTRY.NAME" ],
+                       [ "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL" ], [ "LSTG_FORMAT_NAME", "LSTG_SITE_ID" ], [ "OPS_USER_ID", "OPS_REGION" ] ]
+    }
+  }, {
+    "includes" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID", 
+                   "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION", 
+                   "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
     "select_rule" : {
-      "hierarchy_dims" : [ [ "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME" ] ],
-      "mandatory_dims" : [ ],
+      "hierarchy_dims" : [ ],
+      "mandatory_dims" : [ "TRANS_ID", "BUYER_ID", "SELLER_ID", 
+                   "PART_DT", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION", 
+                   "BUYER_ACCOUNT.ACCOUNT_BUYER_LEVEL", "SELLER_ACCOUNT.ACCOUNT_SELLER_LEVEL", "BUYER_ACCOUNT.ACCOUNT_COUNTRY", "SELLER_ACCOUNT.ACCOUNT_COUNTRY", "BUYER_COUNTRY.NAME", "SELLER_COUNTRY.NAME" ],
       "joint_dims" : [ ]
     }
   } ],
@@ -194,6 +261,8 @@
   "auto_merge_time_ranges" : null,
   "retention_range" : 0,
   "engine_type" : %default_engine_type%,
-  "storage_type" : %default_storage_type%,
-  "override_kylin_properties" : { }
+  "storage_type" : %default_engine_type%,
+  "override_kylin_properties" : {
+    "kylin.cube.aggrgroup.is-mandatory-only-valid" : "true"
+  }
 }

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/examples/sample_cube/template/model_desc/kylin_sales_model.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/model_desc/kylin_sales_model.json b/examples/sample_cube/template/model_desc/kylin_sales_model.json
index 3c4fa5a..2d3cfb6 100644
--- a/examples/sample_cube/template/model_desc/kylin_sales_model.json
+++ b/examples/sample_cube/template/model_desc/kylin_sales_model.json
@@ -15,16 +15,60 @@
       "primary_key" : [ "LEAF_CATEG_ID", "SITE_ID" ],
       "foreign_key" : [ "LEAF_CATEG_ID", "LSTG_SITE_ID" ]
     }
+  }, {
+    "table" : "DEFAULT.KYLIN_ACCOUNT",
+    "alias" : "BUYER_ACCOUNT",
+    "join" : {
+      "type" : "inner",
+      "primary_key" : [ "ACCOUNT_ID" ],
+      "foreign_key" : [ "BUYER_ID" ]
+    }
+  }, {
+    "table" : "DEFAULT.KYLIN_ACCOUNT",
+    "alias" : "SELLER_ACCOUNT",
+    "join" : {
+      "type" : "inner",
+      "primary_key" : [ "ACCOUNT_ID" ],
+      "foreign_key" : [ "SELLER_ID" ]
+    }
+  }, {
+    "table" : "DEFAULT.KYLIN_COUNTRY",
+    "alias" : "BUYER_COUNTRY",
+    "join" : {
+      "type" : "inner",
+      "primary_key" : [ "COUNTRY" ],
+      "foreign_key" : [ "BUYER_ACCOUNT.ACCOUNT_COUNTRY" ]
+    }
+  }, {
+    "table" : "DEFAULT.KYLIN_COUNTRY",
+    "alias" : "SELLER_COUNTRY",
+    "join" : {
+      "type" : "inner",
+      "primary_key" : [ "COUNTRY" ],
+      "foreign_key" : [ "SELLER_ACCOUNT.ACCOUNT_COUNTRY" ]
+    }
   }],
   "dimensions" : [ {
+    "table" : "DEFAULT.KYLIN_SALES",
+    "columns" : [ "TRANS_ID", "SELLER_ID", "BUYER_ID", "PART_DT", "LEAF_CATEG_ID", "LSTG_FORMAT_NAME", "LSTG_SITE_ID", "OPS_USER_ID", "OPS_REGION" ]
+  }, {
     "table" : "DEFAULT.KYLIN_CAL_DT",
     "columns" : ["CAL_DT", "WEEK_BEG_DT"]
   }, {
     "table" : "DEFAULT.KYLIN_CATEGORY_GROUPINGS",
-    "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME" ]
+    "columns" : [ "USER_DEFINED_FIELD1", "USER_DEFINED_FIELD3", "META_CATEG_NAME", "CATEG_LVL2_NAME", "CATEG_LVL3_NAME", "LEAF_CATEG_ID", "SITE_ID" ]
   }, {
-    "table" : "DEFAULT.KYLIN_SALES",
-    "columns" : [ "LSTG_FORMAT_NAME", "SELLER_ID", "PART_DT", "USER_ID", "REGION" ]
+    "table" : "BUYER_ACCOUNT",
+    "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+  }, {
+    "table" : "SELLER_ACCOUNT",
+    "columns" : [ "ACCOUNT_ID", "ACCOUNT_BUYER_LEVEL", "ACCOUNT_SELLER_LEVEL", "ACCOUNT_COUNTRY", "ACCOUNT_CONTACT" ]
+  }, {
+    "table" : "BUYER_COUNTRY",
+    "columns" : [ "COUNTRY", "NAME" ]
+  }, {
+    "table" : "SELLER_COUNTRY",
+    "columns" : [ "COUNTRY", "NAME" ]
   } ],
   "metrics": [
     "PRICE",

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json b/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
new file mode 100644
index 0000000..f1b7755
--- /dev/null
+++ b/examples/sample_cube/template/table/DEFAULT.KYLIN_ACCOUNT.json
@@ -0,0 +1,28 @@
+{
+  "uuid" : "f386e39e-40d7-44c2-9eb3-41b365632231",
+ 
+  "name" : "KYLIN_ACCOUNT",
+  "columns" : [ {
+    "id" : "1",
+    "name" : "ACCOUNT_ID",
+    "datatype" : "bigint"
+  }, {
+    "id" : "2",
+    "name" : "ACCOUNT_BUYER_LEVEL",
+    "datatype" : "int"
+  }, {
+    "id" : "3",
+    "name" : "ACCOUNT_SELLER_LEVEL",
+    "datatype" : "int"
+  }, {
+    "id" : "4",
+    "name" : "ACCOUNT_COUNTRY",
+    "datatype" : "string"
+  }, {
+    "id" : "5",
+    "name" : "ACCOUNT_CONTACT",
+    "datatype" : "string"
+  } ],
+  "database" : "DEFAULT",
+  "last_modified" : 0
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
----------------------------------------------------------------------
diff --git a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
index fbeafb3..9286215 100644
--- a/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
+++ b/examples/sample_cube/template/table/DEFAULT.KYLIN_SALES.json
@@ -40,19 +40,15 @@
     "datatype" : "bigint"
   }, {
     "id" : "10",
-    "name" : "BUYER_COUNTRY",
-    "datatype" : "string"
+    "name" : "BUYER_ID",
+    "datatype" : "bigint"
   }, {
     "id" : "11",
-    "name" : "SELLER_COUNTRY",
+    "name" : "OPS_USER_ID",
     "datatype" : "string"
   }, {
     "id" : "12",
-    "name" : "USER_ID",
-    "datatype" : "string"
-  }, {
-    "id" : "13",
-    "name" : "REGION",
+    "name" : "OPS_REGION",
     "datatype" : "string"
   } ],
   "database" : "DEFAULT",

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/examples/test_case_data/sandbox/kylin.properties
----------------------------------------------------------------------
diff --git a/examples/test_case_data/sandbox/kylin.properties b/examples/test_case_data/sandbox/kylin.properties
index dc7132a..20bc427 100644
--- a/examples/test_case_data/sandbox/kylin.properties
+++ b/examples/test_case_data/sandbox/kylin.properties
@@ -39,7 +39,7 @@ kylin.source.hive.client=cli
 ### STORAGE ###
 
 # The metadata store in hbase
-kylin.metadata.url=kylin_metadata@hbase
+kylin.metadata.url=kylin_default_instance@hbase
 
 # The storage for final cube file in hbase
 kylin.storage.url=hbase

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
----------------------------------------------------------------------
diff --git a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
index 4c0a1dc..6869858 100644
--- a/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
+++ b/query/src/main/java/org/apache/kylin/query/relnode/OLAPJoinRel.java
@@ -70,6 +70,7 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
 
     private OLAPContext context;
     private ColumnRowType columnRowType;
+    private int columnRowTypeLeftRightCut;
     private boolean isTopJoin;
     private boolean hasSubQuery;
 
@@ -180,6 +181,8 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
         ColumnRowType leftColumnRowType = olapLeft.getColumnRowType();
         columns.addAll(leftColumnRowType.getAllColumns());
 
+        this.columnRowTypeLeftRightCut = columns.size();
+
         OLAPRel olapRight = (OLAPRel) this.right;
         ColumnRowType rightColumnRowType = olapRight.getColumnRowType();
         columns.addAll(rightColumnRowType.getAllColumns());
@@ -198,21 +201,13 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
         List<TblColRef> pkCols = new ArrayList<TblColRef>();
         List<String> fks = new ArrayList<String>();
         List<TblColRef> fkCols = new ArrayList<TblColRef>();
-        String factTable = context.firstTableScan.getTableName();
         for (Map.Entry<TblColRef, TblColRef> columnPair : joinColumns.entrySet()) {
             TblColRef fromCol = columnPair.getKey();
             TblColRef toCol = columnPair.getValue();
-            if (factTable.equalsIgnoreCase(fromCol.getTable())) {
-                fks.add(fromCol.getName());
-                fkCols.add(fromCol);
-                pks.add(toCol.getName());
-                pkCols.add(toCol);
-            } else {
-                fks.add(toCol.getName());
-                fkCols.add(toCol);
-                pks.add(fromCol.getName());
-                pkCols.add(fromCol);
-            }
+            fks.add(fromCol.getName());
+            fkCols.add(fromCol);
+            pks.add(toCol.getName());
+            pkCols.add(toCol);
         }
 
         JoinDesc join = new JoinDesc();
@@ -237,7 +232,11 @@ public class OLAPJoinRel extends EnumerableJoin implements OLAPRel {
             TblColRef col0 = columnRowType.getColumnByIndex(op0.getIndex());
             RexInputRef op1 = (RexInputRef) operands.get(1);
             TblColRef col1 = columnRowType.getColumnByIndex(op1.getIndex());
-            joinColumns.put(col0, col1);
+            // map left => right
+            if (op0.getIndex() < columnRowTypeLeftRightCut)
+                joinColumns.put(col0, col1);
+            else
+                joinColumns.put(col1, col0);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
index 38f299e..ea68855 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/AclHBaseStorage.java
@@ -25,7 +25,6 @@ import org.apache.hadoop.hbase.client.HTableInterface;
 /**
  */
 public interface AclHBaseStorage {
-    String DEFAULT_TABLE_PREFIX = "kylin_metadata";
 
     String ACL_INFO_FAMILY = "i";
     String ACL_ACES_FAMILY = "a";

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
index ab18029..1d520c4 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/security/RealAclHBaseStorage.java
@@ -38,10 +38,11 @@ public class RealAclHBaseStorage implements AclHBaseStorage {
 
     @Override
     public String prepareHBaseTable(Class<?> clazz) throws IOException {
-        String metadataUrl = KylinConfig.getInstanceFromEnv().getMetadataUrl();
+        KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
+        String metadataUrl = kylinConfig.getMetadataUrl();
         int cut = metadataUrl.indexOf('@');
-        String tableNameBase = cut < 0 ? DEFAULT_TABLE_PREFIX : metadataUrl.substring(0, cut);
         hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1);
+        String tableNameBase = kylinConfig.getMetadataUrlPrefix();
 
         if (clazz == AclService.class) {
             aclTableName = tableNameBase + ACL_TABLE_NAME;

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
----------------------------------------------------------------------
diff --git a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
index 81af044..4389a5d 100644
--- a/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
+++ b/server-base/src/main/java/org/apache/kylin/rest/service/QueryService.java
@@ -104,7 +104,6 @@ public class QueryService extends BasicService {
     private static final Logger logger = LoggerFactory.getLogger(QueryService.class);
 
     public static final String USER_QUERY_FAMILY = "q";
-    private static final String DEFAULT_TABLE_PREFIX = "kylin_metadata";
     private static final String USER_TABLE_NAME = "_user";
     private static final String USER_QUERY_COLUMN = "c";
 
@@ -129,11 +128,12 @@ public class QueryService extends BasicService {
     }
 
     public QueryService() {
-        String metadataUrl = KylinConfig.getInstanceFromEnv().getMetadataUrl();
+        KylinConfig kylinConfig = KylinConfig.getInstanceFromEnv();
+        String metadataUrl = kylinConfig.getMetadataUrl();
         // split TABLE@HBASE_URL
         int cut = metadataUrl.indexOf('@');
-        String tableNameBase = cut < 0 ? DEFAULT_TABLE_PREFIX : metadataUrl.substring(0, cut);
         hbaseUrl = cut < 0 ? metadataUrl : metadataUrl.substring(cut + 1);
+        String tableNameBase = kylinConfig.getMetadataUrlPrefix();
         userTableName = tableNameBase + USER_TABLE_NAME;
 
         badQueryDetector.start();

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
index 82cc93c..1d19983 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/HBaseResourceStore.java
@@ -58,7 +58,7 @@ public class HBaseResourceStore extends ResourceStore {
 
     private static final Logger logger = LoggerFactory.getLogger(HBaseResourceStore.class);
 
-    private static final String DEFAULT_TABLE_NAME = "kylin_metadata";
+    private static final String DEFAULT_TABLE_NAME = "kylin_default_instance";
     private static final String FAMILY = "f";
     private static final byte[] B_FAMILY = Bytes.toBytes(FAMILY);
     private static final String COLUMN = "c";

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
index 90080b6..9fe5a23 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/util/StorageCleanupJob.java
@@ -185,7 +185,7 @@ public class StorageCleanupJob extends AbstractApplication {
         // GlobFilter filter = new
         // GlobFilter(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()
         // + "/kylin-.*");
-        // TODO: when first use, /kylin/kylin_metadata does not exist.
+        // TODO: when first use, /kylin/kylin_default_instance does not exist.
         FileStatus[] fStatus = fs.listStatus(new Path(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()));
         for (FileStatus status : fStatus) {
             String path = status.getPath().getName();

http://git-wip-us.apache.org/repos/asf/kylin/blob/a1a2a4a6/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
----------------------------------------------------------------------
diff --git a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
index b4accac..05e0142 100644
--- a/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
+++ b/tool/src/main/java/org/apache/kylin/tool/StorageCleanupJob.java
@@ -190,7 +190,7 @@ public class StorageCleanupJob extends AbstractApplication {
         // GlobFilter filter = new
         // GlobFilter(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()
         // + "/kylin-.*");
-        // TODO: when first use, /kylin/kylin_metadata does not exist.
+        // TODO: when first use, /kylin/kylin_default_instance does not exist.
         FileStatus[] fStatus = fs.listStatus(new Path(KylinConfig.getInstanceFromEnv().getHdfsWorkingDirectory()));
         for (FileStatus status : fStatus) {
             String path = status.getPath().getName();