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

kylin git commit: KYLIN-1595 add mass distinct count query

Repository: kylin
Updated Branches:
  refs/heads/master 59477501c -> 205471998


KYLIN-1595 add mass distinct count query


Project: http://git-wip-us.apache.org/repos/asf/kylin/repo
Commit: http://git-wip-us.apache.org/repos/asf/kylin/commit/20547199
Tree: http://git-wip-us.apache.org/repos/asf/kylin/tree/20547199
Diff: http://git-wip-us.apache.org/repos/asf/kylin/diff/20547199

Branch: refs/heads/master
Commit: 205471998d551bf5bc1988e0da73f5490f0a622c
Parents: 5947750
Author: Hongbin Ma <ma...@apache.org>
Authored: Mon Apr 18 22:24:44 2016 +0800
Committer: Hongbin Ma <ma...@apache.org>
Committed: Mon Apr 18 22:24:52 2016 +0800

----------------------------------------------------------------------
 .../impl/threadpool/DefaultSchedulerTest.java   |  2 --
 .../apache/kylin/query/ITMassInQueryTest.java   | 27 ++++++++++++++++-
 .../query/sql_massin_distinct/query01.sql       | 31 ++++++++++++++++++++
 3 files changed, 57 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/20547199/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
----------------------------------------------------------------------
diff --git a/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java b/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
index 6acbbe5..df521f9 100644
--- a/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
+++ b/core-job/src/test/java/org/apache/kylin/job/impl/threadpool/DefaultSchedulerTest.java
@@ -37,12 +37,10 @@ import org.apache.kylin.job.SucceedTestExecutable;
 import org.apache.kylin.job.execution.DefaultChainedExecutable;
 import org.apache.kylin.job.execution.ExecutableState;
 import org.junit.Assert;
-import org.junit.Ignore;
 import org.junit.Test;
 
 /**
  */
-@Ignore
 public class DefaultSchedulerTest extends BaseSchedulerTest {
 
     @Test

http://git-wip-us.apache.org/repos/asf/kylin/blob/20547199/kylin-it/src/test/java/org/apache/kylin/query/ITMassInQueryTest.java
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/java/org/apache/kylin/query/ITMassInQueryTest.java b/kylin-it/src/test/java/org/apache/kylin/query/ITMassInQueryTest.java
index a92e298..5f2db43 100644
--- a/kylin-it/src/test/java/org/apache/kylin/query/ITMassInQueryTest.java
+++ b/kylin-it/src/test/java/org/apache/kylin/query/ITMassInQueryTest.java
@@ -63,7 +63,7 @@ public class ITMassInQueryTest extends KylinTestBase {
     public void setup() throws Exception {
 
         ITKylinQueryTest.clean();
-        ITKylinQueryTest.joinType = "inner";
+        ITKylinQueryTest.joinType = "left";
         ITKylinQueryTest.setupAll();
 
         Configuration hconf = HadoopUtil.getCurrentConfiguration();
@@ -96,6 +96,31 @@ public class ITMassInQueryTest extends KylinTestBase {
         compare("src/test/resources/query/sql_massin", null, true);
     }
 
+    @Test
+    public void testMassInWithDistinctCount() throws Exception {
+        run("src/test/resources/query/sql_massin_distinct", null, true);
+    }
+
+    protected void run(String queryFolder, String[] exclusiveQuerys, boolean needSort) throws Exception {
+        printInfo("---------- test folder: " + queryFolder);
+        Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys);
+
+        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), ".sql");
+        for (File sqlFile : sqlFiles) {
+            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
+            if (exclusiveSet.contains(queryName)) {
+                continue;
+            }
+            String sql = getTextFromFile(sqlFile);
+
+            // execute Kylin
+            printInfo("Query Result from Kylin - " + queryName + "  (" + queryFolder + ")");
+            IDatabaseConnection kylinConn = new DatabaseConnection(cubeConnection);
+            ITable kylinTable = executeQuery(kylinConn, queryName, sql, needSort);
+
+        }
+    }
+
     protected void compare(String queryFolder, String[] exclusiveQuerys, boolean needSort) throws Exception {
         printInfo("---------- test folder: " + queryFolder);
         Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys);

http://git-wip-us.apache.org/repos/asf/kylin/blob/20547199/kylin-it/src/test/resources/query/sql_massin_distinct/query01.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_massin_distinct/query01.sql b/kylin-it/src/test/resources/query/sql_massin_distinct/query01.sql
new file mode 100644
index 0000000..70afa87
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_massin_distinct/query01.sql
@@ -0,0 +1,31 @@
+--
+-- Licensed to the Apache Software Foundation (ASF) under one
+-- or more contributor license agreements.  See the NOTICE file
+-- distributed with this work for additional information
+-- regarding copyright ownership.  The ASF licenses this file
+-- to you under the Apache License, Version 2.0 (the
+-- "License"); you may not use this file except in compliance
+-- with the License.  You may obtain a copy of the License at
+--
+--     http://www.apache.org/licenses/LICENSE-2.0
+--
+-- Unless required by applicable law or agreed to in writing, software
+-- distributed under the License is distributed on an "AS IS" BASIS,
+-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+-- See the License for the specific language governing permissions and
+-- limitations under the License.
+--
+
+SELECT 
+  count(*) as TRANS_CNT ,
+  count(DISTINCT test_kylin_fact.SELLER_ID),
+ FROM test_kylin_fact 
+ inner JOIN edw.test_cal_dt as test_cal_dt 
+ ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt 
+ inner JOIN test_category_groupings 
+ ON test_kylin_fact.leaf_categ_id = test_category_groupings.leaf_categ_id AND test_kylin_fact.lstg_site_id = test_category_groupings.site_id 
+ inner JOIN edw.test_sites as test_sites 
+ ON test_kylin_fact.lstg_site_id = test_sites.site_id 
+ inner JOIN edw.test_seller_type_dim as test_seller_type_dim 
+ ON test_kylin_fact.slr_segment_cd = test_seller_type_dim.seller_type_cd 
+ where massin(test_kylin_fact.SELLER_ID,'vip_customers')