2017-02-02 9 views
4

Я изучаю NiFi, и я работаю над потоком, где я получаю файлы с использованием GetFile, а затем выполняю некоторый процесс, а затем сохраняю их в HDFS с использованием процессора PutHDFS. Дело в том, что, скорее всего, я получу файлы с тем же именем. Например, я могу получить файл каждые 30 минут, и файл, который создается каждые 30 минут, будет иметь то же имя.Как обрабатывать файлы с тем же именем в Apache NiFi?

Теперь, когда я помещаю этот файл в HDFS, я получаю «Файл с тем же именем уже существует». Как мне это преодолеть? Есть ли способ изменить имя файла при запуске?

ответ

5

Это очень простой способ. Я просто должен использовать процессор UpdateAttribute, чтобы изменить имя файла. Например: вы можете добавить timestamp к имени файла.

В UpdateProcessor добавьте свойство filename и его значение ${filename}.${now()}

+4

Только в случае высоких скоростей, где временные метки могут иметь столкновения, язык выражение также имеет функцию UUID https://nifi.apache.org/docs /nifi-docs/html/expression-language-guide.html#uuid – apiri

+0

Когда я устанавливаю это значение, я получаю сообщение об ошибке «Невозможно оценить новое значение для атрибута» filename ' – Samhash

+0

Получил его, пожалуйста, исправьте выше значение из $ {filename} . $ {now} до $ {filename}. $ {now()} – Samhash