在Informatica中使用动态查找缓存的SCD2 ...您将如何同步缓存

时间:2014-02-21 13:39:19

标签: dynamic lookup informatica-powercenter

这是我的问题,在Google上我可以找到很多帖子,我们可以使用动态缓存实现SCD2 ...

当我们有一个动态缓存时......假设有一条新记录,它会被插入....如果有一个更改的记录,那么现有的记录会被更新。

因此,请考虑更改记录的情况......现有记录将会更改。

现在对于SCD2 ...我们更新现有的和新的插入为当前。

使用Newlookup端口,我们可以识别是否有更改或是否有新的更改....并且可以根据SCD2明确更新插入目标。

但在这种情况下,您的目标表和动态缓存将不同步。由于您的缓存只会更新,但您的目标将根据SCD2历史记录维护进行更新以及新记录插入。

因此,如果您的缓存与目标...不同步,那么我们怎么能说使用动态查找可以实现SCD2。

请分享您的观点。

2 个答案:

答案 0 :(得分:1)

基本上,您希望仅保留当前行版本与查找缓存同步。处理完新行后,它将转到Lookup缓存和目标表:

Lookup cache                   |    DB Table
Key    Active   Description    |    Key    Active   Description    
-------------------------------------------------------------------
AA1    1        The Moon            AA1    1        The Moon

现在,如果我们获得一个具有相同密钥的行,但描述已更新:

Lookup cache                   |    DB Table
Key    Active   Description    |    Key    Active   Description    
-------------------------------------------------------------------
AA1    1        The Sun             AA1    1        The Sun
                                    AA1    0        The Moon

将更新查找缓存,我们将新行插入目标表并将现有行标记为非活动状态。现在,如果比较活动行,查找缓存将与DB同步。

答案 1 :(得分:0)

查找仅保留目标表中的活动记录。这就是我们使用查询覆盖的原因。 我们的座右铭应该是在查找和目标表中保持这些活动记录同步。在SCD2中,更新的记录被插入目标表中,新的开始日期作为活动记录,旧记录将结束日期。因此,我们需要将旧记录替换为查找缓存中的新记录,以使活动记录保持同步。