Я ищу способ разделения выполнения задания в студии талантов в соответствии с фактической строкой файла. Я хотел бы обрабатывать строки файлов, начиная с «DEBUG» в одной ветви работы, а другой строк в другой ветке работы. Это возможно?Разделить файл на большее количество файлов в talend
ответ
Для этого используйте компонент tMap. Ваша работа будет выглядеть так:
t*Input--row-->tMap--out1--->tFileOutput*
--out2--->tFileOutput*
В компоненте tMap у вас есть вход слева и выход справа. В таблице вывода выберите «Активировать фильтр выражения» и используйте текстовое поле для определения вашего фильтра. Только строки, соответствующие этому фильтру, будут выведены из этого соединения. У вас может быть столько выходных таблиц и фильтров, сколько вам нужно.
Наконец, я использовал компонент tExctractRegeFields - просто определенное регулярное выражение для соответствия строк. Наиболее важным (и я не знал раньше) является то, что вы можете подключать компоненты с различными типами соединений. Я щелкнул правой кнопкой мыши по используемому компоненту a и выбрал Row > Reject
для новой ветки в задании, как описано в вопросе.
Использование tMap классно, но если количество выходных потоков не определено и не определено, tMap не является хорошим выбором.
В этом случае, используя итерационный ссылку или tjavaflex может помочь вам:
Посмотрите на этот учебник на «how to split a file into many files regarding a key on each record», которая объясняет, как решить такую задачу. Фактически он доступен только на французском языке. В учебном пособии представлены три различные техники для решения этой задачи.
Я быстро проверил и Google Translate работает отлично для меня ;-) – Betlista
Мы можем сделать это, используя tfileoutputdelimited
и tfileinputdelimited
. У нас есть один вариант в tfileoutputdelimited
в расширенных настройках и возможность проверки выпадающих файлов в нескольких файлах.
Это лучше ;-) – Betlista