我有一张桌子,计划,列p_id,p_name,start_date,end_date,last_updated
问题陈述:当客户从计划A更改为计划B时,其对应于计划A的end_date将在表中更新,同时计划B的新记录将插入到表中。
我正在创建一个数据仓库,其中“计划”是我的维度之一。现在,对于客户A,我想在维度表中维护他的计划历史记录。我知道,我们可以使用SCD Type 2维度表来解决这个问题。我正在使用 Pentaho Data Integeration工具5.2 。我正在尝试使用该工具中提供的“维度查找/更新”功能来解决此问题。但问题是我想从我的计划表中插入“start_date”和“end_date”的值,而不是“维度查找/更新”中设置的值。因此,无论何时客户更改其计划,都应在维度表中更新其end_date,同时应在同一客户的表格中插入计划B的新记录。
任何人都可以建议解决此问题的最佳方法,即start_date和end_date的值应该在维度表中更新,这些值来自我的计划表而不是pentaho kettle退化的内容?
答案 0 :(得分:2)
使用“维度查找/更新”步骤,您可以指定日期字段作为分隔版本的时间戳。如果不这样做,它将使用当前时间戳。
示例:记录具有一组属性和特定时间戳,让我们称之为update_date,新记录有效。
像往常一样填写维度查找/更新步骤,并在更新类型上将要跟踪的属性作为“插入”,但在流日期字段中键入更新?日期字段名称。以前的版本将使用该值作为date_to,而新版本将使用它作为date_from。
答案 1 :(得分:1)
您可以使用UPDATE步骤。这将使您可以灵活地使用您喜欢的值/字段更新任何列。