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 为目标的映射

Informatica 中的事务控制转换

步骤2) 创建一个新的 改造 使用变换菜单,然后

  1. 选择事务控制作为新的转换
  2. 输入转换名称“tc_commit_dept20”
  3. 选择创建选项

Informatica 中的事务控制转换

步骤3) 将创建事务控制转换,选择完成按钮

Informatica 中的事务控制转换

步骤4) 将源限定符中的所有列拖放到事务控制转换中,然后将事务控制转换中的所有列链接到目标表

Informatica 中的事务控制转换

步骤5) Double 单击事务控制转换,然后在编辑属性窗口中

  1. 选择属性选项卡
  2. 点击事务控制编辑器图标

Informatica 中的事务控制转换

步骤6) 在表达式编辑器中输入表达式 –

iif(deptno=20,tc_commit_before,tc_continue_transaction)”并选择确定

这意味着如果找到 deptno 20,则在目标中提交事务,否则继续当前处理。

Informatica 中的事务控制转换

步骤7) 在上一个窗口中选择“确定”

Informatica 中的事务控制转换

现在保存 制图 并在创建会话和工作流后执行它。只要在数据中找到部门编号 20,此映射就会将数据提交到目标。