- Stoppa
PutSQLprocessor och låt flödesfilerna stå i kö. - När de är i kö högerklickar du på
successförhållande
mellanUpdateAttributeochPutSQLoch väljList Queue. - Välj valfri flödesfil och navigera till
Attributestab och se om attributenabsolute.pathochflowfilenamefinns och om
de existerar, kontrollera om de har det förväntade värdet. I ditt fallabsolute.pathbör ha värdet/path/in/nifi/node/to/fileochflowfilenamebör ha värdet/data.csv
Fråga till dig:Ställer du in dessa attribut själv med UpdateAttribute , anledningen är att NiFi inte genererar ett attribut som heter flowfilename , genererar den en med namnet filename .
En sak till, se till att antingen värdet för absolute.path slutar med en / i slutet eller värdet på flowfilename börjar med en / . Om inte kommer de att läggas till och resultatet blir /path/in/nifi/node/to/filedata.csv . Du kan prova append funktion som @Mahendra föreslog, annars kan du helt enkelt använda ${absolute.path}/${flowfilename} .
Uppdatera
Jag insåg precis att absolute.path är ett kärnattribut som filename , filesize , mime.type , etc. Vissa processorer använder alla kärnattribut medan vissa använder väldigt få som behövs. GenerateTableFetch skriver absolute.path men sätter inget för det. Det är därför den har ./ vilket är standardvärdet.
Så mitt förslag för din inställning till arbetet är att du manuellt kan ställa in/skriva över absolute.path attribut med UpdateAttribute (precis som du har skrivit över filename ) och ställ in önskat värde som är /path/in/nifi/node/to/file