I think understand how and why we need to setup attribute relationship but I'm probably missing one important thing here...
If I have the following hierarchies in my dimension:
Circulaire > Segment > Promotion
Circulaire > Promotion
Logically I should have defined my attribute relationship like this:
Circulaire
Segment
- Circulaire
Promotion
- Segment
- Circulaire
Promotion Key
- Promotion
This result in the following error:
This dimension contains one or more redundant attribute relationships. These relationships may prevent data from being aggregated when a non-key attribute is used as a granularity attribute in a cube. Verify the following relationships and delete those that are not needed: [Code Promotion] -> [Promotion - Circulaire].
What is the best practice to manage those issues with attribute relationship? I want to make sure that all my hierarchies are designed for best performance.
On the same note how should we set-up attribute relationship when multiple hierarchies are using the same level in different order?
LEVEL 1 > LEVEL 2 > LEVEL 3 > LEVEL 4
LEVEL 1 > LEVEL 3 > LEVEL 2 > LEVEL 4
thanks,
In the 1st scenario, since Segment directly relates to Promotion and Circulaire directly relates to Segment, relating Circulaire to Promotion is redundant. This is similar to a Year->Month->Day hierarchy, where relating Year to Day directly would be redundant.
In the 2nd scenario, I assume that there are 2 alternate hierarchies for user navigation. They can't both be natural (strong) hierachies (unless there is a strict 1:1 relationship between Level 2 and Level 3 members). So attribute relationships should only reflect strict functional dependencies, not navigational convenience. This paper discusses attribute relationships in more detail:
http://www.sqlserveranalysisservices.com/OLAPPapers/AttributeRelationships.htm
|||Thank you
No comments:
Post a Comment