informatica 中一组记录的最后一行

Last row in a set of records in informatica

我需要识别一组记录中的最后一行并使用 informatica 为该行分配一个标志,但不确定聚合器是否会完成这项工作或排名。分组基于多列。有什么建议吗?

您可以使用排名或聚合器,然后进行连接器转换。

聚合器 - 我的偏好。

  • 首先按键排序数据。您需要注意顺序,因为顺序将决定标记哪一行。顺序应该是 Asc。假设您有一个密钥,然后您有一个要在其上查找最新日期的日期列。所以先按键排序,然后按日期列排序。
  • 然后使用聚合器 - 这里使用所有键列作为分组依据。这将确保最后一列通过聚合器。请注意,您只需要提及分组依据中的关键列。然后使用表达式创建标志列。
  • 之后使用连接器将聚合数据连接回主流。加入条件将基于键值。请注意,您只需要在连接条件中提及关键列。因此,joiner 输出将是所有数据 + flag_value.

整个映射应该是这样的-

SRT -->AGG--> EXP-->|
 |----------------->|JNR --> next transformations            

Rank 这和上面的过程类似。唯一的区别是我们将使用排名而不是聚合器。 因此,除了等级之外,请按照上述步骤操作。在排名转换中,请注意,你想要顶行,使用正确的按列排序。

映射应该是这样的

SRT -->RNK--> EXP-->|
 |----------------->|JNR --> next transformations