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.ramonporto...@gmail.com>; 
????????: 2017??11??18??(??????) ????5:59
??????: "user"<user@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 <43535...@qq.com> wrote:
So what's the second code segment mean in AggregationGroup build step??0?2
is it means replace the hierarchy dim with the joint dims witch contain it?




------------------?0?2?????????0?2------------------
??????:?0?2"ShaoFeng Shi";<shaofeng...@apache.org>;
????????:?0?22017??11??17??(??????) ????2:02
??????:?0?2"user"<user@kylin.apache.org>;

????:?0?2Re: 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 <43535...@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() {
?0?2 ?0?2 ...
?0?2 ?0?2 if (CollectionUtils.containsAny(hierarchyDims, jointDims)) {
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 logger.error("Aggregation group " + 
index + " hierarchy dimensions overlap with joint dimensions");
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 throw new IllegalStateException(
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 "Aggregation group 
" + index + " hierarchy dimensions overlap with joint dimensions: "
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 
+ 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) {
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 .....
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 for (int i = 0; i < hierarchy_dims.length; i++) {
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 TblColRef hColumn = 
cubeDesc.getModel().findColumn(hierarchy_dims[i]);
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 Integer index = 
rowKeyDesc.getColumnBitIndex(hColumn);
?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 ?0?2 long bit = 1L << index;


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


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

}


do i understand in a wrong way?









-- 
Best regards,

Shaofeng Shi ??????

Reply via email to