我在Nifi中有一个简单的流程设置:
我想将记录放入一个名称来自文件名的集合中:${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()}。由于处理器连接到GetFile的“成功”输出,为什么不读取文件名?
注意:我已使用LogAttribute处理器对其进行了测试:确实存在filename
属性。我尝试了其他各种属性,但似乎都没有产生任何东西。
答案 0 :(得分:1)
这是NiFi 1.6.0之前的一个bug,最近修复了。看看NIFI-5197。它将在NiFi 1.7.0中发布,我相信它将在几周内发布。
如果是迫切需要,请发送电子邮件至dev@nifi.apache.org,然后就可以获得补丁。