使用 Pentaho Kettle (Pentaho Data Integration 5.2) 实现 SCD 类型 2

Implementing SCD Type 2 using Pentaho Kettle (Pentaho Data Integeration 5.2)

我有一个 table 计划,其中列 p_id,p_name,start_date,end_date,last_updated

问题陈述:当客户从计划 A 更改为计划 B 时,其对应于计划 A 的 end_date 在 table 中得到更新,同时插入计划 B 的新记录进入 table.

我正在创建一个数据仓库,其中 "plan" 是我的维度之一。现在,对于客户 A,我想在维度 table 中维护他的计划历史记录。我知道,我们可以使用 SCD 类型 2 维度 table 来解决这个问题。我正在使用 Pentaho 数据集成工具 5.2。我正在尝试使用工具中提供的“dimension lookup/update”功能来解决这个问题。但问题是我想从我的计划 table 中插入 "start_date" 和 "end_date" 的值,而不是 "dimension lookup/update" 中设置的值。因此,每当客户更改其计划时,其 end_date 应在维度 table 中更新,同时计划 B 的新记录应插入相同的 table 中客户。

任何人都可以建议解决此问题的最佳方法,即 start_date 和 end_date 的值应该在来自我的计划 table 的维度 table 中更新] 不是什么pentaho kettle退化了?

您可以使用更新步骤。这将使您可以灵活地使用您喜欢的 values/fields 更新任何列。

使用维度 Lookup/Update 步骤,您可以指定一个日期字段作为时间戳来分隔版本。如果不这样做,它将使用当前时间戳。

示例:一条记录​​有一组属性和一个特定的时间戳,我们称它为update_date,新记录从中开始有效。

像往常一样填写维度 lookup/update 步骤,在更新类型上使用您想要跟踪的属性作为 "Insert",但在流日期字段上键入 update?date 字段名称。以前的版本将使用该值作为 date_to,而新版本将使用它作为 date_from.