Informatica 中的事务控制转换(示例)

什么是事务控制转换?

事务控制是一个活动的连接转换,它允许我们在映射执行期间提交或回滚事务。提交和回滚操作非常重要,因为它们可以保证数据的可用性。

在处理大量数据时,可能会出现需要提交数据到目标表的情况。如果提交过于频繁,则会给系统带来额外的开销。如果提交太晚,则在发生故障时可能导致数据丢失。

因此,为了提供灵活性,提供了事务控制转换。

TCL 提交和回滚命令

此转换中有五个内置变量可用于处理操作。

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` 中,处理数据然后执行回滚。

示例

在此示例中,当部门编号等于 20 的条件为真时,我们将向目标表提交数据。

步骤 1) 创建一个以 EMP 为源,EMP_TARGET 为目标的映射。

Transaction Control Transformation in Informatica

步骤 2) 使用转换菜单创建一个新的转换,然后:

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

Transaction Control Transformation in Informatica

步骤 3) 创建事务控制转换,然后单击完成按钮。

Transaction Control Transformation in Informatica

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

Transaction Control Transformation in Informatica

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

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

Transaction Control Transformation in Informatica

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

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

这意味着如果找到部门编号 20,则提交到目标表的事务,否则继续当前处理。

Transaction Control Transformation in Informatica

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

Transaction Control Transformation in Informatica

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