дополнительная нагрузка в хранилище данных - PullRequest
0 голосов
/ 28 октября 2019

У меня есть две таблицы (Tparam & Customer) в talend. Первая таблица содержит глобальную дату обновления базы данных, а таблица Customer содержит много строк, и в каждой строке есть столбец с именем UPDATE DATE.

. Теперь мне нужно иметь добавочную загрузку в базе данных с этим заданием talend. Я должен получить строки где UPDATE DATE > GLOBAL UPDATE DATE и загрузить их в хранилище данных.

Я попытался поместить глобальную дату обновления в переменную и запустить задание, чтобы выбрать строки, где дата обновления> ГЛОБАЛЬНАЯ ДАТА ОБНОВЛЕНИЯ.

Ниже моя работа: в tjavaFlex я создал строку, которая содержит запрос и переменную глобального обновления переменной. запрос:

String Query = "SELECT *  FROM [ProjetBI_DW].[dbo].[W_CLIENT_D] where [UPDATE_DATE]";

и в теле:

Query = Query + ">" + row5.UPDATEDATE ;

https://i.stack.imgur.com/uJvaz.png

1 Ответ

0 голосов
/ 29 октября 2019

Я думаю, что вы не можете использовать

Query + ">" + row5.UPDATEDATE ;

Так как row5 - ваш текущий поток, он не будет работать для использования его в компоненте tMSSQLInput_5. Вы должны использовать глобальную или контекстную переменную.

В вашей первой подработке вы должны поместить дату обновления в глобальную переменную или в контекстную переменную.

Запрос в вашем "tParam"Компонент должен возвращать только одну строку, «globalUpdateDate». Тогда вы можете использовать простой tJavaRow вместо tJavaFlex с кодом:

context.myGlobalUpdateDate = input_row.globalUpdateDate

Не забудьте объявить вашу переменную контекста в задании.

Затем в tMSSSQLInput_5 используйте запрос с вашимпеременная контекста.

"SELECT *  FROM [ProjetBI_DW].[dbo].[W_CLIENT_D] where [UPDATE_DATE] > '"+context.myGlobalUpdateDate+"'"
...