Mysql
 sql >> Base de données >  >> RDS >> Mysql

Chemin absolu du fichier de flux Nifi

  • 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
    entre UpdateAttribute et PutSQL et sélectionnez List Queue .
  • Sélectionnez n'importe quel fichier de flux et accédez aux Attributes tab et voir si les attributs absolute.path et flowfilename existent et si
    ils existent, vérifiez s'ils ont la valeur attendue définie. Dans votre cas absolute.path doit avoir la valeur /path/in/nifi/node/to/file et flowfilename 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