首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >无事实数据表的数据仓库维度设计

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

Stack Overflow用户
提问于 2013-06-25 20:16:20
回答 1查看 1.4K关注 0票数 0

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

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

我有一个关于这个表的维度的问题,风险ex有很多属性:

项目开始前发生的概率:(高,中,低)

项目期间发生的概率:(高,中,低)

项目结束后发生的概率:(高,中,低)

风险严重程度:(高、中、低)

策略:(接受,减少,分享)

我不确定是否应该将这些类型的属性视为维度,还是将它们作为事实行的一部分。然后,用户可以根据这些值进行过滤。

如果它们应该是Dimensions如何处理它们:

1)事实维度(退化维度)

2)新维度(将数据移动到自己的表中)

3)将相似概念的维度合并为一个维度,例如:发生概率,并添加一个类型属性注意:有很多这些类型的属性,我没有提到

任何帮助我们都将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-26 22:57:12

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

代码语言:javascript
运行
复制
 ProbabilityKey
 ProbabilityLevelShort (H,M,L)
 ProbabilityLevelLong (High, Medium, Low)
 ProbabilityLevelInt (1,2,3)
 ProbabilityLevelPct (0,0.5,1)
 ProbabilityLevelPctDesc (0%, 50%, 100%)

这将有助于报告级别,您将经常需要将这些值转换为某些标签或执行其他类型的分析(例如,ProbabilityLevelInt的总和)。最终尺寸可能如下所示(仅前三列):

代码语言:javascript
运行
复制
risk_dimension(ProbabilityKey,ProbabilityLevelShort,ProbabilityLevelLong)
1     H    High
2     M    Medium
3     L    Low

您可以使用策略列来做几乎相同的事情。如果您没有太多类型的列,您可以使用概率级别和策略的组合来创建垃圾维度,如下所示:

代码语言:javascript
运行
复制
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

然后,在事实表中,您只需将指针指向这个垃圾维度:

代码语言:javascript
运行
复制
risk_fact_table
record_id   dim_key  some_other_key
1            1
2            1
3            2
4            3
5            4
6            5

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17297102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档