Informatica 中的事务控制转换(示例)
什么是事务控制转换?
事务控制是一种主动且连接的转换,它允许我们在执行映射期间提交或回滚事务。提交和回滚操作非常重要,因为它可以保证数据的可用性。
在处理大量数据时,可能会出现将数据提交到目标的情况。如果提交执行得太频繁,那么系统就会负担过重。如果提交执行得太晚,那么在发生故障的情况下,可能会丢失数据。
因此,为了提供灵活性,提供了事务控制转换。
TCL COMMIT 和 ROLLBACK 命令
此转换中有五个内置变量可用于处理操作。
TC_CONTINUE_TRANSACTION
tc_continue_transaction 中没有执行任何操作,数据加载过程照常继续。
TC_COMMIT_BEFORE
在 tc_commit_before 中当发现设置了此标志时,将在处理当前行之前执行提交。
TC_COMMIT_AFTER
在 tc_commit_after 中,处理当前行然后执行提交。
TC_ROLLBACK_BEFORE
在 tc_rollback_before 中,先执行回滚,然后再处理数据以进行写入。
TC_ROLLBACK_AFTER
在 tc_rollback_after 中数据处理完毕然后执行回滚。
计费示例:
在此示例中,当 dept no =20 条件成立时,我们将数据提交到目标
步骤1) 创建以 EMP 为源、以 EMP_TARGET 为目标的映射
步骤2) 创建一个新的 改造 使用变换菜单,然后
- 选择事务控制作为新的转换
- 输入转换名称“tc_commit_dept20”
- 选择创建选项
步骤3) 将创建事务控制转换,选择完成按钮
步骤4) 将源限定符中的所有列拖放到事务控制转换中,然后将事务控制转换中的所有列链接到目标表
步骤5) Double 单击事务控制转换,然后在编辑属性窗口中
- 选择属性选项卡
- 点击事务控制编辑器图标
步骤6) 在表达式编辑器中输入表达式 –
“iif(deptno=20,tc_commit_before,tc_continue_transaction)”并选择确定
这意味着如果找到 deptno 20,则在目标中提交事务,否则继续当前处理。
步骤7) 在上一个窗口中选择“确定”
现在保存 制图 并在创建会话和工作流后执行它。只要在数据中找到部门编号 20,此映射就会将数据提交到目标。







