You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by S*ST非烟飞雾 <85...@qq.com> on 2019/03/04 08:25:34 UTC

Dose joint dim constrained by Max Dimension Combination

hi all: 

If i have a agg with joint dim has 4-dim,  and i set the agg  Max Dimension Combination=3.  So will the result cuboid contain the 4-dim joint? 

I find when i set the Max Dimension Combination with 3.  the result cuboid contain some dim>3. 

|---- Cuboid 111111111111111111111111111111111111111111111111111, est row: 34884166, est MB: 848.34      |---- Cuboid 101111111110010000111111111111111110001000000000011, est row: 31152743, est MB: 512.49, shrink: 89.3%          |---- Cuboid 100000111110010000111111111111111110001000000000011, est row: 31305812, est MB: 485.15, shrink: 100.49%              |---- Cuboid 100000000010010000111111111111111110001000000000011, est row: 26002267, est MB: 371.97, shrink: 83.06%                  |---- Cuboid  100000000000000000001111111111111110001000000000011, est row: 18314746,  est MB: 240.16, shrink: 70.44%                      |---- Cuboid  100000000000000000000000111111111110001000000000011, est row: 17152263,  est MB: 204.47, shrink: 93.65%                          |---- Cuboid  100000000000000000000000000101111110001000000000011, est row: 11100040,  est MB: 116.44, shrink: 64.71%                              |---- Cuboid  100000000000000000000000000000001110001000000000011, est row: 143320,  est MB: 1.26, shrink: 1.29%                                  |---- Cuboid  100000000000000000000000000000000000000000000000011, est row: 281, est  MB: 0, shrink: 0.2%                                      |---- Cuboid  100000000000000000000000000000000000000000000000001, est row: 22, est  MB: 0, shrink: 7.83%                                      |---- Cuboid  100000000000000000000000000000000000000000000000010, est row: 30, est  MB: 0, shrink: 10.68%

回复:Dose joint dim constrained by Max Dimension Combination

Posted by S*ST非烟飞雾 <85...@qq.com>.
i'v find it.
it's in 



```
// 3. fill padding cuboids         Map<Long, List<Long>> parent2Child = Maps.newHashMap();         Queue<Long> cuboidScan = new ArrayDeque<>();         cuboidScan.addAll(cuboidHolder);         while (!cuboidScan.isEmpty()) {             long current = cuboidScan.poll();             long parent = getParentOnPromise(current, cuboidHolder, forward);             if (parent > 0) {                 if (!cuboidHolder.contains(parent)) {                     cuboidScan.add(parent);                     cuboidHolder.add(parent);                 }                 if (parent2Child.containsKey(parent)) {                     parent2Child.get(parent).add(current);                 } else {                     parent2Child.put(parent, Lists.newArrayList(current));                 }             }         }
```





------------------ 原始邮件 ------------------
发件人: "S*ST非烟飞雾"<85...@qq.com>;
发送时间: 2019年3月6日(星期三) 晚上7:56
收件人: "user"<us...@kylin.apache.org>;

主题: 回复:Dose joint dim constrained by Max Dimension Combination



hi,
  thanks for your reply. i have read the src previousely, and find it is build from child to parent until basecuboid.  function `getOnTreeParentsByLayer` has filter all the cuboid that larger than maxdim,  so i wonder which function add the padding cuboids as you mantioned in point 3?


**3, fill padding cuboids, which contain the parent of the cuboid in 2.(dim-count can more than Max Dimension Combination)**



```
private Set<Long> getOnTreeParentsByLayer(Collection<Long> children) {
    Set<Long> parents = new HashSet<>();
    for (long child : children) {
        parents.addAll(getOnTreeParents(child));
    }
    parents = Sets.newHashSet(Iterators.filter(parents.iterator(), new Predicate<Long>() {
        @Override
        public boolean apply(@Nullable Long cuboidId) {
            if (cuboidId == Cuboid.getBaseCuboidId(cubeDesc)) {
                return true;
            }
            for (AggregationGroup agg : cubeDesc.getAggregationGroups()) {
                if (agg.isOnTree(cuboidId) && checkDimCap(agg, cuboidId)) {
                    return true;
                }
            }
            return false;
        }
    }));
    return parents;
}
```





------------------ 原始邮件 ------------------
发件人: "Chao Long"<wa...@qq.com>;
发送时间: 2019年3月6日(星期三) 下午5:22
收件人: "user"<us...@kylin.apache.org>;

主题: 回复:Dose joint dim constrained by Max Dimension Combination



