Informatica Update更新逻辑机制优先顺序详解

14 篇文章 1 订阅
10 篇文章 0 订阅

Informatica 作为ETL工具,Update是其很重要的一个特性。也正因为如此,我们会发现在Informatica工具的很多地方都会有Update的相关设置,许多时候给大家都造成了很大的迷惑,不知道谁先谁后,谁的优先级高,或者具体的作用是什么,希望能借此文给大家一个清晰的概念。

       Informatica 的Update过程简单说,就是给每条数据设置一个Delete,Insert,Update或者Reject的标志的过程,我们统称为设置更新标志位的过程,最终调度程序将根据标志位来进行具体的更新操作执行。以下根据标志的设置顺序进行详细说明。

1.Init

      对于任何一个Mapping的每一条数据, 初始默认标志为Insert。即在整个过程中,如果没有任何更改标志位的操作,这条数据将作Insert操作。

2.在Mapping中使用了Update Strategy

当在Mapping中使用了Update Strategy时,则根据DD_UPDATE,

DD_INSERT, DD_DELETE等可以将更新标志位的值由Insert更改为Update,Insert,Delete等。

3.Treat Source Rows As

        在Session属性设置里,通过设置Treat Source Rows As 的值,可以再一次对标志位进行更新,也就是说无论Mapping里设置了何种更新标志,在此,又可以进行一次更改。如果选择了Insert,Update, Delete三种方式,则无论在Mapping中如何修改更新标志位,在此将统一全部更改为Insert,Update,Delete。选择Data Driven时,系统将不对标志位做任何修改,维持原来的标志位值。

4.Target Properties

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

Target load type:(载入模式)
Normal:对于有主键或约束的目标表进行逐个载入
bluk:对于没有主键或约束的目标表进行批量载入
session目标表map操作复选框(对于没有勾选标记的操作,工作流遇到时不做任何操作)
Insert:对于所有被标记为Insert的数据,进行Insert操作。
Update as Update : 对于所有被标记为Update的数据,进行Update操作。
Update as Insert:  对于所有被标记为Update的数据,全部进行Insert操作,不做Update操作。
Update else Insert:对于所有被标记为Update的数据,先做Update操作,然后对没有Update成功的数据,再进行Insert操作。
Delete:对于所有被标记为Delete的数据,进行Delete操作。
Truncate target table option:在插入目标表前先truncate清空目标表。

     它的最初默认设置即是图中所示,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个步骤就是一个标志位的设置过程。

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

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值