我想知道如何通过 Informatica 获取最新的更新记录。假设我在一个临时表中有 10 条记录。Account1 有 3 条记录,Account2 有 3 条记录,Account3 有 4 条记录。现在在这 3 个帐户中,我只需要获取那些具有最大日期值(最新日期)的记录并插入另一个临时表中。那么我可以使用哪些转换来获得这个或我应该使用的 informatica 逻辑?请帮忙。
问问题
1703 次
3 回答
1
- 如果 Date 列来自具有唯一日期的输入,则基于此使用聚合器转换并获取最大日期。
- 如果不存在日期列,请分配系统时间戳,但不能从中获取最大日期。您必须使用其他一些逻辑,例如 rowid 和 rownum 功能。
于 2012-02-21T05:21:12.080 回答
0
如果源是 DB,我们可以在 SQ 本身中进行 - 通过 pk 字段分组编写一个临时表,并选择此 pk 字段和 max(date)。然后根据 pk 和日期将此输出与原始源连接。例如:
select * from src_table
join ( select pk,max(date) as maxdate from src_table ) aggr_table
on src_table.pk=aggr_table.pk
and src_table.date=aggr_table.maxdate
同样可以使用聚合器和连接器在 informatica 内部实现。但是由于聚合器源是 sq 并且它的输出再次与 sq 连接,因此在聚合器和连接器之间需要一个排序器。
于 2016-02-26T20:14:31.283 回答
0
您可以使用聚合器转换。您可以先使用排序器转换,并根据帐户和日期 asc 进行排序。之后您可以使用聚合器转换(基于帐户的分组)。您不需要添加任何条件或分组功能,因为聚合器会给出每个组的最后记录。
于 2016-04-20T18:59:40.267 回答