2014-02-17 4 views
1

У нас есть процесс производителя, который записывать файлы в определенную папку, которые идут непрерывно, мы должны читать файлы один за другим, используя Talend, есть 2 проблемы:Talend tWaitForFile недостаточность

  • 1-й: tWaitForFile чтение только файлы, которые существуют до его запуска, поэтому файлы, созданные после запуска компонента, для него не видны.
  • 2-й: нет способа узнать, освобожден ли файл процессом-производителем, его можно прочитать, пока он не полностью написан, параметр _wait_release_ of tWaitForFile не работает в системе Linux!

Так как же заставить Talend читать полные письменные файлы из каталога с увеличенным номером файла?

ответ

2

Я не уверен, что вы подразумеваете под первым вопросом. tWaitForFile имеет параметры для запуска, когда файлы создаются, изменяются или удаляются в папке.

Что касается второй проблемы, лучше всего, чтобы производитель файлов создавал файл ОК или управления, который является 0-байтовым касанием, когда он закончил запись нужного файла.

В этом случае вы просто ищете внешний вид файла OK, а затем подбираете соответствующий завершенный файл. Если вы назовете 2 файла одинаковыми, но с другим расширением файла (файл OK обычно называется «.OK», тогда это должно быть достаточно легко найти. Поэтому вы должны установить tWaitForFile для поиска файлов «* .OK» а затем подключить его к итерации к tFileInputDelimited (в случае, если вы хотите, чтобы забрать с разделителями текстовый файл), а затем объявить имя файла в качестве ((String)globalMap.get("tWaitForFile_1_CREATED_FILE")).substring(0,((String)globalMap.get("tWaitForFile_1_CREATED_FILE")).length()-3) + ".txt"

Я включил несколько скриншотов, чтобы помочь вам ниже:

Job Setup

tWaitForFile configuration

enter image description here

+0

Благодарим вас за ответ, за вторую проблему: мы можем иметь дело только с выходной папкой процесса производителя. Первая проблема: я подключил файл twaitforfile и tjava, которые отображают созданный файл, в то время как работа выполнена, я вложил несколько файлов в папку, содержащую в начале 4 файла, когда задание закончилось, консоль отображает имена 4 файла и столько новых файлов он повторяет имя 4-го, ! [Plz проверить этот снимок] (http://i60.tinypic.com/20jiqhf.png) – 54l3d

Смежные вопросы