- Спрете
PutSQL
процесор и оставете потоковите файлове да се наредят на опашка. - След като са поставени на опашка, щракнете с десния бутон върху
success
връзка
междуUpdateAttribute
иPutSQL
и изберетеList Queue
. - Изберете който и да е поток файл и отидете до
Attributes
и вижте дали атрибутитеabsolute.path
иflowfilename
съществува и ако
съществуват, проверете дали имат зададена очаквана стойност. Във вашия случайabsolute.path
трябва да има стойност/path/in/nifi/node/to/file
иflowfilename
трябва да има стойност/data.csv
Въпрос към вас:Вие сами ли задавате тези атрибути с помощта на UpdateAttribute
, причината е, че NiFi не генерира атрибут с име flowfilename
, той генерира такъв с името filename
.
Още нещо, уверете се, че или стойността за absolute.path
завършва с /
в края или стойността на flowfilename
започва с /
. Ако не, те ще бъдат добавени и резултатът ще бъде /path/in/nifi/node/to/filedata.csv
. Можете да опитате append
функция, предложена от @Mahendra, в противен случай можете просто да използвате ${absolute.path}/${flowfilename}
.
Актуализация
Току-що разбрах, че absolute.path
е основен атрибут като filename
, filesize
, mime.type
и т.н. Някои процесори използват всички основни атрибути, докато някои използват много малко, които са необходими. GenerateTableFetch
пише absolute.path
но не задава нищо за него. Ето защо има ./
което е стойността по подразбиране.
Така че моето предложение за вашия подход към работата е, че можете ръчно да зададете/пренапишете absolute.path
атрибут с помощта на UpdateAttribute
(точно както сте презаписали filename
) и задайте желаната стойност, която е /path/in/nifi/node/to/file