You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kylin.apache.org by sh...@apache.org on 2016/11/02 05:44:59 UTC

[1/2] kylin git commit: KYLIN-2024 kylin TopN only support the first measure

Repository: kylin
Updated Branches:
  refs/heads/v1.6.0-rc1 eaaaf2f7b -> b6f608f7e


KYLIN-2024 kylin TopN only support the first measure


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

Branch: refs/heads/v1.6.0-rc1
Commit: 1d8e8e5389dae3960d9540dea68321a0f8b0cfb8
Parents: eaaaf2f
Author: shaofengshi <sh...@apache.org>
Authored: Wed Nov 2 13:20:10 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Wed Nov 2 13:42:06 2016 +0800

----------------------------------------------------------------------
 .../kylin/measure/topn/TopNMeasureType.java      | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/1d8e8e53/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
----------------------------------------------------------------------
diff --git a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
index 8c98672..7e788e4 100644
--- a/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
+++ b/core-metadata/src/main/java/org/apache/kylin/measure/topn/TopNMeasureType.java
@@ -39,8 +39,8 @@ import org.apache.kylin.metadata.datatype.DataTypeSerializer;
 import org.apache.kylin.metadata.model.FunctionDesc;
 import org.apache.kylin.metadata.model.MeasureDesc;
 import org.apache.kylin.metadata.model.TblColRef;
-import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.realization.CapabilityResult.CapabilityInfluence;
+import org.apache.kylin.metadata.realization.SQLDigest;
 import org.apache.kylin.metadata.tuple.Tuple;
 import org.apache.kylin.metadata.tuple.TupleInfo;
 import org.slf4j.Logger;
@@ -307,15 +307,16 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> {
 
     @Override
     public void adjustSqlDigest(List<MeasureDesc> measureDescs, SQLDigest sqlDigest) {
+        if (sqlDigest.aggregations.size() > 1) {
+            return;
+        }
+
         for (MeasureDesc measureDesc : measureDescs) {
             FunctionDesc topnFunc = measureDesc.getFunction();
             List<TblColRef> topnLiteralCol = getTopNLiteralColumn(topnFunc);
 
-            if (sqlDigest.groupbyColumns.containsAll(topnLiteralCol) == false)
-                return;
-
-            if (sqlDigest.aggregations.size() > 1) {
-                return;
+            if (sqlDigest.groupbyColumns.containsAll(topnLiteralCol) == false) {
+                continue;
             }
 
             if (sqlDigest.aggregations.size() > 0) {
@@ -324,12 +325,18 @@ public class TopNMeasureType extends MeasureType<TopNCounter<ByteArray>> {
                     logger.warn("When query with topN, only SUM/Count function is allowed.");
                     return;
                 }
+
+                if (isTopNCompatibleSum(measureDesc.getFunction(), origFunc) == false) {
+                    continue;
+                }
+
                 logger.info("Rewrite function " + origFunc + " to " + topnFunc);
             }
 
             sqlDigest.aggregations = Lists.newArrayList(topnFunc);
             sqlDigest.groupbyColumns.removeAll(topnLiteralCol);
             sqlDigest.metricColumns.addAll(topnLiteralCol);
+            break;
         }
     }
 


[2/2] kylin git commit: KYLIN-2147 Move the creation of HTable after cube be built

Posted by sh...@apache.org.
KYLIN-2147 Move the creation of HTable after cube be built

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

Branch: refs/heads/v1.6.0-rc1
Commit: b6f608f7e145b32f2c9c50bb2b719b40c1c2eb8b
Parents: 1d8e8e5
Author: shaofengshi <sh...@apache.org>
Authored: Wed Nov 2 13:39:26 2016 +0800
Committer: shaofengshi <sh...@apache.org>
Committed: Wed Nov 2 13:42:14 2016 +0800

----------------------------------------------------------------------
 .../apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kylin/blob/b6f608f7/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java
----------------------------------------------------------------------
diff --git a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java
index c4df354..a063efe 100644
--- a/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java
+++ b/storage-hbase/src/main/java/org/apache/kylin/storage/hbase/steps/HBaseMROutput2Transition.java
@@ -49,11 +49,11 @@ public class HBaseMROutput2Transition implements IMROutput2 {
 
             @Override
             public void addStepPhase2_BuildDictionary(DefaultChainedExecutable jobFlow) {
-                jobFlow.addTask(steps.createCreateHTableStepWithStats(jobFlow.getId()));
             }
 
             @Override
             public void addStepPhase3_BuildCube(DefaultChainedExecutable jobFlow) {
+                jobFlow.addTask(steps.createCreateHTableStepWithStats(jobFlow.getId()));
                 jobFlow.addTask(steps.createConvertCuboidToHfileStep(jobFlow.getId()));
                 jobFlow.addTask(steps.createBulkLoadStep(jobFlow.getId()));
             }