0

业务需要一些单值维度:

DIM_BuildDate - store datetime of the DW build, with latest inventory date
DIM_CurrentAccountingPeriod - what is the accounting period now (at build date)
DIM_CurrentExchangeRate - what is the currency exchange rate now

也许它们都可以滚动到具有每个值的属性的单个维度中,但这不是我关心的问题。

这似乎是错误的。这些值每天或定期更改,充其量使它们缓慢地改变尺寸。但是,将这些值存储在 DW 中确实很有用。

  • 如果事务性作业失败,则 DW 构建可能具有两天前的库存数据,这很重要。所以我将它存储在 DIM_BuildDate 中。
  • 通常,日历日期与会计期间不匹配,尤其是在月份的开始和结束时。所以我将它存储为 DIM_CurrentAccountingPeriod。
  • 有一个 FACT_ExchangeRate 存储一段时间内的汇率值,但业务人员想要一种简单的方法来访问“当前汇率”。

我想要实用,并提供诸如此类的有用对象,但我怀疑这些尺寸不符合正确的 Kimball 实现。

在 DW 中提供这些要求的另一种方法是什么?

4

1 回答 1

1

为每个指标创建单个记录的维度肯定是错误的 - 您的星型模式会膨胀。

需要添加构建日期,没有办法绕过它(这是您在星型模式中没有的独特数据)。

当前汇率可以作为计算的 DAX 度量轻松添加到您的表格模型中(只需选择日期 = 构建日期的汇率)。无需将其存储在单独的维度中。作为衡量标准,在计算中使用它会容易得多。

会计日期可以建模为单独的(会计)日历表,或者您可以简单地将会计日期作为属性添加到日历表(即“会计日期”、“会计年度”等)。

类似地,您可以在日历表中标记“当前”期间(即,添加字段“期间类型”,其值为“当前期间”、“过去期间”(如果需要,则为“未来期间”))。它可以用作切片器,也可以用作 DAX 过滤器。这同样适用于“当前”会计期间 - 它只是日历表中的另一个属性。

于 2019-03-10T16:05:13.160 回答