kylin-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "doom" <>
Subject 回复: Can hierarchyDims contain jointDims
Date Sun, 19 Nov 2017 08:42:13 GMT
So this issues is work in progress, and result in the two piece contradict code.  thank you
for make me clear.

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

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 <> 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";<>;
发送时间: 2017年11月17日(星期五) 下午2:02
收件人: "user"<>;

主题: 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 <>:
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,

But in class AggregationGroup will replace the hierarchy dim with the joint dims witch contain
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;


do i understand in a wrong way?

Best regards,

Shaofeng Shi 史少锋
View raw message