在 talend 中根据目标 table 的条件加载数据
Loading data based on condition of target table in talend
我有一个 table(target),它有 5 行,其中一列 name:slno 有值 (12,13,14,34,56)
,我需要从我的源 table 根据目标的最大值来定位。
示例:
如果在源 table 中,slno 列的值是 (12,13,14,34,56,88,89,90,99)
,那么只有 (88,89,90,99)
值应该转到目标(连同所有行值),基本上我需要找到最大值从目标并基于它我需要在该值之后加载行。
我尝试使用 tJavaRow
、tSetGlobalVar
、tAggregateRow
,但不知道如何映射。
有多种方法可以做到这一点。
如果您的源和目标 table 在同一个数据库中,您可以像这样过滤源查询:
select *
from source
where slno > (select max(slno) from target)
然后加载目标中的行 table。
但如果不是,您可以在 Talend 中完成:
对目标的查找得到 slno 的最大值:
SELECT max(slno)
FROM target
其架构仅包含一列 (max_slno):
并且在 tMap
中,只发送源的 slno 大于目标的 slno 最大值的行:
我有一个 table(target),它有 5 行,其中一列 name:slno 有值 (12,13,14,34,56)
,我需要从我的源 table 根据目标的最大值来定位。
示例:
如果在源 table 中,slno 列的值是 (12,13,14,34,56,88,89,90,99)
,那么只有 (88,89,90,99)
值应该转到目标(连同所有行值),基本上我需要找到最大值从目标并基于它我需要在该值之后加载行。
我尝试使用 tJavaRow
、tSetGlobalVar
、tAggregateRow
,但不知道如何映射。
有多种方法可以做到这一点。
如果您的源和目标 table 在同一个数据库中,您可以像这样过滤源查询:
select *
from source
where slno > (select max(slno) from target)
然后加载目标中的行 table。
但如果不是,您可以在 Talend 中完成:
对目标的查找得到 slno 的最大值:
SELECT max(slno)
FROM target
其架构仅包含一列 (max_slno):
并且在 tMap
中,只发送源的 slno 大于目标的 slno 最大值的行: