在尝试使用SSAS创建和配置Dimension时,我遇到了一个误解的问题。问题是:我的名为Author的维度有三个属性(AuthorKey,AuthorID,AuthorState),AuthorKey是我维度的主键。
使用Visual Studio 2013,我创建了一个用户层次结构,如:
Hierarchy name: AuthorByState
+ AuthorState
+ AuthorKey
- AuthorID
- AuthorState
当我切换到属性关系选项卡时,我看到了一个自动生成的关系,如:
AuthorKey(AuthorID) --> AuthorState
我的问题是:我了解SSAS会自动将维度中的每个属性与维度键相关联,但为什么AuthorID属性是"内部" AuthorKey属性而不是" outside"通常像AuthorState?属性关系意味着什么?
感谢您的任何解释,并抱歉我的英语不好!
答案 0 :(得分:1)
当您构建用户定义的层次结构(您称之为AuthorsByState)时,会导致“属性关系”选项卡图以不同方式呈现。基本上,用户定义的层次结构中出现的任何属性都有自己的泡泡。如果您要构建第二个用户定义的层次结构,其中包含AuthorId,那么AuthorId将在“属性关系”选项卡图中拥有它自己的气泡。
答案 1 :(得分:0)
层次结构中的属性未正确定义。
定义层次结构时,正在拖动
中不相关的属性如果维度有一个密钥("自然密钥" - 仅供业务使用的密钥) - 那么这应该被定义为您的密钥(它清楚地表明"作者"是你的关键,我不知道那个领域代表什么。 如果您的维度有两个键,则为自然键和代理键。自然键是具有商业含义的关键(因为每个作者都有一个id),而代理键是我们分配的键(一个标识int或其他)。 将Surrogate键放在维度中。将其定义为键,然后选择" visible属性"作为姓名/自然键。一旦你这样做,层次结构就不会在该部分内拖动不必要的属性。
评论:如果作者密钥是您的替代密钥,作者ID是您的自然密钥,您可以隐藏作者密钥;将其设为显示作者ID,而不是在Properties-> NameColumn
中请注意使用"日期键"在微软的以下帖子中: https://www.mssqltips.com/sqlservertip/3414/sql-server-analysis-services-attribute-relationships/ 如果没有它,层次结构就不会被设置。