INFORMATICA 时间戳增量抽取 以及通过DAC控制

INFORMATICA  时间戳增量抽取+增量更新 以及通过DAC控制

INFORMATICA中的模型图

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第1张图片

1 时间戳增量抽取

设计数据库源表,update 是 DATE格式

目标表现在没有数据

设置变量

路径-》Mappings - >Parameters and Variables

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第2张图片

$$v_pumpdt ,date/time的格式可以先不设置变量,进行DUBUG 查看一下数据库的数据进入informatica 的格式

这样你就知道了 初始化时应该是什么样子了 我的是: mm/dd/yyyy hh24:mi:ss

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第3张图片

修改SQL组件的过滤方式


先输入与数据库的连接条件,然后点击Generate SQL 然后输入条件

WHERE 
SALES_ORDER.UPDATED > '$$v_pumpdt'
AND 
SALES_ORDER.UPDATED < '$$$SESSSTARTTIME'

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第4张图片


添加一个Expression组件

SETVARIABLE($$v_pumpdt,SESSSTARTTIME)

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第5张图片


到这一步就可以对增量抽取进行测试了,在workflows里可以查看工作流执行完后变量的变化

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第6张图片

2 增量更新

添加一个 lookup transformation 并选择目标表

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第7张图片

删除没用的字段,将SQL组件的连接条件拉过来

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第8张图片


将目标表的ID拉到Expression组件,添加一个字段,该字段含义是更新或者插入的标识符  

INSERT_UPDATE_FLAG

表达式为:

IIF(ISNULL(INTEGRATION_ID),'INSERT','UPDATE')

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第9张图片


将INSERT_UPDATE_FLAG字段拉到 update Strategy Transformation

修改 条件

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第10张图片


新人的坑,发现插入到目标表有反应,但是更新没有反应,解决方式有两种,1 :到目标表设计的地方为目标表设置主键

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第11张图片

2:重写更新机制

3 DAC控制

Value 代表初始化的值,每次都会初始化变量,使用Value的值,

想要工作流正常跑即自动增量更新,就勾选Inactive 使其失效,以后想初始化变量的时候直接使能即可

INFORMATICA 时间戳增量抽取 以及通过DAC控制_第12张图片







你可能感兴趣的:(INFORMATICA 时间戳增量抽取 以及通过DAC控制)