Talend获取给定键的每个实例的最近一行



我们有两个数据源,需要合并为一个。我们需要保留最近的行。源具有相同的列。关键是机器列。

输入:

tFileInputDelimited A
+---------+------+-------------------+
| Machine | Desc | LastScanTimestamp |
+---------+------+-------------------+
| M01     | AA   |                25 |
| M02     | AB   |                23 |
| M03     | AC   |                28 |
+---------+------+-------------------+
tFileInputDelimited B
+---------+------+-------------------+
| Machine | Desc | LastScanTimestamp |
+---------+------+-------------------+
| M02     | BB   |                25 |
| M03     | BC   |                27 |
| M04     | BD   |                26 |
+---------+------+-------------------+

所需输出:

+---------+------+-------------------+
| Machine | Desc | LastScanTimestamp |
+---------+------+-------------------+
| M01     | AA   |                25 |
| M02     | BB   |                25 |
| M03     | AC   |                28 |
| M04     | BD   |                26 |
+---------+------+-------------------+

我们的问题与此SQL问题类似:SQL查询以获取给定密钥的每个实例的最新行

我们无法使用SQL查询来完成此操作。我们找到了一种使用tUnite、tAggregateRow和tMap的方法。这并不是真正优雅和可维护的。

非常感谢。

我在Talend论坛上找到了一个anwser:https://www.talendforge.org/forum/viewtopic.php?id=49655

tInputFileDelimited--->tUnite--->tSortRow--->tUniqRow--->tLogRow
                     /                           
tInputFileDelimited-/

tSortRow:按LastScanTimestamp desc 排序

tUniqRow:Key=机器

最新更新