0

我们正在实施一个新的 dwh 解决方案。我有许多维度需要慢慢改变类型 2 属性。我正在考虑在我的维度中实现类型 2 和类型 1 属性的组合。对于某些维度属性,我们通过在暗表(Type2)中插入新行来跟踪历史,对于其他属性,我们将只更新现有行以进行任何更改(Type1)

问题

  • 这是一个好习惯吗?可以将 SCD 1 和 2 组合用于相同的暗淡吗?

  • 维度中 SCD 2 属性的数量是否有限制?我的维度很宽,比如 300 列,其中一位用户要求 scd 类型 2 跟踪大约 150 列。在暗淡中有这么多 scd2 属性可以吗?因此,是否会对多维数据集和仪表板等下游报告 BI 解决方案的性能产生任何影响?

  • 在 OLTP 系统中,我们维护一个“审计”表来记录任何更新。尽管这不是一种非常容易查询的格式,但我们得到了与此更改相关的大多数问题的答案。我们不需要太多关于数据变化的报告。当然,有一些重要的列,比如Status我们肯定需要 SCD2,但其余列,我不确定 DWH 中许多其他列的历史是否会增加任何价值。我的问题是当我们在 OLTP 中有这个审计表时,我如何确定 DWH 中哪些属性需要 SCD 2?

4

1 回答 1

0

好习惯?是的。经常被忽视的维度建模的标准特征。我已经看到了 SCD0、SCD1 和 SCD2 组合的尺寸,没有什么可以阻止其他 SCD 类型的使用。

列没有限制,但这似乎有点过分。您可能希望使用“散列”方法来检测 SCD2 更改,在该方法中计算 SCD2 列的散列,并使用此值来检测是否有任何列发生了更改。

抱歉,我不明白关于审计日志的问题。这些日志是您的数据源吗?

于 2019-03-21T23:13:38.577 回答