首页 » 编程开发 » Informatica » 正文

Informatica Update组件:Update Strategy Transformation用法实例教程

Informatica作为一个ETL工具,在实际使用中经常会需要执行UPDATE操作,Update Strategy作为Informatica专门的UPDATE组件,网上有详细介绍的教程并不多,在这里我根据自己实际使用经验,向大家介绍下。
在使用Update Strategy组件之前,我们必须在目标表建立索引,索引字段就是更新的时候需要判断的那个字段,这点非常重要。
1、在mapping中拖出Update Strategy组件,双击进入并将Ports选项卡中的字段配置好。如下图:

1

2、Update Strategy组件打开,在Properties选项卡中,我们可以看到“Update Strategy Expression”选项,这里主要是指定数据往目标表的操作类型,比如更新or插入or删除,INSERT为0,UPDATE为1,DELETE为2,REJECT为3,默认值是0。如下图:

2

如果你想根据source表中每行的字段值来判断进行何种操作,那么可以在这里用IFF语句或者decode函数进行判断,如下图:

3

3、最后一点,也是最重要的一点,就是mapping中有US时,mapping对应的session的在配置属性时必须把Treat rows属性设置为Data Driven,否则US将不起作用,具体的就是在workflow中引用mapping之后,双击打开在“Properties”选项卡中有一个“Treat source rows as”属性,我们需要将它设置为“Data Driven”,如下图:

5

4、补充一点,如果你需要根据源表的数据向目标表更新数据,如果目标表存在就是进行更新操作,不存在就进行插入操作。设置方法为:mapping对应的session的属性配置打开后(通俗点将就是在workflow中引用mapping之后双击打开mapping之后选中mapping选项卡),在targets中我们可以看到Update as Update,Update as Insert,Update else Insert等选项,我们只要设置成Update else Insert就可以了。这三种插入方式具体的意义如下:

Update as Update : 对于所有被标记为Update的数据,进行Update操作。
Update as Insert:    对于所有被标记为Update的数据,全部进行Insert操作,不做Update操作。
Update else Insert: 对于所有被标记为Update的数据,先做Update操作, 然后对没有Update成功的数据,再进行Insert操作。

发表评论