缓慢变化的维度类型2

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

我正在尝试使用 Pentaho 创建一个 SCD 类型 2 数据仓库。我实际上不知道如何同时正确地加载 surrogate_ids 和其他数据。如果有人帮忙,我会很高兴。

我正在尝试做SCD类型2。但我做不到,因为我是新人。我想看看真实的项目。

pentaho scd2
1个回答
0
投票

最常见的方法,也可能是最有效的方法是

  • 在数据库中设置一个视图,具有生成 SCD2 数据的功能并通过表输入步骤将其加载到 pentaho 中
  • 或者通过表输入从数据库中检索数据,并编写功能以直接在输入表步骤中生成 SCD2。

与此并行,还有第二个输入步骤连接到您的 DWH,您可以在其中从集合中检索当前数据。对于 SCD2,通常只需检索活动数据就足够了,但这取决于您的维度的精确布局。

然后包括一个合并步骤,将新数据(来自 rel 数据库)与现有数据(来自 dwh)进行比较。此比较不是在代理键上进行的,而是在真实的多列键上进行的。所以可能类似于 systemid、validationstartddate 或 systemid、版本。再次取决于您的 SCD2 设置。

比较后,合并步骤将每行返回一个标志字段,指示该行是否已更新、删除、新增或未更改。基于这些标志字段,您可以使用切换步骤将所有四个流(如果您忽略未更改(无需操作)和删除(维护历史记录),则发送 2 个流)到正确的功能。

因此,如果发生更改,您可能需要更新该行,原则上这应该只是将 valid_enddate 从 null 更新为日期。

如果是新的,您可能需要插入行。如果您在 dwh 中设置一个序列作为 surrogate_id 的默认值,它应该会自动获得一个新的 surrogate_id。

如果需要的话,如果我有更多时间,我会在稍后添加一些屏幕截图。如果需要请告诉我。

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