- Stop de
PutSQLprocessor en laat de stroombestanden in de wachtrij staan. - Zodra ze in de wachtrij staan, klik je met de rechtermuisknop op de
successrelatie
tussenUpdateAttributeenPutSQLen selecteerList Queue. - Selecteer een willekeurig stroombestand en navigeer naar de
Attributestab en kijk of de attributenabsolute.pathenflowfilenamebestaat en als
ze bestaan, controleer dan of ze de verwachte waarde hebben. In jouw gevalabsolute.pathmoet de waarde hebben/path/in/nifi/node/to/fileenflowfilenamemoet 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