Solved

Analysis Services: Understanding "Dimension Usage"

Posted on 2009-07-05
3
461 Views
Last Modified: 2013-11-26
I'm running the "SQL Server Analysis Services Tutorial" (see http://msdn.microsoft.com/en-us/library/ms170208.aspx), using Visual Studio 2008 against the AdventureWorks database in SQL Server 2008.  I'm finding the "Attribute Relation" tab within the cube design to be extremely baffling and frustrating.  I would appreciate a salient description of the connection between creating a hierarchy and setting Attribute Relationships.  Specifically, I am getting warning messages that I do not understand: "Attribute relationships do not exist between one or more levels of this hierarchy.  This may result in decreased query performance."; "Avoid visible attribute hierarchies for attributes used as levels in user-defined hierarchies."; and "Set at least one of the attribute types to match the 'Time' dimension type."  I've attempted to change the Attribute Relationships so they match the levels hierarchy (Year/Semester/Quarter/Month/Date), which results in errors and an application that won't deploy.  

Since an application that deploys with warnings is a far lesser evil  than one that won't deploy, I've chosen not to perform those procedures that have me resetting Attribute Relationships.  I've tried resolving the question using help screens, but I get definitions for people who already know what they're doing: without concrete examples, these descriptions are worthless.  I would really appreciate a plain-English description of "Dimension Usage", perhaps including a link to a simple example of an Analysis service that deploys with no warning messages.  Im just learning about Analysis Services, and the "Attribute Relationships" feature is proving to be insurmountable stumbling block.

Many thanks, ~Peter Ferber
0
Comment
Question by:PeterFrb
  • 2
3 Comments
 
LVL 15

Accepted Solution

by:
rob_farley earned 500 total points
ID: 24782938
Right...

If you have cities and countries, such as:

Country      City
US    New York, NY
UK    London, GB
CA    London, OT

"London, GB" can only be in one country, so it makes sense to have an attribute relationship set up between them. It means that the system never has to wonder how many sales there were for "London, GB" in the US. This is where the performance gain comes in.

However, if you just had "London" as your city, then you can't set up a relationship between city and country, because London could be the UK one or the CA one.

So a lot of the ideas behind attribute relationships are affected by the data that's in your warehouse. They're worth having, but if your data doesn't suit, then just put up with the warnings.

Hope this helps...

Rob
0
 

Author Closing Comment

by:PeterFrb
ID: 31600020
I went on to study Attribute Relationships, and the key information that you don't mention here is the way to set up Key Columns and the Name column.  Conceptually you're correct, but without that information you've given, although correct, is not of much practical use.  It's still good information, though, and thank you.
~Peter
0
 
LVL 15

Expert Comment

by:rob_farley
ID: 24883933
Ah - I was assuming that you had a very denormalized environment, at which point the attribute has its own key and name. And then, if your city is just called "London", and you make no differentiation between one London and another, you can't really do attribute relationships in the same way.

In a Snowflake arrangement, where you actually have a CityID, then you will almost certainly want to use a different Key and Name column, and are fully able to leverage attribute relationships too.

Rob

0

Featured Post

How Do You Stack Up Against Your Peers?

With today’s modern enterprise so dependent on digital infrastructures, the impact of major incidents has increased dramatically. Grab the report now to gain insight into how your organization ranks against your peers and learn best-in-class strategies to resolve incidents.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
MailAddress in vb 4 29
jquery tab header text 1 23
abstract class C# 1 31
Input parameteres to DragOver 2 20
Occasionally there is a need to clean table columns, especially if you have inherited legacy data. There are obviously many ways to accomplish that, including elaborate UPDATE queries with anywhere from one to numerous REPLACE functions (even within…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
Microsoft Active Directory, the widely used IT infrastructure, is known for its high risk of credential theft. The best way to test your Active Directory’s vulnerabilities to pass-the-ticket, pass-the-hash, privilege escalation, and malware attacks …
Although Jacob Bernoulli (1654-1705) has been credited as the creator of "Binomial Distribution Table", Gottfried Leibniz (1646-1716) did his dissertation on the subject in 1666; Leibniz you may recall is the co-inventor of "Calculus" and beat Isaac…

860 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question