无事实事实表的数据仓库维度设计

时间:2013-06-25 12:16:20

标签: ssas data-warehouse business-intelligence dimensions cube

我有一个关于我正在开始的新立方体的问题。

多维数据集与风险管理流程相关。事实表不会包含任何事实,只列出存在的风险列表。

我对此表有一个关于维度的问题,风险来源有很多属性:

项目开始前发生的可能性:(高,中,低)
项目期间发生的可能性:(高,中,低)
项目结束后发生的可能性:(高,中,低)

风险严重程度:(高,中,低)
策略:(接受,减少,分享)

我不确定我是否应该将这些类型的属性视为Dimension,或者只是将它们作为Fact Row的一部分。然后用户可以按值过滤。

如果他们应该是Dimensions如何处理它们:
1)事实维度(退化维度)
2)新维度(将数据移入自己的表格)
3)结合类似概念的维度,例如:发生概率到一个维度并添加一个类型属性[注意:我没有提到这些类型的属性很多]

感谢任何帮助

1 个答案:

答案 0 :(得分:0)

如果您有很多值为High, Medium, Low的列,那么我建议您创建单独的维度,例如以下属性:

 ProbabilityKey
 ProbabilityLevelShort (H,M,L)
 ProbabilityLevelLong (High, Medium, Low)
 ProbabilityLevelInt (1,2,3)
 ProbabilityLevelPct (0,0.5,1)
 ProbabilityLevelPctDesc (0%, 50%, 100%)

这将有助于报告级别,您经常需要将这些值转换为某些标签或执行其他类型的分析(例如ProbabilityLevelInt的总和)。最终维度可能看起来像(只有前三个列):

risk_dimension(ProbabilityKey,ProbabilityLevelShort,ProbabilityLevelLong)
1     H    High
2     M    Medium
3     L    Low

您可以使用策略列完成相同的操作。如果您没有太多类型的列,则可以使用概率级别和策略的组合创建垃圾级别,例如:

junk_risk_dimension(ProbabilityKey,ProbabilityLevelShort,ProbabilityLevelLong,StrategyLong)
1     H    High       Accept
2     M    Medium     Accept
3     L    Low        Accept
4     H    High       Reduce
5     M    Medium     Reduce
6     L    Low        Reduce
7     H    High       Share
8     M    Medium     Share
9     L    Low        Share

然后,在你的事实表中你只有指向这个垃圾维度的指针:

risk_fact_table
record_id   dim_key  some_other_key
1            1
2            1
3            2
4            3
5            4
6            5

如果您需要更详细的答案,我们将需要更详细的列列表。