【问题标题】:In SCD Type2 how to find latest record在 SCD Type2 中如何查找最新记录
【发布时间】:2017-11-22 15:11:43
【问题描述】:

我有表,我已经在 scdtype 2 中运行了作业,加载下面的数据


no | name | loc |
-----------------
1  | abc  | hyd |
-----------------
2  | def  | bang |
-----------------
3  | ghi  | chennai |

然后我已经运行第二次运行加载下面给出的数据


no | name | loc |
-----------------
1  | abc  | hyd |
-----------------
2  | def  | bang |
-----------------
3  | ghi  | chennai |
--------------------
1  | abc  |  bang |

这里没有日期、标志和运行 ID 如何在这种情况下找到第二条更新记录

谢谢

【问题讨论】:

  • 我不相信你可以。您的维度中应该有日期和标志(从日期开始有效,至今有效,iscurrent 标志将是一个好的开始)。
  • 您肯定找不到每个主键的 latest 记录 (no)。您可以做的是查找给定键的所有新记录(简单地使用MINUS)。如果给定键有多个记录来建立排序顺序,您将遇到麻烦。所以你的界面是有问题的。
  • 你不能——因为这不是一个正确的 SCD2 实现。这需要重新设计。

标签: etl data-warehouse informatica


【解决方案1】:

我认为您无法区分更新后的记录和原始记录。

使用类型 2 SCD 的维度表需要额外的列来描述记录有效(或当前)的时间段,正是出于这个原因。

解决方案是确保您的维度表具有这些列(通常是 ValidFrom 和 ValidTo 日期或日期/时间,有时还有一个 IsCurrent 标志以表示良好的衡量标准)。然后,您的 ETL 流程将填充这些列,作为进行类型 2 更新的一部分。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-22
    • 1970-01-01
    • 2013-09-12
    • 2012-11-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多