使用Apache NiFi向Couchbase写入文档报错Doc Id must not be null如何解决
问题根因
Doc Id must not be null报错的核心原因是:Apache NiFi的Couchbase系列写入处理器默认从**FlowFile属性(Attribute)**中读取文档ID,不会自动解析FlowFile payload里的JSON内容提取ID。你在JSON数据中定义的ID字段仅存在于文件内容中,没有同步到FlowFile属性,处理器读取对应配置值为空就会抛出该错误。
修复步骤
- 在现有Couchbase写入处理器的上游,新增
EvaluateJsonPath处理器 - 配置
EvaluateJsonPath处理器:新增自定义属性,属性名可设为couchbase.doc.id,属性值填写对应JSON ID字段的JsonPath表达式,若你的ID是JSON顶层字段id,值就填$.id - 打开Couchbase写入处理器的配置页面,找到「Document Id」配置项,将值修改为属性引用格式
${couchbase.doc.id} - 保存所有配置后重新启动数据流,即可正常写入文档
可选优化
如果需要统一链路的文件标识,可在EvaluateJsonPath处理器中同时新增配置,将ID值写入uuid属性,方便后续链路的故障排查。
内容的提问来源于stack exchange,提问作者Serhat Yıldırım
相关产品推荐
相关产品推荐

