Informatica 行计数

Infomatica Row Count

我是 Informatica 的新手,我很困惑。

我有来自平面文件的数据,需要对其进行一些转换。我只需要大致了解如何实际操作。

假设我有这样的数据:

COL1、COl2、COl3、COL4

A B C D

A B B B

G G G G

B D D X

F F F F

B B A D

1) 我只需要传输第一列为 A 或 B 的行

2) 我需要 A 行的计数,我需要一个单独的 B 行计数

3) 我需要比较 A 的计数和 B 的计数。如果计数不匹配,那么我需要发送电子邮件。

有人可以给我 link 一些有用的东西,或者告诉我应该使用哪种类型的转换/逻辑吗?谢谢

有多种方法。这是一个简单的步骤。

  1. Source Qualifier 上使用过滤器以仅获取您需要的数据。
  2. 使用 Router Transformation 分成两个管道,其中两组定义为 COL1='A'COL1='B'
  3. 使用 Aggregate Transformation 获取计数(对于每个管道)。
  4. 使用Expression Transformaiton添加虚拟端口,例如joinPort = 1(对于每个管道)。
  5. 使用 Joiner Transformation
  6. 在虚拟端口上加入流水线
  7. 使用Expression Transformation比较结果。

发送电子邮件一个单独的故事。

  1. 使用工作流变量,例如wfSendEmail 初始化为 0 和一个映射变量,例如mSendEmail
  2. 在会话 Components tab 上执行 Pre-session variable assignment 并将 wfSendEmail 分配给 mSendEmail。
  3. 在上面第 6 页提到的表达式转换中,如果计数不匹配,请使用 SETVARIABLE 函数将 mSendEmail 设置为 1
  4. 在会话 Components tab 上执行 Post-session variable assignment 并将 mSendEmail 值分配给 wfSendEmail。
  5. 在会话的 link 上添加 Email task 条件 wfSendEmail=1