- Interrompi il
PutSQL
processore e lascia che i file di flusso si accodino. - Una volta messi in coda, fai clic con il pulsante destro del mouse su
success
relazione
traUpdateAttribute
ePutSQL
e selezionaList Queue
. - Seleziona un qualsiasi file di flusso e vai a
Attributes
scheda e vedere gli attributiabsolute.path
eflowfilename
esiste e se
esistono, verificare se hanno il valore previsto impostato. Nel tuo casoabsolute.path
dovrebbe avere il valore/path/in/nifi/node/to/file
eflowfilename
dovrebbe 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