【问题标题】:Factless fact and history for fact table事实表的无事实事实和历史
【发布时间】:2021-04-06 23:33:33
【问题描述】:

根据 Kimball 的说法,Factless fact table 是“没有事实但捕获维度键之间的多对多关系的事实表。” 无事实事实表是没有任何度量的事实表。它本质上是维度的交集(它只包含维度键)。 就我而言,我正在创建一个为每个员工捕获的事实表:

  • 它们的功能
  • 他们的角色
  • 他们的主要经理
  • 他们的部门
  • 他们的状态
  • 参赛日期
  • 退出日期

与我的事实表相关的事件是: - 当对功能应用任何更改时,角色主经理.. 已经在职的员工 - 或者有新员工来了

事实上,我正在添加历史需求:

  • BI_StartDate
  • BI_EndDate

我的事实表是 Factless 事实吗?
事实是包含历史:如果我要更新同一时期员工的职能和类型,我如何跟踪更新日期?

【问题讨论】:

  • 对我来说这是第二类维度。

标签: sql-server data-warehouse business-intelligence


【解决方案1】:

这是一个类型 II 维度的示例。

注意事项: 当前记录应该有一个空 BI_EndDate

您可以通过加入on EmpID and BI_EndDate is null 加入当前信息

你可以加入当时的记录

EmpID and [Comparison date]>=BI_StartDate and [Comparison date] <= ISNULL(BI_EndDate,'20991231')

此外,我认为您的无事实事实示例似乎更符合多对多关系。

例如,想想学生和班级。有很多学生和很多班级,但是这两者的交集是一个 studentClass 表。 (带有 studentEnrollment 的正式名称,但这并不重要)。

我不一定称此为无事实依据,因为来自该表的度量是计数。

【讨论】:

  • 如果您正在使用多维数据集(我假设您可能是因为您提到了 Kimball),那么我建议不要实现我的空注释并将空值转换为极端的未来日期。
猜你喜欢
  • 2011-08-30
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 2011-01-25
  • 2018-01-03
  • 2014-07-08
  • 1970-01-01
  • 2021-01-21
相关资源
最近更新 更多