PutMongoRecord无法访问文件名

时间:2018-06-01 13:26:41

标签: mongodb apache-nifi

我在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()}。由于处理器连接到GetFile的“成功”输出,为什么不读取文件名?

注意:我已使用LogAttribute处理器对其进行了测试:确实存在filename属性。我尝试了其他各种属性,但似乎都没有产生任何东西。

1 个答案:

答案 0 :(得分:1)

这是NiFi 1.6.0之前的一个bug,最近修复了。看看NIFI-5197。它将在NiFi 1.7.0中发布,我相信它将在几周内发布。

如果是迫切需要,请发送电子邮件至dev@nifi.apache.org,然后就可以获得补丁。