Hi,
    I check the code and find joint dim is constrained by Max Dimension Combination, so if you set Max Dimension Combination=3, the cuboid result will not contain the 4-dim joint. The cuboid contain more then 3-dim will be filtered.

   The final cuobid result contain:
  1, BaseCuboid.
  2, cuboid whose dim-count is less than Max Dimension Combination.
  3, fill padding cuboids, which contain the parent of the cuboid in 2.(dim-count can more than Max Dimension Combination)



------------------
Best Regards,
Chao Long


------------------ 原始邮件 ------------------
发件人: "S*ST非烟飞雾"<85...@qq.com>;
发送时间: 2019年3月4日(星期一) 下午4:25
收件人: "user"<us...@kylin.apache.org>;

主题: Dose joint dim constrained by Max Dimension Combination




hi all: 

If i have a agg with joint dim has 4-dim,  and i set the agg  Max Dimension Combination=3.  So will the result cuboid contain the 4-dim joint? 

I find when i set the Max Dimension Combination with 3.  the result cuboid contain some dim>3. 

|---- Cuboid 111111111111111111111111111111111111111111111111111, est row: 34884166, est MB: 848.34      |---- Cuboid 101111111110010000111111111111111110001000000000011, est row: 31152743, est MB: 512.49, shrink: 89.3%          |---- Cuboid 100000111110010000111111111111111110001000000000011, est row: 31305812, est MB: 485.15, shrink: 100.49%              |---- Cuboid 100000000010010000111111111111111110001000000000011, est row: 26002267, est MB: 371.97, shrink: 83.06%                  |---- Cuboid  100000000000000000001111111111111110001000000000011, est row: 18314746,  est MB: 240.16, shrink: 70.44%                      |---- Cuboid  100000000000000000000000111111111110001000000000011, est row: 17152263,  est MB: 204.47, shrink: 93.65%                          |---- Cuboid  100000000000000000000000000101111110001000000000011, est row: 11100040,  est MB: 116.44, shrink: 64.71%                              |---- Cuboid  100000000000000000000000000000001110001000000000011, est row: 143320,  est MB: 1.26, shrink: 1.29%                                  |---- Cuboid  100000000000000000000000000000000000000000000000011, est row: 281, est  MB: 0, shrink: 0.2%                                      |---- Cuboid  100000000000000000000000000000000000000000000000001, est row: 22, est  MB: 0, shrink: 7.83%                                      |---- Cuboid  100000000000000000000000000000000000000000000000010, est row: 30, est  MB: 0, shrink: 10.68%

回复:Dose joint dim constrained by Max Dimension Combination

Posted by S*ST非烟飞雾 <85...@qq.com>.
hi,
  thanks for your reply. i have read the src previousely, and find it is build from child to parent until basecuboid.  function `getOnTreeParentsByLayer` has filter all the cuboid that larger than maxdim,  so i wonder which function add the padding cuboids as you mantioned in point 3?


**3, fill padding cuboids, which contain the parent of the cuboid in 2.(dim-count can more than Max Dimension Combination)**



```
private Set<Long> getOnTreeParentsByLayer(Collection<Long> children) {
    Set<Long> parents = new HashSet<>();
    for (long child : children) {
        parents.addAll(getOnTreeParents(child));
    }
    parents = Sets.newHashSet(Iterators.filter(parents.iterator(), new Predicate<Long>() {
        @Override
        public boolean apply(@Nullable Long cuboidId) {
            if (cuboidId == Cuboid.getBaseCuboidId(cubeDesc)) {
                return true;
            }
            for (AggregationGroup agg : cubeDesc.getAggregationGroups()) {
                if (agg.isOnTree(cuboidId) && checkDimCap(agg, cuboidId)) {
                    return true;
                }
            }
            return false;
        }
    }));
    return parents;
}
```





------------------ 原始邮件 ------------------
发件人: "Chao Long"<wa...@qq.com>;
发送时间: 2019年3月6日(星期三) 下午5:22
收件人: "user"<us...@kylin.apache.org>;

主题: 回复:Dose joint dim constrained by Max Dimension Combination



Hi,
    I check the code and find joint dim is constrained by Max Dimension Combination, so if you set Max Dimension Combination=3, the cuboid result will not contain the 4-dim joint. The cuboid contain more then 3-dim will be filtered.

   The final cuobid result contain:
  1, BaseCuboid.
  2, cuboid whose dim-count is less than Max Dimension Combination.
  3, fill padding cuboids, which contain the parent of the cuboid in 2.(dim-count can more than Max Dimension Combination)



------------------
Best Regards,
Chao Long


