Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
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.