除了 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?的主要内容,如果未能解决你的问题,请参考以下文章