Mysql
 sql >> Database >  >> RDS >> Mysql

Percorso assoluto del file di flusso Nifi

  • 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
    tra UpdateAttribute e PutSQL e seleziona List Queue .
  • Seleziona un qualsiasi file di flusso e vai a Attributes scheda e vedere gli attributi absolute.path e flowfilename esiste e se
    esistono, verificare se hanno il valore previsto impostato. Nel tuo caso absolute.path dovrebbe avere il valore /path/in/nifi/node/to/file e flowfilename 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