[
https://issues.apache.org/jira/browse/KYLIN-1278?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Shaofeng SHI updated KYLIN-1278:
--------------------------------
Description:
See an example: a cube (which is partitioned by date column "CAL_DT") has three
segments:
S1, S2, S3;
Now a query like "select .... from fact_table where CAL_DT > 'yyyy-mm-dd' group
by dimA, dimB..." comes, and the "CAL_DT" is only used for filtering, not in
group by;
By checking the startTime/endTime, Kylin found S2 and S3 need be scanned, and
S3 is totally match the condition "CAL_DT > yyyy-mm-dd". Then when scan S3,
Kylin can ignore the condition on "CAL_DT", selecting a smaller cuboid, this
should gain better performance.
Further more, this can be generalized to all filtering condition columns: if
all values of a dimension matches with user's filtering condition, and it isn't
in "group by", Kylin can ignore that column when selecting the cuboid.
was:
See an example: a cube (which is partitioned by date column "CAL_DT") has three
segments:
S1, S2, S3;
Now a query like "select .... from fact_table where CAL_DT > 'yyyy-mm-dd' group
by dimA, dimB..." comes, and the "CAL_DT" is only used for filtering, not in
group by;
By checking the startTime/endTime, Kylin found S2 and S3 need be scanned, and
S3 is totally match the condition "CAL_DT > yyyy-mm-dd". Then when scan S3,
Kylin can ignore the condition on "CAL_DT", selecting a smaller cuboid, this
should gain better performance.
> Query engine optimization: skip the condition checking on partition column if
> a segment's time is totaly included in the query range
> ------------------------------------------------------------------------------------------------------------------------------------
>
> Key: KYLIN-1278
> URL: https://issues.apache.org/jira/browse/KYLIN-1278
> Project: Kylin
> Issue Type: Improvement
> Components: Query Engine
> Reporter: Shaofeng SHI
> Assignee: liyang
> Fix For: Backlog
>
>
> See an example: a cube (which is partitioned by date column "CAL_DT") has
> three segments:
> S1, S2, S3;
> Now a query like "select .... from fact_table where CAL_DT > 'yyyy-mm-dd'
> group by dimA, dimB..." comes, and the "CAL_DT" is only used for filtering,
> not in group by;
> By checking the startTime/endTime, Kylin found S2 and S3 need be scanned, and
> S3 is totally match the condition "CAL_DT > yyyy-mm-dd". Then when scan S3,
> Kylin can ignore the condition on "CAL_DT", selecting a smaller cuboid, this
> should gain better performance.
> Further more, this can be generalized to all filtering condition columns: if
> all values of a dimension matches with user's filtering condition, and it
> isn't in "group by", Kylin can ignore that column when selecting the cuboid.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)