- Arrêter le
PutSQL
processeur et laissez les fichiers de flux en file d'attente. - Une fois qu'ils sont dans la file d'attente, faites un clic droit sur le
success
relation
entreUpdateAttribute
etPutSQL
et sélectionnezList Queue
. - Sélectionnez n'importe quel fichier de flux et accédez aux
Attributes
tab et voir si les attributsabsolute.path
etflowfilename
existent et si
ils existent, vérifiez s'ils ont la valeur attendue définie. Dans votre casabsolute.path
doit avoir la valeur/path/in/nifi/node/to/file
etflowfilename
doit avoir la valeur/data.csv
Question pour vous :définissez-vous vous-même ces attributs à l'aide de UpdateAttribute
, la raison en est que NiFi ne génère pas d'attribut nommé flowfilename
, il en génère un avec le nom filename
.
Encore une chose, assurez-vous que la valeur de absolute.path
se termine par un /
à la fin ou la valeur de flowfilename
commence par un /
. Sinon, ils seront ajoutés et le résultat sera /path/in/nifi/node/to/filedata.csv
. Vous pouvez essayer le append
fonction suggérée par @Mahendra, sinon vous pouvez simplement utiliser ${absolute.path}/${flowfilename}
.
Mettre à jour
Je viens de réaliser que absolute.path
est un attribut de base comme filename
, filesize
, mime.type
, etc. Certains processeurs utilisent tous les attributs de base tandis que d'autres en utilisent très peu qui sont nécessaires. GenerateTableFetch
écrit absolute.path
mais ne définit rien pour cela. C'est pourquoi il a ./
qui est la valeur par défaut.
Donc, ma suggestion pour votre approche du travail est que vous pouvez définir/écraser manuellement absolute.path
attribut en utilisant UpdateAttribute
(tout comme vous avez écrasé filename
) et définissez la valeur souhaitée qui est /path/in/nifi/node/to/file