You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@kylin.apache.org by "Shaofeng SHI (JIRA)" <ji...@apache.org> on 2016/11/22 05:32:58 UTC

[jira] [Commented] (KYLIN-1684) query on table "kylin_sales" return empty resultset after cube "kylin_sales_cube" which generated by sample.sh is ready

    [ https://issues.apache.org/jira/browse/KYLIN-1684?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15685753#comment-15685753 ] 

Shaofeng SHI commented on KYLIN-1684:
-------------------------------------

I changed my mind, the option 1 is more reasonable, user need to fix the environment sisue at first; otherwise Kylin would miss such a key information for making a query plan. KYLIN-2221 will correct this.

> query on table "kylin_sales" return empty resultset after cube "kylin_sales_cube" which generated by sample.sh is ready
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: KYLIN-1684
>                 URL: https://issues.apache.org/jira/browse/KYLIN-1684
>             Project: Kylin
>          Issue Type: Bug
>          Components: Query Engine
>    Affects Versions: v1.5.1
>         Environment: cluster:
> hadoop-2.6.0
> hbase-0.98.8
> hive-0.14.0
>            Reporter: wangxianbin
>            Assignee: wangxianbin
>             Fix For: v1.5.3
>
>         Attachments: 1.5.1-release-hotfix-KYLIN-1684-query-on-table-kylin_sales-return-empty-r.patch, log for Build Base Cuboid Data.png, log when run query.png
>
>
> there is a check for "InputRecords" in CubeStorageQuery search method which seem like unnecessary, as follow:
>         List<CubeSegmentScanner> scanners = Lists.newArrayList();
>         for (CubeSegment cubeSeg : cubeInstance.getSegments(SegmentStatusEnum.READY)) {
>             CubeSegmentScanner scanner;
>             if (cubeSeg.getInputRecords() == 0) {
>                 logger.info("Skip cube segment {} because its input record is 0", cubeSeg);
>                 continue;
>             }
>             scanner = new CubeSegmentScanner(cubeSeg, cuboid, dimensionsD, groupsD, metrics, filterD, !isExactAggregation);
>             scanners.add(scanner);
>         }
>         if (scanners.isEmpty())
>             return ITupleIterator.EMPTY_TUPLE_ITERATOR;
>         return new SequentialCubeTupleIterator(scanners, cuboid, dimensionsD, metrics, returnTupleInfo, context);
> this check will cause query return empty resultset, even there is data in storage engine.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)