首页 > 解决方案 > PutMongoRecord 无法访问文件名

问题描述

我在 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确实存在属性。我尝试了各种其他属性,但似乎都没有产生任何东西。

标签: mongodbapache-nifi

解决方案


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

如果是紧急需要,请写信给 dev@nifi.apache.org 并且可以获得此补丁。


推荐阅读