我是NIFI的新手,想要将数据从Kafka推送到S3存储桶。我正在使用mainFrame.setVisible(false);
newFrame.setVisible(true);
处理器并且可以将数据推送到S3,如果我将Bucket值硬编码为mphdf / orderEvent,但我想根据FlowFile内容中的字段指定存储桶,这是在Json中。因此,如果Json内容是PutS3Object
,那么我可以将Bucket属性的值设为{"menu": {"type": "file","value": "File"}}
吗?我试图这样做,并得到以下错误。我想知道是否有办法使用PutS3Object处理器访问FlowFile内容并使Bucket名称可配置或我是否必须构建自己的处理器?
mphdf/$.menu.type
答案 0 :(得分:4)
我相信你想要做的是使用一个EvaluateJSONPath
处理器,它根据JSON内容评估任意JSONPath表达式,并将结果提取到flowfile属性。然后,您可以使用PutS3Object
配置中的NiFi表达式语言引用flowfile属性(请参阅引用${filename}
的第一个属性对象键)。通过这种方式,您可以评估$.menu.type
并将其存储到EvaluateJSONPath
处理器中的 menuType 属性中,然后在PutS3Object
中将 Bucket < / strong> be mphdf/${menuType}
。
你可能不得不玩一下但我不认为这应该有用。