This is an automated email from the ASF dual-hosted git repository. xxyu pushed a commit to branch kylin-on-parquet-v2 in repository https://gitbox.apache.org/repos/asf/kylin.git
The following commit(s) were added to refs/heads/kylin-on-parquet-v2 by this push: new be783f0 KYLIN-4792 Verify several attribute values of segment in the build/merge test be783f0 is described below commit be783f07342c420ddab3a3450a97802c6ee2d243 Author: yaqian.zhang <598593...@qq.com> AuthorDate: Thu Oct 22 09:18:17 2020 +0800 KYLIN-4792 Verify several attribute values of segment in the build/merge test --- .../java/org/apache/kylin/cube/CubeSegment.java | 4 +++ .../engine/spark/LocalWithSparkSessionTest.java | 32 ++++++++++++++++++++++ .../kylin/engine/spark2/NBuildAndQueryTest.java | 24 ++++++++++++++++ 3 files changed, 60 insertions(+) diff --git a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java index ef2395e..d0224fb 100644 --- a/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java +++ b/core-cube/src/main/java/org/apache/kylin/cube/CubeSegment.java @@ -582,6 +582,10 @@ public class CubeSegment implements IBuildable, ISegment, Serializable { this.cuboidShardNums = newCuboidShards; } + public Map<Long, Short> getCuboidShardNums() { + return this.cuboidShardNums; + } + public int getTotalShards(long cuboidId) { if (totalShards > 0) { return totalShards; diff --git a/kylin-spark-project/kylin-spark-engine/src/test/java/org/apache/kylin/engine/spark/LocalWithSparkSessionTest.java b/kylin-spark-project/kylin-spark-engine/src/test/java/org/apache/kylin/engine/spark/LocalWithSparkSessionTest.java index 9e2328c..863af8f 100644 --- a/kylin-spark-project/kylin-spark-engine/src/test/java/org/apache/kylin/engine/spark/LocalWithSparkSessionTest.java +++ b/kylin-spark-project/kylin-spark-engine/src/test/java/org/apache/kylin/engine/spark/LocalWithSparkSessionTest.java @@ -221,6 +221,15 @@ public class LocalWithSparkSessionTest extends LocalFileMetadataTestCase impleme cleanupSegments(cubeName); ExecutableState state = buildCuboid(cubeName, null); Assert.assertEquals(ExecutableState.SUCCEED, state); + if (cubeName.equals("ci_left_join_cube")) { + CubeManager cubeMgr = CubeManager.getInstance(config); + CubeSegment segment = cubeMgr.reloadCube(cubeName).getSegments().get(0); + Assert.assertEquals(10000, segment.getInputRecords()); + Assert.assertEquals(2103495, segment.getInputRecordsSize()); + Assert.assertTrue(segment.getSizeKB() > 0 ); + Assert.assertEquals(17, segment.getCuboidShardNums().size()); + Assert.assertEquals(leftJoinCubeCuboidShardNums(), segment.getCuboidShardNums()); + } } protected void restoreAllSystemProp() { @@ -328,4 +337,27 @@ public class LocalWithSparkSessionTest extends LocalFileMetadataTestCase impleme } catch (IOException e) { } } + + public Map<Long, Short> leftJoinCubeCuboidShardNums() { + Map<Long, Short> cuboidShardNums = Maps.newConcurrentMap(); + cuboidShardNums.put((long)2097151, (short)1); + cuboidShardNums.put((long)14336, (short)1); + cuboidShardNums.put((long)112640, (short)1); + cuboidShardNums.put((long)79872, (short)1); + cuboidShardNums.put((long)114688, (short)1); + cuboidShardNums.put((long)98304, (short)1); + cuboidShardNums.put((long)65536, (short)1); + cuboidShardNums.put((long)245760, (short)1); + cuboidShardNums.put((long)276480, (short)1); + cuboidShardNums.put((long)262144, (short)1); + cuboidShardNums.put((long)342016, (short)1); + cuboidShardNums.put((long)376832, (short)1); + cuboidShardNums.put((long)360448, (short)1); + cuboidShardNums.put((long)327680, (short)1); + cuboidShardNums.put((long)507904, (short)1); + cuboidShardNums.put((long)1310735, (short)1); + cuboidShardNums.put((long)788464, (short)1); + + return cuboidShardNums; + } } diff --git a/kylin-spark-project/kylin-spark-test/src/test/java/org/apache/kylin/engine/spark2/NBuildAndQueryTest.java b/kylin-spark-project/kylin-spark-test/src/test/java/org/apache/kylin/engine/spark2/NBuildAndQueryTest.java index df72e8a..ddc0e2f 100644 --- a/kylin-spark-project/kylin-spark-test/src/test/java/org/apache/kylin/engine/spark2/NBuildAndQueryTest.java +++ b/kylin-spark-project/kylin-spark-test/src/test/java/org/apache/kylin/engine/spark2/NBuildAndQueryTest.java @@ -221,9 +221,26 @@ public class NBuildAndQueryTest extends LocalWithSparkSessionTest { ExecutableState state; state = buildCuboid(cubeName, new SegmentRange.TSRange(dateToLong("2010-01-01"), dateToLong("2012-01-01"))); Assert.assertEquals(ExecutableState.SUCCEED, state); + if (cubeName.equals("ci_left_join_cube")) { + CubeSegment segment1 = cubeMgr.reloadCube(cubeName).getSegments().get(0); + + Assert.assertEquals(0, segment1.getInputRecords()); + Assert.assertEquals(2103495, segment1.getInputRecordsSize()); + Assert.assertEquals(0, segment1.getSizeKB()); + Assert.assertEquals(17, segment1.getCuboidShardNums().size()); + } state = buildCuboid(cubeName, new SegmentRange.TSRange(dateToLong("2012-01-01"), dateToLong("2015-01-01"))); Assert.assertEquals(ExecutableState.SUCCEED, state); + if (cubeName.equals("ci_left_join_cube")) { + CubeSegment segment2 = cubeMgr.reloadCube(cubeName).getSegments().get(1); + Assert.assertEquals(10000, segment2.getInputRecords()); + Assert.assertEquals(2103495, segment2.getInputRecordsSize()); + Assert.assertTrue(segment2.getSizeKB() > 0); + Assert.assertEquals(17, segment2.getCuboidShardNums().size()); + Assert.assertEquals(leftJoinCubeCuboidShardNums(), segment2.getCuboidShardNums()); + } + // Round 2: Merge two segments state = mergeSegments(cubeName, dateToLong("2010-01-01"), dateToLong("2015-01-01"), true); @@ -231,6 +248,13 @@ public class NBuildAndQueryTest extends LocalWithSparkSessionTest { // validate cube segment info CubeSegment firstSegment = cubeMgr.reloadCube(cubeName).getSegments().get(0); + if (cubeName.equals("ci_left_join_cube")) { + Assert.assertEquals(10000, firstSegment.getInputRecords()); + Assert.assertEquals(4206990, firstSegment.getInputRecordsSize()); + Assert.assertTrue(firstSegment.getSizeKB() > 0); + Assert.assertEquals(17, firstSegment.getCuboidShardNums().size()); + Assert.assertEquals(leftJoinCubeCuboidShardNums(), firstSegment.getCuboidShardNums()); + } Assert.assertEquals(new SegmentRange.TSRange(dateToLong("2010-01-01"), dateToLong("2015-01-01")), firstSegment.getSegRange());