Informatica Update 机制详解

Informatica Update 机制详解
Informatica Update 机制详解

Informatica Update 机制详解

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的属性设置。

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

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

相关主题
相关文档
最新文档