- Arrêter le
PutSQLprocesseur 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
successrelation
entreUpdateAttributeetPutSQLet sélectionnezList Queue. - Sélectionnez n'importe quel fichier de flux et accédez aux
Attributestab et voir si les attributsabsolute.pathetflowfilenameexistent et si
ils existent, vérifiez s'ils ont la valeur attendue définie. Dans votre casabsolute.pathdoit avoir la valeur/path/in/nifi/node/to/fileetflowfilenamedoit 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