我们有两个数据源,需要合并为一个。我们需要保留最近的行。源具有相同的列。关键是机器列。
输入:
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=机器