zoukankan      html  css  js  c++  java
  • 【转】Informatica Update 机制详解

    转载源:http://informatica.iblog.com/post/3070/381606

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

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

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

  • 相关阅读:
    cxf简单实例
    生成素描图片
    Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (2)
    Robotlegs2 学习笔记 -- SwiftSuspenders 2.x (1)
    Spring boot的put请求 (如何实现RestFul Api风格)
    net start npf启用失败
    vue项目中:‘vue-cli-service' 不是内部或外部命令,也不是可运行的程序或批处理文件的报错
    SpringBoot + Mybatis 打印sql语句修改配置文件的方式
    vue-cli最新脚手架的安装
    SpringBoot项目中设置日期返回的格式
  • 原文地址:https://www.cnblogs.com/liuys635/p/14243411.html
Copyright © 2011-2022 走看看