У меня есть простая настройка потока в 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
действительно присутствует.Я пробовал различные другие атрибуты, но ни один из них, похоже, ничего не дает.