- Stop de
PutSQL
processor en laat de stroombestanden in de wachtrij staan. - Zodra ze in de wachtrij staan, klik je met de rechtermuisknop op de
success
relatie
tussenUpdateAttribute
enPutSQL
en selecteerList Queue
. - Selecteer een willekeurig stroombestand en navigeer naar de
Attributes
tab en kijk of de attributenabsolute.path
enflowfilename
bestaat en als
ze bestaan, controleer dan of ze de verwachte waarde hebben. In jouw gevalabsolute.path
moet de waarde hebben/path/in/nifi/node/to/file
enflowfilename
moet de waarde hebben/data.csv
Vraag aan jou:Stel je deze attributen zelf in met UpdateAttribute
, reden is dat NiFi geen attribuut genereert met de naam flowfilename
, het genereert er een met de naam filename
.
Nog een ding, zorg ervoor dat ofwel de waarde voor absolute.path
eindigt met een /
aan het einde of de waarde van flowfilename
begint met een /
. Zo niet, dan worden ze toegevoegd en is het resultaat /path/in/nifi/node/to/filedata.csv
. U kunt de append
. proberen functie die @Mahendra voorstelde, anders kunt u gewoon ${absolute.path}/${flowfilename}
gebruiken .
Bijwerken
Ik realiseerde me net dat absolute.path
is een kernattribuut zoals filename
, filesize
, mime.type
, enz. Sommige processors gebruiken alle kernattributen, terwijl andere er maar een paar gebruiken die nodig zijn. GenerateTableFetch
schrijft absolute.path
maar stelt er niets voor. Daarom heeft het ./
wat de standaardwaarde is.
Dus mijn suggestie voor uw manier van werken is dat u absolute.path
handmatig kunt instellen/overschrijven attribuut met behulp van UpdateAttribute
(net zoals je filename
hebt overschreven ) en stel de gewenste waarde in, namelijk /path/in/nifi/node/to/file