Concurrency Powercenter-并发目标实例

Concurrency Powercenter-并发目标实例,concurrency,target,informatica,informatica-powercenter,Concurrency,Target,Informatica,Informatica Powercenter,在这种情况下,同一目标的实例从单个源限定符加载时的执行顺序不同。 当我们在升级后的测试中执行从开发人员到测试的映射时,我们遇到了一个问题 例如,我们有一个路由器,它有3个用于插入、更新和删除的组,然后是适当的更新策略,以相应地设置行类型,然后是三个目标实例 RTR ----> UPD_Insert -----> TGT_Insert \ \__> UPD_Update -------> TGT_Update \

在这种情况下,同一目标的实例从单个源限定符加载时的执行顺序不同。 当我们在升级后的测试中执行从开发人员到测试的映射时,我们遇到了一个问题

例如,我们有一个路由器,它有3个用于插入、更新和删除的组,然后是适当的更新策略,以相应地设置行类型,然后是三个目标实例

RTR ----> UPD_Insert -----> TGT_Insert
      \
       \__>   UPD_Update -------> TGT_Update
        \
         \__>  UPD_Delete --------->  TGT_Delete
当我们使用数据进行测试时,基于相同的主键执行插入、更新和删除,我们在测试中得到的执行顺序与开发环境中的相同数据不同

任何人有任何想法-我会发布一张图片,但我还没有足够的信誉

干杯


Gil.

只要有一个源,就无法控制加载顺序。我认为您可以分离负载以使用单独的源可以使用映射中的目标负载顺序设置,或者您甚至可以为它们创建单独的映射。
现在,您应该使用单个目标并利用更新策略转换来确定每个通过的记录所需的操作。然后可以使用排序来定义对物理表执行不同操作的顺序。

您可以在更新策略之前使用排序器转换……根据更新策略条件,您可以对传入行进行排序……因此,第一个日期将通过插入,最后通过删除策略进行更新

简单的解决方案是尝试按字母顺序重命名目标定义。。。像
插入A
更新B
删除C
然后开始加载


这将按A、B、C顺序加载。试着让我知道

@MarekGrzenkowicz数据来自CDC,因此顺序反映了要在目标上复制的事件的实际顺序,因此很重要。也许即使不改变映射,排序也足够了。忽略了要点,因为我们试图通过CDC读取来保持事件序列与源代码处发生的更新相同。CDC读取获取的数据行的顺序正确问题在于,DTM引擎的块自然在从单个源写入同一目标的3个实例后扰乱了该顺序。我们不能拆分为所有插入,然后是所有更新,然后是所有删除,因为这不反映源事件序列并且会破坏数据完整性。在整个工作日内,行在同一主键上不断插入、更新和删除。CDC在一个通宵运行中应用所有这些,因此顺序至关重要。现在,我改变了逻辑,使用单一目标,在更新策略中设置插入、更新、删除,并使用动态查找缓存,对于逻辑上简单的一组操作来说,就像我最初的设计和发布一样,这已经变得非常复杂了。。。只有我两便士的欢呼声,吉尔。好吧,我错过了。但是,如果您的记录已经按正确的顺序出现,您只需跳过排序即可。如果使用1个目标并使用更新策略对每个记录进行正确编码,则应该可以。请记住将会话设置为将源行视为“数据驱动”,否则更新策略将不起作用。