SSAS 日期存储为文本

SSAS Date stored as text

我有一个预测度量值 table,其中的 MMM-YY 日期存储为文本;

Period Forecast
-------------------
Jan-20 200
Feb-20 300

我的模型中还有其他一些具有类似日期格式的 table,即。 (1/2020) 或 2020_1。因此,我创建了一个日期维度,将时间段映射到实际日期时间并将其链接到事实 table;

Period (Month/Year) Year_Month MonthEnd
---------------------------------------------------
Jan-20 (1/2020) 2020_1 31/01/2020
Feb-20 (2/2020) 2020_2 28/02/2020

这给我带来了两个问题;

  1. 如果我按期间分割预测,我会得到正确的答案,但如果我按日期时间字段 'MonthEnd',SSAS 无法在属性之间分配成本,我得到每个月的总数(在这个例子中一月和二月都是 500)。为什么?

  2. 我无法将时间作为参考维度连接到日期维度,因此我无法使用任何时间智能功能。

我可以将 ETL 上的时间段 ID 换成日期时间来标准化模型中的日期字段,但我想知道是否有一种标准的方法来处理这个问题?

https://imgur.com/gallery/onxtvhq

在 Analysis Services 多维模型中,您需要对一种表示周期的格式进行标准化,并让所有度量值组都使用该格式。我建议您将 Actuals 度量组的 SQL 查询更改为 return 值,这些值加入到 Date table.

中的 Period 列

了解其工作原理意味着了解属性关系和 IgnoreUnrelatedDimensions 设置。如果设置为 true,则按“不相关”属性(低于粒度或不相关或不相关维度的属性)进行切片只会导致重复测量。如果设置为 false 则它将变为 null。

我不清楚你为什么需要时间作为参考维度。它似乎还包含日期层次结构。通常 Date 代表天、周、月和年。通常时间是小时分钟和秒。出于处理性能的原因,我会避免使用参考尺寸。它们带来的麻烦多于它们的价值。将时间维度键添加到您的事实 tables.

scrrenshot显示Date和Forcast之间有关系,所以我认为根本原因不是根本原因,但是,您可以尝试GreGalloway的解决方案,将IgnoreUnrelatedDimensions的属性设置为False去测试。 enter image description here