mongodb - PutMongoRecord 无法访问文件名
问题描述
我在 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
确实存在属性。我尝试了各种其他属性,但似乎都没有产生任何东西。
解决方案
在 NiFi 1.6.0 之前这是一个错误,最近已修复。看看NIFI-5197。它将在 NiFi 1.7.0 中发布,我相信它将在几周内发布。
如果是紧急需要,请写信给 dev@nifi.apache.org 并且可以获得此补丁。
推荐阅读
- python - 如何在 Ubuntu 中将 kivy 和 python 打包为可执行文件?
- flutter - 如何在 Flutter 中结合 Riverpod StreamProvider?
- javascript - BrowserWindow.on 有一个监听器 `(event: Event) => void`。为什么事件可以包含“源”键,即使它不在事件类型中?
- javascript - 根据嵌套对象键和值合并两个对象数组
- visual-studio-code - php中语言为html且前面的文本匹配正则表达式时的Vscode键绑定
- github - 如何更改或迁移 Dev.to 上的 github 帐户?
- watson-studio - IBM Watson Studio:如何安装 Watson Explorer Add on
- python - ConnectionException: Modbus Error: [Connection] 无法连接 ModbusTcpClient
- python - 谷歌表格方法:电子表格.get ...如何获取字段?
- sql - 两个日期列按特殊逻辑排序