使用Informatica 9.1.0
方案
从Fact load中获取Dimension键并将其插入Fact表。
我必须使用维度键和其他列加载Fact表。此维度记录是在同一映射中创建的。有五个不同的会话使用相同的映射并同时执行以加载Fact表。在这种情况下,我使用动态查找,启用“同步动态缓存”以使用某些条件获取从5个会话生成的唯一维度记录。使用查找的关联表达式中的Sequence-ID生成维度ID。单独运行一个会话就可以了。但是当会话并行运行时,它开始显示唯一的密钥违规错误,因为随机会话试图插入已经存在的相同序列。
要解决此问题,我必须启用持久查找缓存和缓存文件名前缀。但我没有在任何论坛或INFA社区中找到此解决方案或此问题。所以不确定这是正确的做法,或者这是某种错误。
如果您有类似的问题或不同的想法,请告诉我。
提前致谢
答案 0 :(得分:0)
我能想到的另一个可能的解决方案是让数据库生成序列而不是使用Informatica的sequencer。数据库应该能够避免任何唯一的密钥违规。