在使用infamatica powercenter时,update是一个很重要的操作,这篇文章给大家梳理一下update的原理。
根据数据流的顺序,我们把数据分成以下几个阶段:
Init : 对于任何一个Mapping的每一条数据, 初始默认标志为Insert。即在整个过程中,如果没有任何更改标志位的操作,这条数据将作Insert操作
使用Update Strategy修改更新标志: 当在Mapping中使用了Update Strategy时,则根据DD_UPDATE, DD_INSERT, DD_DELETE等可以将更新标志位的值由Insert更改为Update,Delete,reject等。
在session的property tab里面Treat Source Rows As属性的设置:通过设置Treat Source Rows As 的值,可以再一次对标志位进行更新,也就是说无论Mapping里设置了何种更新标志,在此,又可以进行一次更改。如果选择了 Insert,Update, Delete三种方式,则无论在Mapping中如何修改更新标志位,在此将统一全部更改为Insert,Update,Delete。选择Data Driven时,系统将不对标志位做任何修改,维持原来的标志位值。
最后在session的target Properties: 它的最初默认设置:Insert, Update as Update, Delete三个选项被选中。表明当Session运行的时候,碰到Insert标志的,即做Insert操作, 碰到Update标志的即做Update操作,碰到Delete标志的就做Delete操作。当然,对于update,有三个选项: Update as Update,Update as inser, update else insert需要特别说明,
Update as Update:对于所有被标记为Update的数据,进行Update操作
Update as insert:对于所有被标记为Update的数据,全部进行Insert操作
update else insert: 对于所有被标记为Update的数据, 先做Update操作,然后对没有Update成功的数据,再进行Insert操作;
需要注意的是,这三个选项是互斥的,只能选择其中一个。
因此我们需要根据业务的需要,对不同的标志位在不同的地方做不一样的设置,才能满足项目的需求。