PutMongoRecord не может получить доступ к имени файла - PullRequest
0 голосов
/ 01 июня 2018

У меня есть простая настройка потока в Nifi:

  • GetFile выбирает файлы CSV из каталога
  • PutMongoRecord сохраняет их в коллекции MongoDB (с использованием CSVReader)

Я хочу поместить записи в коллекцию, имя которой происходит от имени файла: ${filename:substringBefore('.csv')}.Моя проблема в том, что я не могу заставить процессор PutMongoRecord прочитать имя файла.Каждый раз я получаю одну и ту же ошибку:

com.mongodb.MongoCommandException: Command failed with error 73: 'Invalid namespace specified 'xxx.'' on server localhost:27017. The full response is { "ok" : 0.0, "errmsg" : "Invalid namespace specified 'xxx.'", "code" : 73, "codeName" : "InvalidNamespace" }

Если я пытаюсь жестко запрограммировать имя коллекции, это работает.Это также работает с $ {hostname ()}.Поскольку процессор подключен к выводу «success» в GetFile, почему он не читает имя файла?

ПРИМЕЧАНИЕ. Я проверил это на процессоре LogAttribute: атрибут filename действительно присутствует.Я пробовал различные другие атрибуты, но ни один из них, похоже, ничего не дает.

1 Ответ

0 голосов
/ 02 июня 2018

Это ошибка до NiFi 1.6.0, и она недавно исправлена.Взгляните на NIFI-5197 .Он будет выпущен в NiFi 1.7.0, который, я думаю, будет доступен через пару недель.

Если это срочно необходимо, напишите на dev@nifi.apache.org, и это возможночтобы получить патч для этого.

...