Informatica Update (转载)

原创】whyu 小记之 Informatica Update 机制详解
好久没有发点东西了,最近有点时间,写了这篇文章,希望能给大家一点帮助。
详细的也可以到 http://informatica.iblog.com/上来看。
Informatica 作为 ETL工具,Update是其很重要的一个特性。也正因为如此,我们会发现在Informatica工具的很多地方都会有Update的相关设置,许多时候给大家都造成了很大的迷惑,不知道谁先谁后,谁的优先级高,或者具体的作用是什么,希望能借此文给大家一个清晰的概念。

       Informatica 的Update过程简单说,就是给每条 数据设置一个Delete,Insert,Update或者Reject的标志的过程,我们统称为设置更新标志位的过程,最终调度程序将根据标志位来进行具体的更新操作执行。以下根据标志的设置顺序进行详细说明。
Init
      对于任何一个Mapping的每一条数据, 初始默认标志为Insert。即在整个过程中,如果没有任何更改标志位的操作,这条数据将作Insert操作。
在Mapping中使用了Update Strategy
当在Mapping中使用了Update Strategy时,则根据DD_UPDATE, DD_INSERT, DD_DELETE等可以将更新标志位的值由Insert更改为Update,Insert,Delete等。
Treat Source Rows As
          在Session属性设置里,通过设置Treat Source Rows As 的值,可以再一次对标志位进行更新,也就是说无论Mapping里设置了何种更新标志,在此,又可以进行一次更改。如果选择了Insert,Update, Delete三种方式,则无论在Mapping中如何修改更新标志位,在此将统一全部更改为Insert,Update,Delete。选择Data Driven时,系统将不对标志位做任何修改,维持原来的标志位值。

   4. Target Properties


最后一个对更新产生影响的地方,即是Target的属性设置。

它的最初默认设置即是图中所示,Insert, Update as Update, Delete三个选项被选中。这儿就是我们所说的最终调度执行的依据。默认的3个选中选项,表明当Session运行的时候,碰到Insert标志的,即做Insert操作,碰到Update标志的即做Update操作,碰到Delete标志的就做Delete操作。当然, 我们可以把钩取消掉,这样Informatica运行时,碰到相应标志的数据,将不做任何操作。例如,把Insert的钩取消掉,那Session运行过程中,将对所有标记为Insert的数据不做任何操作。

这儿需要特别解释的便是Update的方式,它具有三种方式可以选择。在此将对这3种方式,做一个详细的说明。        首先,需要特别说明的是,这3种方式是互斥的,即同时只能选中一个。

Update as Update : 对于所有被标记为Update的数据,进行Update操作

Update as Insert:    对于所有被标记为Update的数据,全部进行Insert操作,不做Update操作

Update else Insert: 对于所有被标记为Update的数据, 先做Update操作,然后对没有Update成功的数据,再进行Insert操作。假设这3条数据在前面所述步骤中被设置为Update标志, 而我们的Target Properties设置为Update Else Insert,此时的Informatica将如何运行呢。
  数据1,2,3将首先进行Update操作,而1,2根据主键找到了相应的数据进行Update,而3则没有找到,Update失败,然后对于3, Informatica将采取Insert方式进行操作,最终结果便是

(图)


最后我们可以用一个图来说明Informatica整个更新的过程:

(图)  

在初始化时,我们的更新标志都被默认设为Insert,而其中第二和第三步都可以对标志位进行更改,也就是说前面的所有3个步骤就是一个标志位的设置过程。

  最后一步,则是具体的执行操作。根据设置的不同,执行的过程会采取几种不同的方式执行。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23431185/viewspace-628852/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23431185/viewspace-628852/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值