You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@kylin.apache.org by doom <43...@qq.com> on 2017/11/17 06:43:42 UTC

回复: Can hierarchyDims contain jointDims

So what's the second code segment mean in AggregationGroup build step? 
is it means replace the hierarchy dim with the joint dims witch contain it?




------------------ 原始邮件 ------------------
发件人: "ShaoFeng Shi";<sh...@apache.org>;
发送时间: 2017年11月17日(星期五) 下午2:02
收件人: "user"<us...@kylin.apache.org>;

主题: Re: Can hierarchyDims contain jointDims



Joint could not be used in the hierarchy.

Joint means treating multiple dimensions as one: they either all appeared, either all not; It is a conflict with hierarchy.


2017-11-16 21:29 GMT+08:00 doom <43...@qq.com>:
HI ALL:
I read the src code of kylin 2.2, and find:


In class CubeDes, if hierarchyDims contain jointDims will throw exception.
public void validateAggregationGroups() {
    ...
    if (CollectionUtils.containsAny(hierarchyDims, jointDims)) {
                logger.error("Aggregation group " + index + " hierarchy dimensions overlap with joint dimensions");
                throw new IllegalStateException(
                        "Aggregation group " + index + " hierarchy dimensions overlap with joint dimensions: "
                                + ensureOrder(CollectionUtils.intersection(hierarchyDims, jointDims)));
}


But in class AggregationGroup will replace the hierarchy dim with the joint dims witch contain it.
private void buildHierarchyMasks(RowKeyDesc rowKeyDesc) {
            .....
            for (int i = 0; i < hierarchy_dims.length; i++) {
                TblColRef hColumn = cubeDesc.getModel().findColumn(hierarchy_dims[i]);
                Integer index = rowKeyDesc.getColumnBitIndex(hColumn);
                long bit = 1L << index;


                // combine joint as logic dim
                if (dim2JointMap.get(bit) != null) {  
                    bit = dim2JointMap.get(bit);
                }


                mask.fullMask |= bit;
                allMaskList.add(mask.fullMask);
                dimList.add(bit);
            }

}


do i understand in a wrong way?









-- 
Best regards,

Shaofeng Shi 史少锋

Re: Can hierarchyDims contain jointDims

Posted by Billy Liu <bi...@apache.org>.
Hi Doom,

Thank you for reading the code so carefullly. You are welcomed to
contribute on this JIRA.

2017-11-19 16:42 GMT+08:00 doom <43...@qq.com>:

> So this issues is work in progress, and result in the two piece contradict
> code.  thank you for make me clear.
>
>
> ------------------ 原始邮件 ------------------
> *发件人:* "Alberto Ramón"<a....@gmail.com>;
> *发送时间:* 2017年11月18日(星期六) 凌晨5:59
> *收件人:* "user"<us...@kylin.apache.org>;
> *主题:* Re: Can hierarchyDims contain jointDims
>
> https://issues.apache.org/jira/browse/KYLIN-2149
>
> Check this link, you need choose between use one or other
> Some times would be great use both together
>
> On 17 November 2017 at 06:43, doom <43...@qq.com> wrote:
>
>> So what's the second code segment mean in AggregationGroup build step?
>> is it means replace the hierarchy dim with the joint dims witch contain
>> it?
>>
>>
>> ------------------ 原始邮件 ------------------
>> *发件人:* "ShaoFeng Shi";<sh...@apache.org>;
>> *发送时间:* 2017年11月17日(星期五) 下午2:02
>> *收件人:* "user"<us...@kylin.apache.org>;
>> *主题:* Re: Can hierarchyDims contain jointDims
>>
>> Joint could not be used in the hierarchy.
>>
>> Joint means treating multiple dimensions as one: they either all
>> appeared, either all not; It is a conflict with hierarchy.
>>
>> 2017-11-16 21:29 GMT+08:00 doom <43...@qq.com>:
>>
>>> HI ALL:
>>> I read the src code of kylin 2.2, and find:
>>>
>>> In class CubeDes, if hierarchyDims contain jointDims will throw
>>> exception.
>>> public void validateAggregationGroups() {
>>>     ...
>>>     if (CollectionUtils.containsAny(hierarchyDims, jointDims)) {
>>>                 logger.error("Aggregation group " + index + " hierarchy
>>> dimensions overlap with joint dimensions");
>>>                 throw new IllegalStateException(
>>>                         "Aggregation group " + index + " hierarchy
>>> dimensions overlap with joint dimensions: "
>>>                                 + ensureOrder(CollectionUtils.intersection(hierarchyDims,
>>> jointDims)));
>>> }
>>>
>>> But in class AggregationGroup will replace the hierarchy dim with the
>>> joint dims witch contain it.
>>> private void buildHierarchyMasks(RowKeyDesc rowKeyDesc) {
>>>             .....
>>>             for (int i = 0; i < hierarchy_dims.length; i++) {
>>>                 TblColRef hColumn = cubeDesc.getModel().findColumn
>>> (hierarchy_dims[i]);
>>>                 Integer index = rowKeyDesc.getColumnBitIndex(hColumn);
>>>                 long bit = 1L << index;
>>>
>>>                 // combine joint as logic dim
>>>                 if (dim2JointMap.get(bit) != null) {
>>>                     bit = dim2JointMap.get(bit);
>>>                 }
>>>
>>>                 mask.fullMask |= bit;
>>>                 allMaskList.add(mask.fullMask);
>>>                 dimList.add(bit);
>>>             }
>>> }
>>>
>>> do i understand in a wrong way?
>>>
>>>
>>>
>>
>>
>> --
>> Best regards,
>>
>> Shaofeng Shi 史少锋
>>
>>
>

回复: Can hierarchyDims contain jointDims

Posted by doom <43...@qq.com>.
So this issues is work in progress, and result in the two piece contradict code.  thank you for make me clear.



------------------ 原始邮件 ------------------
发件人: "Alberto Ramón"<a....@gmail.com>; 
发送时间: 2017年11月18日(星期六) 凌晨5:59
收件人: "user"<us...@kylin.apache.org>; 
主题: Re: Can hierarchyDims contain jointDims



https://issues.apache.org/jira/browse/KYLIN-2149


Check this link, you need choose between use one or other

Some times would be great use both together 


On 17 November 2017 at 06:43, doom <43...@qq.com> wrote:
So what's the second code segment mean in AggregationGroup build step? 
is it means replace the hierarchy dim with the joint dims witch contain it?




------------------ 原始邮件 ------------------
发件人: "ShaoFeng Shi";<sh...@apache.org>;
发送时间: 2017年11月17日(星期五) 下午2:02
收件人: "user"<us...@kylin.apache.org>;

主题: Re: Can hierarchyDims contain jointDims



Joint could not be used in the hierarchy.

Joint means treating multiple dimensions as one: they either all appeared, either all not; It is a conflict with hierarchy.


2017-11-16 21:29 GMT+08:00 doom <43...@qq.com>:
HI ALL:
I read the src code of kylin 2.2, and find:


In class CubeDes, if hierarchyDims contain jointDims will throw exception.
public void validateAggregationGroups() {
    ...
    if (CollectionUtils.containsAny(hierarchyDims, jointDims)) {
                logger.error("Aggregation group " + index + " hierarchy dimensions overlap with joint dimensions");
                throw new IllegalStateException(
                        "Aggregation group " + index + " hierarchy dimensions overlap with joint dimensions: "
                                + ensureOrder(CollectionUtils.intersection(hierarchyDims, jointDims)));
}


But in class AggregationGroup will replace the hierarchy dim with the joint dims witch contain it.
private void buildHierarchyMasks(RowKeyDesc rowKeyDesc) {
            .....
            for (int i = 0; i < hierarchy_dims.length; i++) {
                TblColRef hColumn = cubeDesc.getModel().findColumn(hierarchy_dims[i]);
                Integer index = rowKeyDesc.getColumnBitIndex(hColumn);
                long bit = 1L << index;


                // combine joint as logic dim
                if (dim2JointMap.get(bit) != null) {  
                    bit = dim2JointMap.get(bit);
                }


                mask.fullMask |= bit;
                allMaskList.add(mask.fullMask);
                dimList.add(bit);
            }

}


do i understand in a wrong way?









-- 
Best regards,

Shaofeng Shi 史少锋

Re: Can hierarchyDims contain jointDims

Posted by Alberto Ramón <a....@gmail.com>.
https://issues.apache.org/jira/browse/KYLIN-2149

Check this link, you need choose between use one or other
Some times would be great use both together

On 17 November 2017 at 06:43, doom <43...@qq.com> wrote:

> So what's the second code segment mean in AggregationGroup build step?
> is it means replace the hierarchy dim with the joint dims witch contain it?
>
>
> ------------------ 原始邮件 ------------------
> *发件人:* "ShaoFeng Shi";<sh...@apache.org>;
> *发送时间:* 2017年11月17日(星期五) 下午2:02
> *收件人:* "user"<us...@kylin.apache.org>;
> *主题:* Re: Can hierarchyDims contain jointDims
>
> Joint could not be used in the hierarchy.
>
> Joint means treating multiple dimensions as one: they either all appeared,
> either all not; It is a conflict with hierarchy.
>
> 2017-11-16 21:29 GMT+08:00 doom <43...@qq.com>:
>
>> HI ALL:
>> I read the src code of kylin 2.2, and find:
>>
>> In class CubeDes, if hierarchyDims contain jointDims will throw exception.
>> public void validateAggregationGroups() {
>>     ...
>>     if (CollectionUtils.containsAny(hierarchyDims, jointDims)) {
>>                 logger.error("Aggregation group " + index + " hierarchy
>> dimensions overlap with joint dimensions");
>>                 throw new IllegalStateException(
>>                         "Aggregation group " + index + " hierarchy
>> dimensions overlap with joint dimensions: "
>>                                 + ensureOrder(CollectionUtils.intersection(hierarchyDims,
>> jointDims)));
>> }
>>
>> But in class AggregationGroup will replace the hierarchy dim with the
>> joint dims witch contain it.
>> private void buildHierarchyMasks(RowKeyDesc rowKeyDesc) {
>>             .....
>>             for (int i = 0; i < hierarchy_dims.length; i++) {
>>                 TblColRef hColumn = cubeDesc.getModel().findColumn
>> (hierarchy_dims[i]);
>>                 Integer index = rowKeyDesc.getColumnBitIndex(hColumn);
>>                 long bit = 1L << index;
>>
>>                 // combine joint as logic dim
>>                 if (dim2JointMap.get(bit) != null) {
>>                     bit = dim2JointMap.get(bit);
>>                 }
>>
>>                 mask.fullMask |= bit;
>>                 allMaskList.add(mask.fullMask);
>>                 dimList.add(bit);
>>             }
>> }
>>
>> do i understand in a wrong way?
>>
>>
>>
>
>
> --
> Best regards,
>
> Shaofeng Shi 史少锋
>
>