Ssas 星型模式-无唯一性的事实表

Ssas 星型模式-无唯一性的事实表,ssas,database-schema,Ssas,Database Schema,我们有一个数据仓库,其中包含一个超过1亿行的大型事实表。我正在尝试创建一个包含此事实表的多维数据集,并且需要基于此表创建一个事实维度。我遇到的问题是,如果不使用表中的每个字段,就无法使用将包含在事实维度中的字段来查找此表的唯一性 我使用以下方法在dsv中创建了代理密钥: Row_Number() OVER (ORDER BY ID, Dt, Num) 我用这个方法在另一个dsv中创建了一个代理键,它起到了作用,但我也能够找到字段的唯一性,其顺序为By 当我根据这个事实表浏览多维数据集时,当使用

我们有一个数据仓库,其中包含一个超过1亿行的大型事实表。我正在尝试创建一个包含此事实表的多维数据集,并且需要基于此表创建一个事实维度。我遇到的问题是,如果不使用表中的每个字段,就无法使用将包含在事实维度中的字段来查找此表的唯一性

我使用以下方法在dsv中创建了代理密钥:

Row_Number() OVER (ORDER BY ID, Dt, Num)
我用这个方法在另一个dsv中创建了一个代理键,它起到了作用,但我也能够找到字段的唯一性,其顺序为By

当我根据这个事实表浏览多维数据集时,当使用常规维度时,我得到了正确的结果。当我尝试使用来自事实维度的字段时,在大多数情况下,我都会得到很好的结果……有些是正确的,但很少


在这种情况下,我应该请求在事实表上创建代理键吗?有没有更好的解决方案可以推荐?

您确定要创建一个事实维度,即退化维度?在这种情况下,如果事实表上没有唯一键,我看不到创建事实维度的业务价值。事实表中有许多字段我希望/需要提供。是的,但您不能使用这些字段创建普通维度吗?我认为你滥用了事实维度的概念。只有当维度的基数与事实数相同时,才应使用事实维度。如果不能在事实上创建唯一键,那么事实和维度的粒度就不会相同。你能提供一个表内容的摘要来说明你的问题吗?这就是为什么我问在表本身添加一个唯一的键是否有意义。它需要向DW团队证明其合理性,因为它将向1亿多行添加一个整数。我试图做的是在dsv中添加密钥。该表由8个外键、~15个度量值和~35个附加字段(包括多个日期)组成。一个干净的解决方案是将35个字段移动到它们自己的维度,并且事实表中只有外键和度量值。作为中间步骤,您可以使用一个键对所需的35个字段的唯一组合进行编号,然后将其用作维度视图的外键,维度视图就是这些字段和使用group by从表中生成的唯一键。