在 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)
SQL Server scd2 和 scd1 中的 DWH SCD 类型 2 实现
SCD (slowly changed dimension) Type 4/6 - 如何在spring boot app, hibernate envers中实现