Регулярное выражение в пути к файлу

Мне нужно ввести регулярное выражение в имя пути к файлу внутри tfileinputdelimited

У меня есть наблюдатель за файлами, который просматривает каталог для добавления новых файлов. Я хочу, чтобы новые файлы имели похожее слово, например, файл 1 называется apple1.csv, а другой файл, который будет добавлен в другое время, называется apple2.csv. Мне нужен способ, чтобы указать talend извлечь файл, содержащий слово яблоко, независимо от того, что было до или после.

Прямо сейчас у меня есть:

twaitforfile -> tflowtoiterate -> tfileinputdelimited -> tmap -> tdboutput

Я считаю, что tfileinputdelimited должно иметь регулярное выражение, так как сейчас я выбрал конкретный файл

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

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


person Zuhair Ahmed    schedule 09.02.2019    source источник


Ответы (1)


Для компонента twaitforfile в поле Маска файла укажите следующее: "*apple*.csv". Это должно захватывать только те файлы, в которых есть слово apple.

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

Чтобы динамически захватить эти файлы на основе их имен файлов через tfileinputdelimited, вы можете использовать глобальный параметр FILENAME файла twaitforfile для достижения этой цели:

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

person Neo    schedule 09.02.2019
comment
Спасибо, у меня все еще проблема, что он не добавляет в базу данных новый файл apple2.csv. прямо сейчас у меня есть twaitforfile -> tflowtoiterate -> tfileinputdelimited -> tmap -> tdboutput. Я думаю, может быть, потому что у меня есть tfileinputdelimited, который выбирает определенный файл ... в этом случае apple1.csv , оставляя apple2.csv не загруженным. Не могли бы вы сказать мне, правильный ли мой заказ, иначе как я могу сразу сопоставить схему из twaitforfile - person Zuhair Ahmed; 10.02.2019
comment
Еще одно дополнение: что, если мне нужно, чтобы наблюдатель за файлами также просматривал подкаталоги. Я нажал на этот флажок в файле twaitforfile, однако, хотя он обнаружен, он выдает ошибку при сопоставлении, я думаю, также из-за чего-то с tfileinputdelimited. Как я могу заставить его смотреть в каталог, а также в подкаталог - person Zuhair Ahmed; 10.02.2019
comment
Он должен работать нормально. Вы уверены, что в вашем CSV нет ошибок? Какие ошибки вы получаете? - person Neo; 10.02.2019
comment
он дает путь к файлу вместе с именем файла, который находится внутри подкаталога.. затем он говорит следующее: (Нет такого файла или каталога) - person Zuhair Ahmed; 10.02.2019
comment
хорошо, так что я понял кое-что. Если я беру файл из основного каталога и копирую его в подкаталог, он работает. Однако, если я создам файл csv и сохраню его непосредственно в подкаталоге, это не так. Но я понятия не имею, почему - person Zuhair Ahmed; 10.02.2019
comment
В этом случае нам нужно сделать его более динамичным, если tFileInputDelimited устанавливает имя/поток файла как (String)globalMap.get(tWaitForFile_1_CREATED_FILE), чтобы он мог захватить весь путь к файлу и принять подкаталоги. - person Neo; 10.02.2019
comment
Нет, это не сработало, сейчас он не принимается ни из каталога, ни из подкаталога. ошибка: path/applycopy.csv (Нет такого файла или каталога) - person Zuhair Ahmed; 10.02.2019
comment
Можете ли вы прикрепить изображение вашей работы, детали twaitforfile и tfileinputdelimited? - person Neo; 10.02.2019
comment
Я добавил изображения в вопросе выше - person Zuhair Ahmed; 10.02.2019
comment
Файловый поток tfileInputDelimited должен быть равен только (String)globalMap.get(tWaitForFile_1_CREATED_FILE). Удалите статическую часть, которая находится в начале. - person Neo; 10.02.2019
comment
ДА это идеально. Я очень ценю вашу помощь .. это действительно ценно .. большое спасибо - person Zuhair Ahmed; 10.02.2019
comment
Здравствуйте, у меня есть еще одна проблема, и я подумал, что вы могли бы мне помочь из-за вашего опыта в сказке и потому, что ваше предложение в прошлый раз очень помогло мне. - person Zuhair Ahmed; 16.02.2019
comment
Мне нужно отправить электронное письмо в конце процесса ETL. Однако мне нужно, чтобы адрес электронной почты был извлечен из tfileinputdelimited. Прямо сейчас у меня есть twaitforfile -> tflowtoiterate -> tfileinputdelimited -> tmap_1 -> tbdoutput -> tsendemail. Что я хочу сделать, так это получить электронное письмо от tfileinputdelimited, я не знаю по электронной почте заранее вот почему я не могу добавить предопределенный список. Все зависит от нового файла, добавленного и обнаруженного файловым наблюдателем. Я также не могу добавить глобальную переменную в tfileinputdelimited, поскольку tfileinputdelimited связан с другими вещами с обеих сторон, как показано выше. - person Zuhair Ahmed; 16.02.2019