SSAS 和类型 2 SCD 数据



我在使用 SSAS 和类型 2 SCD 数据获得预期结果时遇到问题。下面,我列出了我正在使用的简单表、我正在获得的 SSAS 输出以及我希望的 SSAS 输出。我觉得 SSAS 应该能够像我想要的那样检索数据;我相信我只是很难:)正确地"连接它"。

我正在使用的表格

DimClient
ID (PK)     AltID (Business Key)     Name        Start Date     End Date
1           1                        Client A    01/01/1995     01/31/1995
2           1                        Client ABC  02/01/1995     NULL
FactSales
ID (PK)     ClientID    Sales     SalesDate
1           1           $100      01/15/1995
2           1           $200      02/15/1995
3           1           $300      03/15/1995

加上一个 DimDate 表,其中包含从 1900 年 1 月 1>日至 2050 年 12 月 31 日的所有日期作为 PK 输入,以及它们的各种属性,如月中的几、星期几等。

输出(电流与预期)

我正在尝试按月查看客户端数据,结果如下:

Month       Client      Sales
January     Client A    $100
February    Client A    $200
March       Client A    $300

当我期待(并希望)看到这个时:

Month       Client      Sales
January     Client A    $100
February    Client ABC  $200
March       Client ABC  $300

为什么我的 SSAS 多维数据集无法识别客户端 A 在 2 月和 3 月更改为客户端 ABC?

希望能提供有关我的立方体当前如何连接的见解:

-FactSales ClientID 链接到 DimClient AltID
-事实销售销售日期链接到我的暗影日期PK字段

我无法以任何方式将DimClient链接到DimDate。

感谢您的输入和帮助解决我的问题!

您需要使用另一个密钥来链接FactSales和DimClient。

它是DimClient的ID和下面描述的新密钥。

然后向 FactSales 添加另一个密钥(假设 ClientSCD)并将其映射到 ETL 阶段,如下所示:

update f set f.ClientSCD = isnull(c.ID,0)
/* if you have default NONE member with ID = 0 */
FactSales f
left join DimClient c
on f.ClientID = c.AltID
and f.SalesDate between c.[Start Date] and isnull(c.[End Date],'12/31/9999')

在多维数据集中使用 DimClient.ID 和 FactSales.ClientSCD 作为链接。

相关内容

  • 没有找到相关文章

最新更新