Загрузка данных в зависимости от состояния целевой таблицы в 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 цели:

введите описание изображения здесь

Другие вопросы по тегам