我正在尝试使用 Pentaho 创建一个 SCD 类型 2 数据仓库。我实际上不知道如何同时正确地加载 surrogate_ids 和其他数据。如果有人帮忙,我会很高兴。
我正在尝试做SCD类型2。但我做不到,因为我是新人。我想看看真实的项目。
最常见的方法,也可能是最有效的方法是
与此并行,还有第二个输入步骤连接到您的 DWH,您可以在其中从集合中检索当前数据。对于 SCD2,通常只需检索活动数据就足够了,但这取决于您的维度的精确布局。
然后包括一个合并步骤,将新数据(来自 rel 数据库)与现有数据(来自 dwh)进行比较。此比较不是在代理键上进行的,而是在真实的多列键上进行的。所以可能类似于 systemid、validationstartddate 或 systemid、版本。再次取决于您的 SCD2 设置。
比较后,合并步骤将每行返回一个标志字段,指示该行是否已更新、删除、新增或未更改。基于这些标志字段,您可以使用切换步骤将所有四个流(如果您忽略未更改(无需操作)和删除(维护历史记录),则发送 2 个流)到正确的功能。
因此,如果发生更改,您可能需要更新该行,原则上这应该只是将 valid_enddate 从 null 更新为日期。
如果是新的,您可能需要插入行。如果您在 dwh 中设置一个序列作为 surrogate_id 的默认值,它应该会自动获得一个新的 surrogate_id。
如果需要的话,如果我有更多时间,我会在稍后添加一些屏幕截图。如果需要请告诉我。