- Stoppen Sie
PutSQL
Prozessor und lassen Sie die Flowfiles anstehen. - Sobald sie in die Warteschlange gestellt wurden, klicken Sie mit der rechten Maustaste auf
success
Beziehung
zwischenUpdateAttribute
undPutSQL
und wählen SieList Queue
. - Wählen Sie eine Flowfile aus und navigieren Sie zu den
Attributes
Tab und sehen Sie sich die Attributeabsolute.path
an undflowfilename
vorhanden sind, und falls
sie vorhanden sind, überprüfen Sie, ob sie den erwarteten Wert haben. In Ihrem Fallabsolute.path
sollte den Wert/path/in/nifi/node/to/file
haben undflowfilename
sollte den Wert/data.csv
haben
Frage an Sie:Setzen Sie diese Attribute selbst mit UpdateAttribute
, der Grund dafür ist, dass NiFi kein Attribut mit dem Namen flowfilename
generiert , generiert es eine mit dem Namen filename
.
Stellen Sie außerdem sicher, dass entweder der Wert für absolute.path
endet mit einem /
am Ende oder der Wert von flowfilename
beginnt mit einem /
. Wenn nicht, werden sie angehängt und das Ergebnis ist /path/in/nifi/node/to/filedata.csv
. Sie können das append
versuchen Funktion, die @Mahendra vorgeschlagen hat, ansonsten können Sie einfach ${absolute.path}/${flowfilename}
verwenden .
Aktualisieren
Ich habe gerade festgestellt, dass absolute.path
ist ein Kernattribut wie filename
, filesize
, mime.type
usw. Einige Prozessoren verwenden alle Kernattribute, während andere nur sehr wenige verwenden, die benötigt werden. GenerateTableFetch
schreibt absolute.path
setzt aber nichts dafür. Deshalb hat es ./
Dies ist der Standardwert.
Mein Vorschlag für Ihre Arbeitsweise ist also, dass Sie absolute.path
manuell setzen/überschreiben können Attribut mit UpdateAttribute
(so wie Sie filename
überschrieben haben ) und setzen Sie den gewünschten Wert, der /path/in/nifi/node/to/file
ist