在 Pentaho 中实现纯 SCD 类型 6

Posted

技术标签:

【中文标题】在 Pentaho 中实现纯 SCD 类型 6【英文标题】:Implementing Pure SCD Type 6 in Pentaho 【发布时间】:2016-08-25 13:32:30 【问题描述】:

我有一个有趣的任务是创建一个 Kettle 转换来加载一个 Pure Type 6 dimension 的表。这让我发疯了

假设如下表结构

|CustomerId|Name|Value|startdate|enddate|
|1|A|value1|01-01-2001|31-12-2199|
|2|B|value2|01-01-2001|31-12-2199|

然后是我的输入文件

Name,Value,startdate
A,value4,01-01-2010
C,value3,01-01-2010

kettle 转换后的数据必须是这样的

|CustomerId|Name|Value|startdate|enddate|
|1|A|value1|01-01-2001|31-12-2009|
|1|A|value4|01-01-2010|31-12-2199|
|2|B|value2|01-01-2001|31-12-2199|
|3|C|value3|01-01-2010|31-12-2199|
检查现有数据并查找传入记录是否为插入/更新 然后仅为插入记录生成代理键并执行插入。 保留更新记录的代理键并将其作为新记录插入,并为新记录分配一个开放结束日期(一个非常高的值)并关闭之前的相应记录作为新记录的开始日期 - 1

有人可以建议最好的方法吗?使用 Dimension Lookup-Update 选项我只能看到类型 1 和 2

【问题讨论】:

【参考方案1】:

我使用 ETLT 的混合方法来做到这一点。

【讨论】:

以上是关于在 Pentaho 中实现纯 SCD 类型 6的主要内容,如果未能解决你的问题,请参考以下文章

在子类中实现纯虚方法

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

在 Objective-C 中实现纯虚方法

SQL Server scd2 和 scd1 中的 DWH SCD 类型 2 实现

SCD (slowly changed dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现

BGP与6PE