Загрузка данных в зависимости от состояния целевой таблицы в talend
У меня есть таблица (цель), которая имеет 5 строк, имя одного из столбцов:slno имеют значения (12,13,14,34,56)
Мне нужно загрузить данные из моей исходной таблицы в цель, основываясь на максимальном значении цели.
Пример:
Если в исходной таблице для столбцов slno значения (12,13,14,34,56,88,89,90,99)
только тогда (88,89,90,99)
значения должны идти к цели (вместе со всеми значениями строк), в основном мне нужно найти максимум из цели и исходя из этого мне нужно загрузить строки после этого значения.
Я пытался с помощью tJavaRow
, tSetGlobalVar
, tAggregateRow
, но не в состоянии понять, как на карте.
1 ответ
Есть много способов сделать это.
Если ваши исходная и целевая таблицы находятся в одной базе данных, вы можете отфильтровать исходный запрос следующим образом:
select *
from source
where slno > (select max(slno) from target)
А затем загрузите строки в вашей целевой таблице.
Но если это не так, вы можете сделать это в Talend:
Поиск по цели получает максимальное значение slno:
SELECT max(slno)
FROM target
Его схема содержит только один столбец (max_slno):
И внутри tMap
, отправляйте только те строки, в которых значение slno источника больше максимального значения slno цели: