除了 pentaho 中的插入/更新步骤之外,是不是有任何步骤或逻辑可以保持 SCD 类型 1?

Posted

技术标签:

【中文标题】除了 pentaho 中的插入/更新步骤之外,是不是有任何步骤或逻辑可以保持 SCD 类型 1?【英文标题】:Is there any step or logic which will maintain SCD type 1 apart from Insert/Update step in pentaho?除了 pentaho 中的插入/更新步骤之外,是否有任何步骤或逻辑可以保持 SCD 类型 1? 【发布时间】:2014-12-19 13:29:32 【问题描述】:

除了插入/更新步骤之外,是否有任何步骤或逻辑可以维护 SCD 类型 1。至于为大数据维护这一点需要大量时间。 这是一个简单的步骤,其中从我们获取的表中获取最大(更新时间)以及更新日期之后的数据,并根据插入/更新中的业务键简单地插入目标表中。 详细的解释会很有帮助

【问题讨论】:

您尝试过Merge Rows Diff 步骤吗?在这里查看我的答案:Insert/Update step. 【参考方案1】:

对于纯维度控制,您可以使用组合查找/更新或维度查找/更新(更新类型 = 更新或穿透,它表现为 SCD 类型 I)。

但是,它们总是会遇到同样的问题:往返于数据库,会降低您的速度。他们通过缓存在一定程度上缓解了这种情况,但这可能还不够,具体取决于可能需要多少更新。

另一种选择是使用组合表输出+更新步骤,使用以下技巧:

    在数据库上为作为 SCD 键的字段创建唯一索引; 尝试使用表输出步骤插入所有记录。数据库中已经存在的那些行将被拒绝。 在表输出后添加一个更新步骤,但不是将其与“步骤的主要输出”黑跳连接,而是通过错误处理红跳连接。

数据库中不存在的行将由表输出插入而不进行任何查找。那些失败的(因为它们已经存在),将被发送到更新步骤。

【讨论】:

以上是关于除了 pentaho 中的插入/更新步骤之外,是不是有任何步骤或逻辑可以保持 SCD 类型 1?的主要内容,如果未能解决你的问题,请参考以下文章

pentaho 数据集成中新插入或更新的行数

Pentaho/PDI/Kettle:如何用 Excel 电子表格中的值填充“插入/更新”?

如何使用 pentaho 水壶查看 http 标头

Pentaho:恢复转型

多个 Pentaho 转换“变量?”

Pentaho:将一组动态记录插入数据库