2012-04-27 4 views
3

Я ищу способ разделения выполнения задания в студии талантов в соответствии с фактической строкой файла. Я хотел бы обрабатывать строки файлов, начиная с «DEBUG» в одной ветви работы, а другой строк в другой ветке работы. Это возможно?Разделить файл на большее количество файлов в talend

ответ

4

Для этого используйте компонент tMap. Ваша работа будет выглядеть так:

t*Input--row-->tMap--out1--->tFileOutput* 

         --out2--->tFileOutput* 

В компоненте tMap у вас есть вход слева и выход справа. В таблице вывода выберите «Активировать фильтр выражения» и используйте текстовое поле для определения вашего фильтра. Только строки, соответствующие этому фильтру, будут выведены из этого соединения. У вас может быть столько выходных таблиц и фильтров, сколько вам нужно.

+0

Это лучше ;-) – Betlista

1

Наконец, я использовал компонент tExctractRegeFields - просто определенное регулярное выражение для соответствия строк. Наиболее важным (и я не знал раньше) является то, что вы можете подключать компоненты с различными типами соединений. Я щелкнул правой кнопкой мыши по используемому компоненту a и выбрал Row > Reject для новой ветки в задании, как описано в вопросе.

2

Использование tMap классно, но если количество выходных потоков не определено и не определено, tMap не является хорошим выбором.

В этом случае, используя итерационный ссылку или tjavaflex может помочь вам:

Посмотрите на этот учебник на «how to split a file into many files regarding a key on each record», которая объясняет, как решить такую ​​задачу. Фактически он доступен только на французском языке. В учебном пособии представлены три различные техники для решения этой задачи.

+0

Я быстро проверил и Google Translate работает отлично для меня ;-) – Betlista

0

Мы можем сделать это, используя tfileoutputdelimited и tfileinputdelimited. У нас есть один вариант в tfileoutputdelimited в расширенных настройках и возможность проверки выпадающих файлов в нескольких файлах.

enter image description here