SQL数据仓库中的单一记录维度似乎不合适,我还能如何满足这些需求?

问题描述 投票:0回答:1

该业务需要一些单一的价值维度:

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中提供这些要求的另一种方法是什么?

data-warehouse ssas-tabular dimensional-modeling sql-data-warehouse
1个回答
1
投票

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

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

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

财务日期可以作为单独的(财政)日历表建模,也可以简单地将财务日期作为属性添加到日历表中(即“财政日期”,“会计年度”等)。

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

© www.soinside.com 2019 - 2024. All rights reserved.