- Interrompi il
PutSQLprocessore e lascia che i file di flusso si accodino. - Una volta messi in coda, fai clic con il pulsante destro del mouse su
successrelazione
traUpdateAttributeePutSQLe selezionaList Queue. - Seleziona un qualsiasi file di flusso e vai a
Attributesscheda e vedere gli attributiabsolute.patheflowfilenameesiste e se
esistono, verificare se hanno il valore previsto impostato. Nel tuo casoabsolute.pathdovrebbe avere il valore/path/in/nifi/node/to/fileeflowfilenamedovrebbe avere il valore/data.csv
Domanda per te:stai impostando tu stesso questi attributi usando UpdateAttribute , il motivo è che NiFi non genera un attributo denominato flowfilename , ne genera uno con il nome filename .
Un'altra cosa, assicurati che il valore per absolute.path termina con un / alla fine o il valore di flowfilename inizia con un / . In caso contrario, verranno aggiunti e il risultato sarà /path/in/nifi/node/to/filedata.csv . Puoi provare con append funzione suggerita da @Mahendra, altrimenti puoi semplicemente usare ${absolute.path}/${flowfilename} .
Aggiorna
Mi sono appena reso conto che absolute.path è un attributo principale come filename , filesize , mime.type , ecc. Alcuni processori utilizzano tutti gli attributi di base mentre altri ne usano pochissimi che sono necessari. GenerateTableFetch scrive absolute.path ma non imposta nulla per questo. Ecco perché ha ./ che è il valore predefinito.
Quindi il mio suggerimento per il tuo approccio al lavoro è che puoi impostare/sovrascrivere manualmente absolute.path attributo utilizzando UpdateAttribute (proprio come hai sovrascritto filename ) e imposta il valore desiderato che è /path/in/nifi/node/to/file