INFORMATICA 时间戳增量抽取+增量更新 以及通过DAC控制
INFORMATICA中的模型图
1 时间戳增量抽取
设计数据库源表,update 是 DATE格式
目标表现在没有数据
设置变量
路径-》Mappings - >Parameters and Variables
$$v_pumpdt ,date/time的格式可以先不设置变量,进行DUBUG 查看一下数据库的数据进入informatica 的格式
这样你就知道了 初始化时应该是什么样子了 我的是: mm/dd/yyyy hh24:mi:ss
修改SQL组件的过滤方式
先输入与数据库的连接条件,然后点击Generate SQL 然后输入条件
WHERE
SALES_ORDER.UPDATED > '$$v_pumpdt'
AND
SALES_ORDER.UPDATED < '$$$SESSSTARTTIME'
添加一个Expression组件
SETVARIABLE($$v_pumpdt,SESSSTARTTIME)
到这一步就可以对增量抽取进行测试了,在workflows里可以查看工作流执行完后变量的变化
2 增量更新
添加一个 lookup transformation 并选择目标表
删除没用的字段,将SQL组件的连接条件拉过来
将目标表的ID拉到Expression组件,添加一个字段,该字段含义是更新或者插入的标识符
INSERT_UPDATE_FLAG
表达式为:
IIF(ISNULL(INTEGRATION_ID),'INSERT','UPDATE')
将INSERT_UPDATE_FLAG字段拉到 update Strategy Transformation
修改 条件
新人的坑,发现插入到目标表有反应,但是更新没有反应,解决方式有两种,1 :到目标表设计的地方为目标表设置主键
2:重写更新机制
3 DAC控制
Value 代表初始化的值,每次都会初始化变量,使用Value的值,
想要工作流正常跑即自动增量更新,就勾选Inactive 使其失效,以后想初始化变量的时候直接使能即可