------------------ 原始邮件 ------------------
发件人: "S*ST非烟飞雾"<85...@qq.com>;
发送时间: 2019年3月4日(星期一) 下午4:25
收件人: "user"<us...@kylin.apache.org>;

主题: Dose joint dim constrained by Max Dimension Combination




hi all: 

If i have a agg with joint dim has 4-dim,  and i set the agg  Max Dimension Combination=3.  So will the result cuboid contain the 4-dim joint? 

I find when i set the Max Dimension Combination with 3.  the result cuboid contain some dim>3. 

|---- Cuboid 111111111111111111111111111111111111111111111111111, est row: 34884166, est MB: 848.34      |---- Cuboid 101111111110010000111111111111111110001000000000011, est row: 31152743, est MB: 512.49, shrink: 89.3%          |---- Cuboid 100000111110010000111111111111111110001000000000011, est row: 31305812, est MB: 485.15, shrink: 100.49%              |---- Cuboid 100000000010010000111111111111111110001000000000011, est row: 26002267, est MB: 371.97, shrink: 83.06%                  |---- Cuboid  100000000000000000001111111111111110001000000000011, est row: 18314746,  est MB: 240.16, shrink: 70.44%                      |---- Cuboid  100000000000000000000000111111111110001000000000011, est row: 17152263,  est MB: 204.47, shrink: 93.65%                          |---- Cuboid  100000000000000000000000000101111110001000000000011, est row: 11100040,  est MB: 116.44, shrink: 64.71%                              |---- Cuboid  100000000000000000000000000000001110001000000000011, est row: 143320,  est MB: 1.26, shrink: 1.29%                                  |---- Cuboid  100000000000000000000000000000000000000000000000011, est row: 281, est  MB: 0, shrink: 0.2%                                      |---- Cuboid  100000000000000000000000000000000000000000000000001, est row: 22, est  MB: 0, shrink: 7.83%                                      |---- Cuboid  100000000000000000000000000000000000000000000000010, est row: 30, est  MB: 0, shrink: 10.68%

回复:Dose joint dim constrained by Max Dimension Combination

Posted by Chao Long <wa...@qq.com>.
Hi,
    I check the code and find joint dim is constrained by Max Dimension Combination, so if you set Max Dimension Combination=3, the cuboid result will not contain the 4-dim joint. The cuboid contain more then 3-dim will be filtered.

   The final cuobid result contain:
  1, BaseCuboid.
  2, cuboid whose dim-count is less than Max Dimension Combination.
  3, fill padding cuboids, which contain the parent of the cuboid in 2.(dim-count can more than Max Dimension Combination)



------------------
Best Regards,
Chao Long


------------------ 原始邮件 ------------------
发件人: "S*ST非烟飞雾"<85...@qq.com>;
发送时间: 2019年3月4日(星期一) 下午4:25
收件人: "user"<us...@kylin.apache.org>;

主题: Dose joint dim constrained by Max Dimension Combination




hi all: 

If i have a agg with joint dim has 4-dim,  and i set the agg  Max Dimension Combination=3.  So will the result cuboid contain the 4-dim joint? 

I find when i set the Max Dimension Combination with 3.  the result cuboid contain some dim>3. 

|---- Cuboid 111111111111111111111111111111111111111111111111111, est row: 34884166, est MB: 848.34      |---- Cuboid 101111111110010000111111111111111110001000000000011, est row: 31152743, est MB: 512.49, shrink: 89.3%          |---- Cuboid 100000111110010000111111111111111110001000000000011, est row: 31305812, est MB: 485.15, shrink: 100.49%              |---- Cuboid 100000000010010000111111111111111110001000000000011, est row: 26002267, est MB: 371.97, shrink: 83.06%                  |---- Cuboid  100000000000000000001111111111111110001000000000011, est row: 18314746,  est MB: 240.16, shrink: 70.44%                      |---- Cuboid  100000000000000000000000111111111110001000000000011, est row: 17152263,  est MB: 204.47, shrink: 93.65%                          |---- Cuboid  100000000000000000000000000101111110001000000000011, est row: 11100040,  est MB: 116.44, shrink: 64.71%                              |---- Cuboid  100000000000000000000000000000001110001000000000011, est row: 143320,  est MB: 1.26, shrink: 1.29%                                  |---- Cuboid  100000000000000000000000000000000000000000000000011, est row: 281, est  MB: 0, shrink: 0.2%                                      |---- Cuboid  100000000000000000000000000000000000000000000000001, est row: 22, est  MB: 0, shrink: 7.83%                                      |---- Cuboid  100000000000000000000000000000000000000000000000010, est row: 30, est  MB: 0, shrink: 10.68%